マイコンにLCDドライバ/コントローラーが搭載されていない場合は、中間電位が出力できないので、マイコンが直接LCDをドライブすることはできません。外部に図2に示すようなラダー抵抗をつないで中間電位を作れば、GPIOからラダー抵抗経由でLCDを駆動できます。
スタティックの場合は、直接GPIOからドライブできます。1/2バイアスの場合(図2(b))はGPIO1=High、GPIO2=Lowに設定すればマイコンの電源電圧2分の1の電圧が作れます。1/3バイアス(図2(c))の場合はGPIO1=GPIO2=High、GPIO3=Lowに設定すれば3分の2の電圧が、GPIO1= High、GPIO2=GPIO3=Lowに設定すれば3分の1の電圧が作れます。
このようにしてSEG信号とCOM信号を作れば、LCDは駆動できます。しかし、SEG信号やCOM信号の交流波形を作らなければいけないため、これらのGPIOを常にソフトウェアで制御しなければなりません。LCDを表示している最中に、他の割り込みが発生した場合、GPIOの切り替えが中断され、LCDの表示も中断されることになります。これでは実際に使えません。
そこで、LCDドライバICを介してLCDをドライブする必要があります。
LCDドライバICのインタフェース仕様が同期式シリアルの場合を図3に示します。STM32F103にはUSART機能が搭載されているので、それを使って同期式シリアル通信で表示データをLCDドライバICに送ります。Enable信号はGPIOを使って、ソフトウェアで制御します。
パラレル通信タイプのLCDユニットのマイコンとのインタフェースは、一般的にIntel 8080(I80)またはMotorola 6800(M68)が使われています。
STM32F103には、この2つのインタフェースに対応できるFSMCという周辺機能を持っています。FSMCは、SRAMなどの外部メモリをアクセスするための機能ですが、Intel 8080とMotorola 6800のインタフェースにも対応可能です。
パラレル通信タイプの信号は、データ信号と制御信号の2種類に分類されます。データ信号はLCDユニットの内部データバスに接続され、LCDの色深度(8ビット、9ビット、16ビット、18ビット、または24ビット)を制御します。制御信号は、操作タイプ(読み取りまたは書き込み)および操作がLCDレジスタのアドレス指定(コマンドへの書き込み)であるか、ディスプレイRAMであるかを定義するために使用されます。
詳しい使い方は、STマイクロエレクトロニクスが発行しているアプリケーションノートAN2790を参照してください。
Copyright © ITmedia, Inc. All Rights Reserved.