体験!マイコンボードで組込みLinux

第14回 組込みLinuxでLCDを制御してみよう

この記事を読むのに必要な時間:およそ 3.5 分

LCDについて

LCDの概要

現在はLCDが普及して入手しやすい状況になってきました。入手しやすくなったのはいいことですが,グラフィックLCDに関してはコントローラが多種多様なので,コントローラごとに制御ソフトウェアを開発する必要があります。

Android端末並みに豪華な表示インターフェースが必要な場合はグラフィックLCDを使いますが,単純に制御用コントローラで文字情報を表示するだけならばキャラクタLCDでじゅうぶんです。キャラクタLCDのコントローラとしては日立製HD44780がデファクトスタンダードとなりました。

現在,普及しているキャラクタLCDもHD44780互換コントローラを搭載しており,HD44780用の制御ソフトウェアさえ開発しておけば,LCDのメーカーに関係なく同じソフトウェアで表示制御ができます。

LCDのスペック

今回,対象とするLCDは図1に挙げる16文字が2行(計32文字)の表示能力をもったもので,以下のサイトから単価500円で購入できます。

LCDキャラクタディスプレイモジュール(16×2行バックライト無)
URL:http://akizukidenshi.com/catalog/g/gP-00040

上記サイトでは,スペックの概要が記載されており,購入をすると詳細なデータシートが添付されています。

図1 LCDモジュール

図1 LCDモジュール

対象とするLCDのデータバス本数は8本ですが,その半分の4本でも制御することは可能なので,通常は配線コストを下げることができる4本でのデータバスで制御されることが多いです。HD44780はかなり昔のコントローラなので電源電圧が5Vとなっており,現在に普及している互換コントローラも多くは5V電源となっています。今回,対象とするLCDも5V電源となっています。

SH7706LSRとの接続

電源電圧の整合

一昔前まではデジタル回路の電源電圧は5V系統で統一されていましたが,現在では3.3V系統にシフトしてきました。SH7706LSRは3.3V系統にシフトした時期にリリースされたマイクロコンピュータなので内部電源1.8V,外部インターフェース電源は3.3Vです。

3.3V系統にシフトした時期以降のコントローラは3.3V電源なのでSH7706LSRとの接続に問題はないですが,今回対象となるLCDのような3.3V系統にシフトした時期以前のコントローラは5V電源なのでなので,そのままでは接続ができません。

SH7706LSRのような3,3V系統のマイコンボードに5V電源系統のような異なる電源系統どうしを接続する場合,一番標準的な方法としては,図2のような電圧変換回路を間にはさむ必要があります。

図2 3.3V系と5V系の接続

図2 3.3V系と5V系の接続

後継互換コントローラの実際

オリジナルのHD44780は完全に5V電源になっています。今は現物のHD44780が使われることはなく,後継の互換コントローラとなっています。それらの電源スペックの主流は5V電源となっていますが,実はコントローラ内部は3.3V系統インターフェースに対応している場合が多く,今回対象とするLCDも3.3V系統インターフェース対応の5V電源コントローラです。なので,LCDの電源を3.3VにしてSH7706LSRとLCDを直接に接続して制御を行うことができます。

コントローラ自体が3.3V系統インターフェースに対応しているにもかかわらず,なぜ5V電源を要求しているかというと理由があります。LCDモジュールの中で5Vの電圧の要求している部分は,コントローラではなく物理的な液晶そのものを駆動させている部分なので5V電圧でないといけないわけです。

SH7706LSRとの接続方法について

SH7706LSRとの接続は,図3のようにSH7706LSRとLCDの電源を両方に3.3V電源に統一します。

図3 SH7706LSRとの接続(3.3Vに統一)

図3 SH7706LSRとの接続(3.3Vに統一)

液晶駆動用に別途,負電源発生回路を追加して約-2Vの電圧を液晶駆動用端子追加します。そのことにより,液晶そのものを駆動させている部分にのみ最大5.3Vの電圧がかかるようになります。もっとも,別途5V電源が供給できる場合は,図4のようにSH7706LSRは3.3V電源系統でLCDは5V電源系統でも直結は可能です。

図4 SH7706LSRとの接続(3.3V/5V併用)

図4 SH7706LSRとの接続(3.3V/5V併用)

ただし,注意しなければいけない点は,SH7706LSRからLCDへのアクセスは問題ないですが,LCDからSH7706LSRへのアクセスするとLCD系統からの5V電圧が3.3V定格であるSH7706LSRにかかりマイコンボードが破壊する可能性があります。そのため,制御ソフトウェアではLCDへの書き込みのみでLCDからの読み込みをしないようにコーディングして,LCDのアクセス方向を決めるR/W端子をWrite専用に固定する必要があります。

負電源(マイナス電源)発生回路

負電源発生回路は本格的なものとなると複雑になってしまいますが,今回は簡易なものでじゅうぶんなので,図5のような非常に簡素な回路でもLCDで対応可能となっています。

図5 負電源発生回路

図5 負電源発生回路

原理としては単純であり,パルス出力側のコンデンサ(C1)に正電圧により一旦,正電荷をチャージします。C1にチャージされた電荷はショットキーダイオードを通して負電圧出力側のコンデンサ(C2)にも転送されます。

両方のコンデンサ間の経路はD1経由とD2経由がありますが,C1からC2の経路ではD2のダイオードのみ電流を通します。そのため,C2ではGND経由からのみ正電荷をチャージされるので,C2では相対的にGND側がプラスで反対側(負電圧出力端子)はマイナスになるので,負電源が供給されるわけです。

SH7706LSRではリアルタイムクロック出力端子があるので,それをパルス出力端子とすれば,図6のようにさらに回路を簡素化することができます。

図6 負電源発生回路(SH7706LSR簡易版)

図6 負電源発生回路(SH7706LSR簡易版)

SH7706LSRとの接続例

SH7706LSRとLCDの接続は汎用I/Oポートで行うので,任意のI/Oポート端子でかまいません。ここでは図7のように接続します。

図7 SH7706LSRとLCDの接続

図7 SH7706LSRとLCDの接続

基本的に端子は任意でいいですが,負電源回路へのパルス出力端子は TCLK端子固定でなければなりません。

著者プロフィール

みついわゆきお

1986年日立製作所入所,その3年後に自社ワークステーションでの開発業務をきっかけにBSDを経てLinux利用を始める。

1991年日立を退社し,その後,ボランティアでLinux関連ツールの整備と開発しながらWindows否定運動およびLinux普及運動を開始し,Linuxディストリビューション草創期にはPlamoLinuxのメンテナンスにもかかわる。

2001年ごろより非営利ベースでボードコンピュータの開発を開始し,やがて,無償によりハードとソフトを開発したH8マイコンボードの販売を秋月電子にて開始した。

現在,ボードコンピュータ用基本ソフトMES2.5や,SHプロセッサ向けLinuxパッチおよびTOPPERS/JSPパッチを無償で一般に提供しながら,ティーエーシーやエムイーシステムより原価率100%を目標(ただし,販売店の営業・販売費用や開発・製造の際の差損を除く)としたSuperHボードコンピュータを販売中。

また,現在でも頑固にMS社否定及びWindows撲滅運動に邁進中。

コメント

コメントの記入