H8に漏る貧液晶をつなぐ(拙速主義編)


まったくです。早くH8側にフラッシュファイルシステムでも作りたいものです。

戻る


 MorpyOneに搭載されるはずだった液晶モジュールEG7014Cを入手したのでH8につないでみました。

※MorphyOneってどうなったのか、なぜMorphyOne用の部品が一般人でも入手できるのか、といった点についてはこちらをご覧ください。

 とにかく動かしてみたかったので、以前作った240×64ドット液晶モジュールG2436用の回路を流用しました。これなら、すでにCPU−CPLD−VRAM間の配線は終わっているので早く動かせます。タイトルに「拙速主義」とあるのはそういうわけです。現在贅沢にもCPLD2個使っていますが、一個でもいけると思うので、いずれCPLD一個バージョンを作りたいと思います。

 基本方針は、「G2436用の回路はなるべく変更しないこと」です。あとでまたG2436用に戻したくなったとき変更が多いと大変ですから。

 さて、G2436はデータ入力の幅が4ビットでしたが、EG7014Cは8ビットです。そのままではつなげられません。また、G2436は電源5VですがEG7014Cは3.3Vです。当然ロジックレベルも違います。(G2436用回路のCPLDにはVccInt=VccIO=5Vを与えています。VccIO=5Vだと、出力H時には4Vくらいの電圧が出ます。)

 それらを解決するため、もう一個CPLD(XilinxのXC9536)を使いデータ幅変換とロジックレベル変換をさせることにしました。

写真


稼動中の全景です。奥のほうの基板がおなじみ?G2436コントローラの基板で、液晶モジュールの下にある基板が今回新たに作ったデータ幅変換基板です。


液晶画面のアップです。縦64ドットの液晶とは違いますね。これで階調がつけば文句なしなのですが。


データ幅変換基板の部品面です。液晶のフラットケーブルコネクタ用にサンハヤトの変換基板を使いました。


データ幅変換基板の半田面です。


データ変換基板と液晶モジュールの接続。こうやって伸ばすと液晶モジュールは裏返しになります。

回路図

G2436 コントローラ基板の変更

 いままで、液晶モジュールG2436とは12ピンコネクタでつながっていましたが、実際に使っていたのは10番ピンまででした。新たにCPUのポート6のビット2(CN3−37)を11番ピンにつなぎ、/DOFF信号とします。

 配線変更は上記1点だけで、あとはCPLD書き換えで対処します。

データ幅変換基板

 G2436コントローラ基板と液晶モジュールEG7014Cの間に入ります。G2436コントローラ側からくる4ビットごとのデータを8ビットづつにまとめてEG7014Cに送ります。
 また、液晶用の3.3V電源もこの基板上のレギュレータLM1117−3.3で作ります。CPLDのVccIOも3.3Vにしてロジックレベルを液晶に合わせます。
 以下が回路図です。


CPLDのVHDLソース

 ちょっと長いので別ページにしました。こちらをご覧ください。

テストプログラム

 配線が終わったら、「超ミニBASIC for H8/3048」に同梱されている cmb3052.mot をCPUに焼き、以下のプログラムを実行します。うまく回路が動いていれば画面が真っ黒なドットで埋め尽くされます。
 10 POKE &P1DDR,$FF:POKE &P2DDR,$FF 'ADDRESS BUS
 20 POKE &P4PCR,$FF ' PULL-UP ON
 30 POKE &P5DDR,$FF ' ADDRESS BUS
 40 POKE &P6DDR,$FF ' OUTPUT
 50 POKE &P8DDR,$FF ' OUTPUT (USE CS)
 60 POKE &PADDR,$FF ' OUTPUT
 70 POKE &PBDDR,$FF ' OUTPUT
 80 POKE &WCER,$0   ' DON'T USE WSC
 90 POKE &P6DR,4    ' LCD DISPLAY ON
100 FOR I=$200000 TO $207FFF ' LCD RAM ADDR
110 POKE I,$FF               ' FILL BLACK (BIT='1':BLACK)
120 NEXT

データコンバータ

 拙速主義で作った、EG7014C用データコンバータです。640×200ドットのモノクロBMPを約85KバイトのPOKE文スクリプトに変換します。それをシリアルでH8におくるのにはえらい時間がかかります。こんなダメツールでもいいから欲しい、という人はメールください。