• 検索結果がありません。

tri_s_tg12864_vcp の説明 2014/02/05 飛石伝ひ CPU 基板 の LCD TG12864 の表示プログラムです 漢字表示 (JIS208) を行うことができます USB の VCP ( 仮想 COM ポート ) を使用して非同期シリアル通信により 表示試験を行うことができ

N/A
N/A
Protected

Academic year: 2021

シェア "tri_s_tg12864_vcp の説明 2014/02/05 飛石伝ひ CPU 基板 の LCD TG12864 の表示プログラムです 漢字表示 (JIS208) を行うことができます USB の VCP ( 仮想 COM ポート ) を使用して非同期シリアル通信により 表示試験を行うことができ"

Copied!
20
0
0

読み込み中.... (全文を見る)

全文

(1)

1 tri_S_TG12864_VCP の説明 2014/02/05

「飛石伝ひ CPU 基板」の LCD TG12864 の表示プログラムです。 漢字表示(JIS208)を行うことができます。 USB の VCP (仮想 COM ポート)を使用して非同期シリアル通信により、表示試験を行うことができます。 無料の開発ツール Atollic TrueSTUDIO for ARM Lite 4.2.0 で作成したプロジェクトです。

プログラムの開始番地は 0x08010000 です。デバッグが可能です。

PC アプリケーションの Access_LCD_TG12864 を使用して USB の VCP(仮想 COM ポート)の非同期シリアル通信により、 「飛石伝ひ CPU 基板」に表示コマンドを送信して LCD TG12864 に ASCII 文字と漢字を表示できます。

目次

1. LCD TG12864 について ... 2 2. LCD TG12864 の接続信号 ... 3 3. USB の VCP(仮想 COM ポート)による接続 ... 4 4. プログラム実行時の動作と確認 ... 5 4.1. 実行時の動作 ... 5 4.2. 動作確認 ... 6 1) Access_LCD_TG12864 アプリケーションの起動画面 ... 6 2) COM ポートと通信速度の選択 ... 7 3) 表示クリア ... 9 4) 表示文字の種類 ... 10 5) 表示桁数と表示行数 ... 10 6) LCD 表示の例 ... 11 5. プロジェクトの構成 ... 13 5.1. 独自に追加したソースフォルダ ... 13 5.2. ソースフォルダ src のファイル... 14 6. 主なモジュールの説明 ... 14 6.1. HandleTimer2 ... 14 6.2. main.c ... 15 6.3. UserPrograms ... 15 6.4. CommunicateHOST ... 16 6.5. TG12864 ... 18 7. 表示フォントについて ... 20 7.1. ASCII 6 x 8 font ... 20 7.2. 全角 8 x 8 font ... 20 7.3. 全角 12 x 12 font ... 20

(2)

2 1. LCD TG12864 について TG12864 は 128dot x 64dot のグラフィック LCD です。 「飛石伝ひ CPU 基板」では、次の2種類の LCD を推奨しています。どちらも秋月電子通商で購入できます。 1) TG12864B-02WWBV 外形サイズ : 93 x 70 x 11.8mm 2) TG12864E-02A 外形サイズ : 54 x 50 x 9mm

(3)

3 2. LCD TG12864 の接続信号 「飛石伝ひ CPU 基板」の LCD TG12864 に使用する信号は以下の 通りです。 TG12864 信号表 飛石伝ひ I/F 基板 P6 ピン番号

信号名 CPU 機能名 CPU 信号名 飛石伝ひ CPU 基板

コネクタピン番号 備考 1 VSS GND GND 2 VDD --- --- +5V 3 VO(コントラスト) --- --- 液晶駆動電圧 4 LCD_RS I/O PE8 P2-28 5 LCD_RW I/O PE9 P2-27

6 LCD_E I/O PE10 P2-26

7 LCD_DB0 I/O PE0 P1-14 8 LCD_DB1 I/O PE1 P1-13 9 LCD_DB2 I/O PE2 P1-12 10 LCD_DB3 I/O PE3 P1-11 11 LCD_DB4 I/O PE4 P1-10 12 LCD_DB5 I/O PE5 P1-9 13 LCD_DB6 I/O PE6 P1-8 14 LCD_DB7 I/O PE7 P2-29 15 LCD_CS1 I/O PE11 P2-25 16 LCD_CS2 I/O PE12 P2-24 17 LCD_RST I/O PE13 P2-23 18 VEE(-10V 出力) --- --- 液晶駆動用電圧 19 LCD_A(アノード +5V) --- --- BackLight 20 LCD_K(カソード 0V) --- --- BackLight 「飛石伝ひ I/F 基板」と LCD TG12864 との接続のようす TG12864B-02WWBV TG12864E-02A

(4)

4 3. USB の VCP(仮想 COM ポート)による接続

USB の VCP(仮想 COM ポート)による、PC と 「飛石伝ひ CPU 基板」との接続は以下のようになります。

なお、USB の VCP(仮想 COM ポート)を使用するための VCP ドライバのインストールについては、「インストール」のページの [ 1.「 VCP(Virtual COM Port : 仮想 COM ポート)ドライバ」のインストール ] の部分をご覧ください。

I/F 基板 PC A USB ポート USB ケーブル : 電源供給 および VCP(仮想 COM ポート) 接続のため 図3. Mini B TG12864 P6

(5)

5 4. プログラム実行時の動作と確認 4.1. 実行時の動作 1) プログラムを実行すると基板上の LED1(緑)が 1 秒点灯、2 秒消灯 で点滅します。 2) LCD に初期画面が次のように表示されます。 TG12864B-02WWBV TG12864E-02A 上から、 全角 8 x 8 font(JIS208) 全角 12 x 12 font(JIS208) ASCII 6 x 8 font で表示しています。 3) USB(VCP)で LCD 表示コマンドを受信すると LCD 上の指定された位置に受信した文字を表示します。

(6)

6 4.2. 動作確認 「飛石伝ひ CPU 基板」に TG12864 の表示コマンドを送信するツール Access_LCD_TG12864 アプリケーションを 使用して、LCD の表示試験を行うことができます。 USB(VCP)を使用して「飛石伝ひ CPU 基板」と送受信を行います。 1) Access_LCD_TG12864 アプリケーションの起動画面 Access_LCD_TG12864 アプリケーションを起動すると以下のダイアログが表示されます。

(7)

7 2) COM ポートと通信速度の選択

COM 選択の ComboBox で COM を選択します。

確認のメッセージが表示されるので、よい場合は [はい(Y)] ボタンをクリックします。

(8)

8

この例では、”COM3 に設定しました。” とメッセージが表示されています。 通信速度は 9600bps でよいのでこのままにしておきます。

(9)

9 3) 表示クリア

[表示クリア] ボタンをクリックすると LCD 表示が全画面クリアされます。

表示 Type の RadioButton で 通常表示/反転表示 の選択により、全面クリア/全 dot 表示 を行います。

通常表示 反転表示

(10)

10 4) 表示文字の種類

表示文字は次の 3 種類があります。

a) ASCII 6 x 8 font : 6dot x 8dot の ASCII 文字です。

b) 全角 8 x 8 font : 8dot x 8dot の全角文字です。 JIS208 コードで漢字が表示できます。

美咲フォントを使用させていただきました。8dot x 8dot なので正確には文字を表現できないのでそれらしく見えるように 工夫されています。

c) 全角 12 x 12 font : 12dot x 12dot の全角文字です。 JIS208 コードで漢字が表示できます。 東雲フォントを使用させていただきました。漢字をほぼ正確に表現しています。 表示文字の種類は、表示文字選択の ComboBox で選択することができます。 5) 表示桁数と表示行数 表示文字の選択を変更すると、それぞれ表示可能な行数と桁数が異なるので、行と桁の ComboBox の選択範囲が 変更になります。表示文字の種類による、それぞれの表示桁数と表示行数は以下の通りです。 a) ASCII 6 x 8 font : 21 桁 x 8 行 b) 全角 8 x 8 font : 16 桁 x 8 行 c) 全角 12 x 12 font : 10 桁 x 5 行

(11)

11 6) LCD 表示の例 表示データ TextBox に文字を入力して [LCD 表示] ボタンをクリックすると LCD に文字を表示することができます。 次の3パターンの文字を表示してみます。 a) ASCII 6 x 8 0 行目 3 桁目 : “Take it easy!” b) 全角 8 x 8 2 行目 0 桁目 : “今日が駄目なら明日にしましょ。” c) 全角 12 x 12 3 行目 0 桁目 : “明日が駄目ならあさってにしましょ。” 表示結果は以下の通りです。 tri_S_TG12864 アプリケーションの実行結果のメッセージは次ページのようになります。

(12)
(13)

13 5. プロジェクトの構成 プロジェクトを開いて、左側の Project Exploler のを開いた状態です。 5.1. 独自に追加したソースフォルダ 独自に追加したソースフォルダについて簡単に説明します。 1) CommonModules 共通に使用する処理のモジュールを記述しています。 2) CommunicateHOST USB(VCP)の通信処理を記述しています。LCD 表示コマンドを受信して LCD 表示を行います。 3) Handle Peripheral の初期化と設定などを行っています。 a) HandleTimer2.h HandleTimer2.c タイマ割り込みを使用するために、タイマの初期設定を記述しています。 4) TG12864 LCD TG12864 を制御するための I/O の初期化、TG12864 の初期化、および 表示処理を記述しています。 5) UserPrograms

Status LED に使用している I/O の初期設定と点滅処理を記述しています。 6) VCP

USB の VCP(仮想 COM ポート)の処理です。

7) STM32_USB_Device_Library と STM32_USB_OTG_Driver

(14)

14 5.2. ソースフォルダ src のファイル

フォルダ src の中の特に重要なファイルについて説明します。 1) main.c

main モジュールが記述されています。プログラムはここから開始します。

I/O と Timer および TG12864 の初期設定と USB(VCP)による送受信モジュールの呼び出しを記述しています。 2) stm32f4xx_it.c 割り込み処理を記述するファイルです。 このプロジェクトでは、Timer2 割り込みと USB の割り込み処理を記述しています。 6. 主なモジュールの説明 6.1. HandleTimer2 1) Timer2 初期化 //---//Timer2初期化 //---//引数 :

// uint16_t uintTIM_Pulse1 : Timer2 CH1 インターバル // uint16_t uintTIM_Pulse2 : Timer2 CH2 インターバル // uint16_t uintTIM_Pulse3 : Timer2 CH3 インターバル // uint16_t uintTIM_Pulse4 : Timer2 CH4 インターバル

//---void InitializeTimer2(uint16_t uintTIM_Pulse1, uint16_t uintTIM_Pulse2,

uint16_t uintTIM_Pulse3, uint16_t uintTIM_Pulse4);

2) Timer2 割り込み禁止 //Timer2割り込み禁止 void DisableIrqTim2(void); 3) Timer2 割り込み許可 //Timer2割り込み許可 void EnableIrqTim2(void);

(15)

15 6.2. main.c 1) 使用するクロックの初期化 void RCC_Configuration(void); 2) I/O の初期化 void Init_GPIOs(void); 6.3. UserPrograms 1) LED に使用する I/O の初期化 //Status LEDポート初期化 void InitializePortStatusLED(void); //Action LEDポート初期化 void InitializePortActionLED(void); 2) StatusLED の点滅 点滅一回の処理 //Status LED点滅

(16)

16 6.4. CommunicateHOST

1) USBの初期化

//---//HOST Communication初期化 : USBをVCPとして使用するための初期化を行います。 //---void InitializeCommunicateHOST(//---void); 2) HOST 通信処理 受信処理を行い、受信コマンドを処理して応答データを送信します。 //---//HOST通信処理 : USBのVCP通信 //---void CommunicateHOST(//---void) 3) VCP 送信処理 //---//VCP 送信処理 //---//引数 : // uint16_t uintSendLength : 送信データ数 // uint8_t *puchrData : 送信データのポインタ

//---void SendVCP(uint16_t uintSendLength, uint8_t *puchrSendData);

4) VCP 受信処理

//---// VCP 受信処理

//---//引数 :

// uint8_t *puchrReceiveBuffer : 受信データを格納するBufferのポインタ //戻り値 :

// -1 : 受信なし // 0 : Error // 1以上 : 受信byte数

(17)

17 5) HOST コマンドの実行 受信コマンドを判定してそれぞれの処理モジュールを呼び出します。 //---// HOSTコマンドを実行する。 //---//引数 : // uint16_t uintReceiveLength : 受信データ数

// uint8_t *puchrReceiveData : 受信データが格納されているBufferのポインタ // uint8_t *puchrSendData : 応答送信データを格納するBufferのポインタ //戻り値 : 応答送信データ数

//---uint16_t ExecuteCommandHOST(//---uint16_t uintReceiveLength, uint8_t *puchrReceiveData,

uint8_t *puchrSendData); 6) LCD 表示処理 //---// LCD文字表示 //---//引数 // int16_t intDataLength : 表示パラメータデータ数

// uint8_t *puchrParameter : 表示パラメータデータが格納されたBufferのポインタ // uint8_t *puchrSendBuff : 応答送信データを格納するBufferのポインタ

//戻り値: 応答送信データ数

//---//表示パラメータ :

// [表示Font : 1byte],[表示Type : 1byte],[開始行 : 4byte],[開始桁 : 4byte],[表示文字データ : 可変長]

//---uint16_t ComActDisplayCharacterLCD(int16_t intParameterLength, uint8_t *puchrParameter,

(18)

18 6.5. TG12864 1) TG12864 に使用する I/O Port の初期化 //---//TG12864 Port初期化 //---void InitializePortTG12864(//---void); 2) TG12864 の初期化 //---//TG12864初期化 //---void InitializeTG12864(//---void); 3) ASCII 6 x 8 font 文字の表示

//---//ASCII文字 LCD複数行表示 : 1line 21文字表示だが、intLengthが21文字を超えるとき複数行にまたがって表示する。

//---//引数 :

// int16_t intType : 表示Type

// 0 : 通常表示 // 1 : 反転表示 // int16_t intLine : 表示開始行 // int16_t intColumn : 表示開始桁 // int16_t intLength : 表示文字数

// const uint8_t *puchrData : 表示文字が格納されたBufferのポインタ

//---void DisplayASCII6x8_TG12864(int16_t intType, int16_t intLine, int16_t intColumn,

(19)

19 4) 全角 8 x 8 font 文字の表示

このプログラムでは CPU 内部の Flash Memory の 0x08080000 番地から書き込んだ 8 x 8 の Binary Font を参照して 全角 8 x 8 font 文字を表示します。

//---// 2byte Code 全角文字 8 x 8 Font LCD複数行表示

//---// 1line 16文字表示だが、intLengthが16文字を超えるとき複数行にまたがって表示する。

//---//引数 :

// int16_t intType : 表示Type

// 0 : 通常表示 // 1 : 反転表示 // int16_t intLine : 表示開始行 // int16_t intColumn : 表示開始桁 // int16_t intLength : 表示文字数

// const uint8_t *puchrData : 表示文字が格納されたBufferのポインタ

//---void Display2byteCode8x8_TG12864(int16_t intType, int16_t intLine, int16_t intColumn,

int16_t intLength, const uint8_t *puchrData);

5) 全角 12 x 12 font 文字の表示

このプログラムでは CPU 内部の Flash Memory の 0x08090000 番地から書き込んだ 12 x 12 の Binary Font を参照して 全角 12 x 12 font 文字を表示します。

//---//2byte Code 全角文字 12 x 12 Font LCD複数行表示 : 1line 10文字表示だが、intLengthが10文字を超えるとき複数行に またがって表示する。

//---//引数 :

// int16_t intType : 表示Type

// 0 : 通常表示 // 1 : 反転表示 // int16_t intLine : 表示開始行 // int16_t intColumn : 表示開始桁 // int16_t intLength : 表示文字数

// const uint8_t *puchrData : 表示文字が格納されたBufferのポインタ

//---void Display2byteCode12x12_TG12864(int16_t intType, int16_t intLine, int16_t intColumn,

(20)

20 7. 表示フォントについて

7.1. ASCII 6 x 8 font

ASCII 6 x 8 font は tri_S_Font6x8_90.h としてプログラムに埋め込まれています。

7.2. 全角 8 x 8 font

全角 8 x 8 font は 8 x 8 用の Binary フォントファイルのデータを CPU 内の Flash Memory の 0x08080000 番地から 書き込んだものを参照しています。

7.3. 全角 12 x 12 font

全角 12 x 12 font は 12 x 12 用の Binary フォントファイルのデータを CPU 内の Flash Memory の 0x08090000 番地から書き込んだものを参照しています。

Binary フォントデータを Flash Memory に書き込むためのツール WriteBinaryToFlash アプリケーションを用意しています。 [ 「飛石伝ひ CPU 基板」のプロジェクトサンプル ]のページから「TG12864 プロジェクトの説明とダウンロード」のページに 行くと 「WriteBinaryToFlash アプリケーション」 の説明があります。

参照

関連したドキュメント

回転に対応したアプリを表示中に本機の向きを変えると、 が表 示されます。 をタップすると、縦画面/横画面に切り替わりま

つの表が報告されているが︑その表題を示すと次のとおりである︒ 森秀雄 ︵北海道大学 ・当時︶によって発表されている ︒そこでは ︑五

Q-Flash Plus では、システムの電源が切れているとき(S5シャットダウン状態)に BIOS を更新する ことができます。最新の BIOS を USB

手動のレバーを押して津波がどのようにして起きるかを観察 することができます。シミュレーターの前には、 「地図で見る日本

“〇~□までの数字を表示する”というプログラムを組み、micro:bit

この P 1 P 2 を抵抗板の動きにより測定し、その動きをマグネットを通して指針の動きにし、流

以上の基準を仮に想定し得るが︑おそらくこの基準によっても︑小売市場事件は合憲と考えることができよう︒

用できます (Figure 2 および 60 参照 ) 。この回路は優れ た効率を示します (Figure 58 および 59 参照 ) 。そのよ うなアプリケーションの代表例として、 Vbulk