MAX II CPLDを使用したLCDコントローラ

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