MAX II CPLD を使用した LCD コントローラ この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用 ください。設計の際には、最新の英語版で内容をご確認ください。 Application Note 497 2007 年 12 月 ver 1.0 はじめに LCD 本書では、アルテラの MAX® II CPLD を使用した LCD コントローラの実装につ いて説明します。ディスプレイの例では、一般的に使用されている SC1602D デ バイスなどの Optrex 16 × 2 ドット・マトリックス LCD モジュールを使用します。 このコントローラは、マイクロプロセッサまたはマイクロ・コントローラからディ スプレイ信号を受信し、その信号を LCD モジュールによって解釈されるコマン ドに変換します。MAX II デバイスは、業界唯一のユーザ・フラッシュ・メモリ (UFM)を搭載しており、コントロールはそのメモリを使用してパワー・オン時 にメッセージを表示します。そのため、外部メモリを使用する必要はありません。 また、このコントローラはクロックに CPLD の内部 UFM オシレータを利用する ため、外部クロック信号も必要ありません。これらの独自の機能を備えているた め、MAX II CPLD はこのようなコントローラ用として最適なターゲット・デバ イスとなっています。 液晶ディスプレイ(LCD)は薄くて平らなディスプレイ・デバイスで、光源やリ フレクタの前面に無数のカラー・ピクセルまたはモノクロ・ピクセルが配列され ています。これらのディスプレイは電子機器の多くで不可欠なものになっていま す。LCD が普及する要因となった特徴は、以下のとおりです。 ■ LCD により、デバッグ機能を備えた便利なインタフェース付きのアプリケー ■ ションやプロフェショナルな外観を持つアプリケーションを実現できます。 LCD は非常に消費電力が低く、バッテリ駆動装置に最適です。 ■ LCD は薄型軽量で、他のタイプのディスプレイと比較して実装面積が小さく て済みます。 ほとんどの LCD モジュールが、汎用インタフェース、オン・ボード・コントロー ラ、およびオン・ボード・ドライバを備えています。したがって、LCD を使用し てアプリケーションの見栄えを良くすることが簡単になりました。LCD ディスプ レイを使用する装置には、腕時計、電卓、ラップトップ、PDA、携帯電話、家電 製品、玩具などがあります。 LCD コントローラ Altera Corporation AN-497-1.0/JP このコントローラ・デザインは、どのアプリケーションにでも容易に統合し、最 適なディスプレイ・ユニットを作ることができます。このコントローラは、必要 なタイミング信号を生成して LCD のタイミング制約を満たすと同時に、マイク ロプロセッサやコントローラを LCD の細かな制御から解放することによって、プ ロセッサやコントローラが他の処理を効率的に実行できるようにします。 1 MAX II CPLD を使用した LCD コントローラ 図 1 に、LCD コントローラのブロック図を示します。LCD コントローラ内の主 要な 3 つのモジュールは、有限ステート・マシン(FSM) 、ユーザ・フラッシュ・ メモリ(UFM) 、およびクロック・ディバイダ・モジュールです。LCD モジュー ルへのインタフェース信号は、E、RS、RW、および DB0-DB7 です。このデザイ ンでは、LCD コントローラを通じてプロセッサと LCD モジュールを正しくイン タフェースさせています。これらの信号について詳しくは、表 1を参照してください。 図 1. LCD コントローラ ACK WE RST DATA0-DATA7 E RS RW Finite State Machine DB0-DB7 8 OPTREX SC1602D 16 X 2 ALPHANUMERIC LCD MODULE 8 addr do 9 8 User Flash Memory nbusy osc dv clk Clock Divider LCD モジュールと有限ステート・マシンの初期化 FSM は 8 種類のステートで構成されます。FSM は、LCD の初期化、初期化完了 後のメッセージの表示、および LCD の書き込みと読み出しに使用されます。図 2 に、LCD モジュールの初期化ステップを示します。 2 Altera Corporation 2007 年 12 月 LCD コントローラ 図 2. LCD モジュールの初期化フロー・チャート Power On Wait for more than 15 ms after Vcc = 4.5 V RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 X X X X Wait for more than 4.1 ms RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 X X X X Wait for more than 100 us Function set command to set 8-bit interface. The busy flag of the LCD cannot be checked before this. No data should be transferred to and from the display during this time. Function set command to set 8-bit interface. The busy flag of the LCD cannot be checked before this. No data should be transferred to and from the display during this time. RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 X X X X Function set command to set 8-bit interface. The busy flag of the LCD cannot be checked before this. RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 N F X X Function set command to set 8-bit interface. The busy flag of the LCD cannot be checked before this. RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 1 0 0 0 Command to turn OFF the LCD display. RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 0 0 0 Command to turn OFF the LCD display. RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 1 I/D S Command to set the entry mode. Provides options to increment/decrement the cursor and to shift the display. RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 1 1 C B Command to turn the display ON. Provides options to turn the cursor on and blink it. Initialization complete. Display ready to be used. Altera Corporation 2007 年 12 月 No data should be transferred to and from the display during this time. Note: The busy flag should be checked after each command starting with the command to turn the display off. 3 MAX II CPLD を使用した LCD コントローラ 初期化を簡素化するために、各コマンドの送信後に(ビジー・フラグのステータ スをチェックする代わりに)15 ms の遅延が設けてあります。ただし、LCD モ ジュールへのデータの書き込み中は、各データが書き込まれるたびに、ビジー・ フラグのステータスがチェックされます。これにより、書き込み処理が速くなります。 LCD モジュールの初期化および LCD モジュールでサポートされる各種コマンド について詳しくは、以下のリンクにある Optrex LCD のマニュアルを参照してく ださい。 www.apollodisplays.com/pdf/dmcman.pdf ユーザ・フラッシュ・メモリ MAX II CPLD 内部の UFM は、コントローラの電源がオンになった直後に表示さ れるキャラクタの ASCII 値を格納するのに使用されます。これは UFM メガファ ンクションを使用してインスタンス化されます。UFM は、16 進(Intel_Format) ファイル(.hex)を利用して、パラレル・インタフェースを経由してプログラム されます。Quartus® II ソフトウェアによる .hex ファイルの作成について詳しく は、以下のリンクを参照してください。 www.altera.co.jp/support/software/nativelink/quartus2/glossary/def_rif.html MegaWizard® Plug-In Manager によるUFMのインスタンス化について詳しくは、 「MAX II デバイス・ハンドブック」の「MAX II デバイスでのユーザ・フラッ シュ・メモリの使用」の章を参照してください。 クロック・ディバイダ LCD モジュールのタイミング要件が満足され、コントローラの所要性能が達成す るために、クロック・ディバイダ・モジュールによって内部オシレータ出力の周 波数を低くします。表 1 に、図 1 に示す LCD コントローラ(MAX II CPLD)ブ ロック図の信号の説明を示します。 表 1. 4 LCD コントローラ(MAX II CPLD)の信号の説明 (1 / 2) 信号 説明 DB0-DB7 LCD モジュールとの間でデータとコマンドを転送 する 8 ビットの双方向バス。 RW 読み出し動作と書き込み動作を区別する、リード信 号とライト信号。 ● RW = 0: ライト動作 ● RW = 1: リード動作 Altera Corporation 2007 年 12 月 LCD コントローラ 表 1. Altera Corporation 2007 年 12 月 LCD コントローラ(MAX II CPLD)の信号の説明 (2 / 2) 信号 説明 RS レジスタ選択信号。LCD モジュールのデータ・レ ジスタとコマンド・レジスタの選択に使用されます。 ● RS = 0: コマンド・レジスタ ● RS = 1: データ・レジスタ E ストローブ信号をイネーブルします。この信号のネ ガティブ・エッジは、双方向バス上のデータをデー タ・レジスタまたはコマンド・レジスタに、あるい はその逆にラッチします。 DATA0-DATA7 プロセッサおよびコントローラからの 8 ビット・バ スで、LCD モジュールに表示するキャラクタの ASCII 値を転送します。 RST リセット信号。この信号はコントローラをリセット して、LCD モジュールを再初期化するのに使用さ れます。 WE ライト・イネーブル信号。この信号はライト・サイ クルの開始を示します。LCD モジュールへの書き 込みをイネーブルするには、low に設定する必要が あります。 ACK 確認応答信号。この信号は、LCD モジュールにデー タが正しく送信され、次のデータを受信する準備が できたことを示します。コントローラは、この信号 が Low になる前に送信されたデータはすべて無視 します。 addr UFM の特定のメモリ・ロケーションを選択するの に使用される 9 ビット・アドレス・バス。 nread アドレス・バスでポイントされるメモリ・ロケー ションの内容を読み出すには、この信号を 0 に設 定します。 do データ出力信号。アドレス・バスでポイントされる 16 ビット・メモリ・ロケーションの上位 8 ビット を保持する 8 ビット・データ・バス。 dv データ有効信号。8 ビット・データ・バス上のデー タが有効で、読み出し可能であることを示す信号。 osc UFM ブロックの内部オシレータの出力。5.5 MHz の信号周波数を出力します。 clk クロック・ディバイダ・ブロックの出力。オシレー タ出力信号の周波数を約 43 kHz に低減します。 5 MAX II CPLD を使用した LCD コントローラ 実装 このデザインは、EPM240G またはその他の MAX II CPLD と、Optrex SC1602D 16 × 2 英数字 LCD モジュールを使用して実装できます。このデザインのソース・ コードを使用して、MAX II CPLD の汎用 I/O(GPIO)ラインにデータ・バスと コントロール・ライン(入力および出力)を割り当てます。内部ユーザ・フラッ シュ・メモリを使用して、パワー・オン時に LCD モジュールに表示するデフォ ルト・メッセージを格納します。Quartus II ソフトウェアのメモリ・エディタを 使用して、LCD モジュールにデフォルト・メッセージを格納するためのメモリ初 期化ファイルを作成します。 以下では、MDN-B2 デモ・ボードでのこのデザインの実装について詳しく説明し ます。 表 2 に、このデザイン例での EPM240G のピン・アサインメントを示します。 表 2. MDN-B2 デモ・ボードを使用したデザインの実装 EPM240G のピン・アサインメント 信号 ピン 信号 ピン DB[0] ピン 53 DB[4] ピン 1 DB[1] ピン 98 DB[5] ピン 96 DB[2] ピン 52 DB[6] ピン 92 DB[3] ピン 97 DB[7] ピン 95 data[0] ピン 55 data[4] ピン 61 data[1] ピン 56 data[5] ピン 66 data[2] ピン 57 data[6] ピン 67 data[3] ピン 58 data[7] ピン 68 E ピン 99 rst ピン 77 RS ピン 100 ack ピン 69 RW ピン 54 we ピン 81 未使用ピンは、コンパイル前に Quartus II ソフトウェアのデバイスお よびピン・オプション設定で As input tri-stated に割り当ててあります。 6 Altera Corporation 2007 年 12 月 実装 デザイン・ノート MDN-B2デモ・ボードで本デザインのデモを行うには、以下のステップを実行します。 Altera Corporation 2007 年 12 月 1. JTAG ヘッダ JP5 と従来のケーブル(ByteBlaster™ II、USB-Blaster™)を使用し て、デザインを MAX II CPLD へダウンロードします。プログラミングを行う には、デモ・ボードのスイッチをオンにする必要があります(スライド・ス イッチ SW1) 。プログラミングが終了したら、電源をオフにします。 2. メ モ リ・フ ァ イ ル lcd_new.hex(ソ ー ス・コ ー ド・フ ァ イ ル に 付 属)が Quartus II ソフトウェアのプロジェクト・ライブラリに置かれていることを 確認します。 3. 付属のインタコネクト・ケーブルを使用して、LCD モジュールをボードに 接続します。LCD モジュールの CN1 にケーブルの 14 ピン・ソケットを接 続し(赤マークがデモ・ボードの CN1 のピン 1 と一致) 、デモ・ボードの JP8 に 20 ピン・ソケットを接続します(ソケットの赤マークがデモ・ボード の JP8 のピン 1 と一致) 。 4. Optrex SC1602D LCD モジュール(このモジュールもアルテラの NIOS® II 開 発キット 2C35N [Cyclone II バージョン ] に付属)を使用します。 5. インタコネクト・ケーブルの DC ソケットを使用して、LCD モジュールに 必要な 5 V 電源を供給します。この DC ソケットは標準的な極性が配置され ています(内部ピンが正) 。3xAA または AAA バッテリを使用して、LCD モジュールに電源を供給することもできます。 6. まず、LCD モジュールに 5 V 電源を接続します。次に、ステップ 4 で説明 したとおりインタコネクト・ケーブルを接続します。 7. スライド・スイッチ SW1 を使用して、MDN-B2 デモ・ボードの電源をオン にします。 8. LCD モジュールのデフォルト・メッセージを確認します。このメッセージ は、lcd_new.hex ファイルを使用して、MAX II CPLD の UFM に事前にプロ グラムされています。LCD コントローラは、このメッセージをパワー・オ ン時に 1 回だけ読み出します。 9. デモ・ボードのリセット・プッシュ・ボタン SW6 を使用して、LCD モジュー ルをリセットします。リセット後に、LCD 上のカーソルが 1 行目の第 1 キャ ラクタの位置で点滅していることを確認します。 10. この演習では、SW5 スイッチ(デモ・ボード上の 8 方向デュアル・イン・ラ イン・パッケージ(DIP)GPIO 入力スイッチ)を使用して、表示するキャ ラクタに対応する任意の ASCII データを入力できます。このスイッチを ON にすると logic 0、OFF にすると logic 1 が設定されます。スイッチ #1 はこ の ASCII データ・バイトの LSB です。 7 MAX II CPLD を使用した LCD コントローラ 11. デモ・ボードのボタン SW8 を押して、コントローラをライト・イネーブル にします。これにより、コントローラは SW5 スイッチで設定したフレッ シュ・データを取り込むことができます。デモ・ボードは SW8 ボタンが押 されている間、約 4.25 kHz のレートで新しいデータを取り込みます。SW8 ボタンを押すと、直後に両行のすべてのキャラクタが更新されます。 このデザインは、Optrex 製 SC1602D LCD モジュール用に作成された ものです。この LCD モジュールでは、LCD の 1 行目の最後のキャラク タと、2 行目の先頭のキャラクタのアドレスは不連続です。このデザイ ンには、この配列に合わせて変更が加えてあります。 ソース・ コード このデザインは Verilog を使用して作成しており、MDN-B2 デモ・ボードを使用 したデモとなっています。ソース・コード、テストベンチ、および完成した Quartus II プロジェクトは、以下から入手可能です。 www.altera.co.jp/literature/an/an497_design_example.zip まとめ MAX II CPLD は LCD コントローラを実装するための優れた選択肢です。MAX II CPLD は、低消費電力の使いやすいパワー・オン機能やビルトイン・ユーザ・フ ラッシュ・メモリを備えており、LCD コントローラ・デザインを実装するための 理想的なプログラマブル・ロジック・デバイスです。 参考資料 このアプリケーション・ノートでは、以下のドキュメントを参照しています。 ■ ■ www.apollodisplays.com/pdf/dmcman.pdf www.altera.co.jp/support/software/nativelink/quartus2/glossary/ def_rif.html ■ 「MAX II デバイス・ハンドブック」の「MAX II デバイスにおけるユーザ・フ ラッシュ・メモリの使用」の章 関連情報 8 以下に、このアプリケーション・ノートの関連情報を示します。 ■ MAX II CPLD ホームページ : www.altera.co.jp/products/devices/cpld/max2/mx2-index.jsp ■ MAX II デバイスの資料ページ : www.altera.co.jp/literature/lit-max2.jsp ■ MAX II パワーダウン・デザイン : www.altera.co.jp/support/examples/max/exm-power-down.html Altera Corporation 2007 年 12 月 改訂履歴 ■ MAX II アプリケーション・ノート : 「AN 428: MAX II CPLD のデザイン・ガイドライン」 「AN 422: MAX II CPLD を使用したポータブル・システムにおける消費電力 の管理」 表 3 に、このアプリケーション・ノートの改訂履歴を示します。 改訂履歴 表 3. 改訂履歴 日付 & ドキュメント・ バージョン 2007 年 12 月 v1.0 101 Innovation Drive San Jose, CA 95134 www.altera.com Literature Services: [email protected] Altera Corporation 変更内容 初版 概要 — Copyright © 2007 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device designations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and other countries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. 9