メディア
連載
» 2020年09月01日 11時00分 公開

Q&Aで学ぶマイコン講座(58):LCDドライバ/コントローラー非搭載のマイコンでLCD表示する方法 (2/3)

[STマイクロエレクトロニクス,EDN Japan]

外付け抵抗でLCD用信号を作る

 マイコンにLCDドライバ/コントローラーが搭載されていない場合は、中間電位が出力できないので、マイコンが直接LCDをドライブすることはできません。外部に図2に示すようなラダー抵抗をつないで中間電位を作れば、GPIOからラダー抵抗経由でLCDを駆動できます。

図2:外付け抵抗でSEG信号/COM信号を作る

 スタティックの場合は、直接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を使用する

 LCDドライバICのインタフェース仕様が同期式シリアルの場合を図3に示します。STM32F103にはUSART機能が搭載されているので、それを使って同期式シリアル通信で表示データをLCDドライバICに送ります。Enable信号はGPIOを使って、ソフトウェアで制御します。

図3:LCDドライバICとの接続(STM32F103の場合)

パラレル通信タイプのLCD

 パラレル通信タイプの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であるかを定義するために使用されます。

図4:マイコンとLCDユニットのパラレル接続例(STM32F103の場合)(クリックで拡大)
アプリケーションノートAN2790から引用

 詳しい使い方は、STマイクロエレクトロニクスが発行しているアプリケーションノートAN2790を参照してください。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.