たぶん大丈夫だろうと思って放置していたLCDI/F部分の確認をしておきました。
LCDへの接続は他のx86ボードと同じように
RS ←A1
R/W ←A2
E ←(アドレスデコード)&(IOWR | IORD)
としているので内部レジスタへのアクセスは
0x4000 コマンドライト
0x4002 データライト
0x4004 ステータスリード
0x4006 データリード(まず使わない)
となります
とりあえず無事動作しました
たまたまハーネス付きで手持ちがあったLCDを使ったのですが日立製のLM018という40桁2行のモジュールで、そうとう昔に新品を結構高価(亜土?\3000以上?)で購入したものです。
液晶の変質もなく全く問題なく表示できているのはさすがです。
(・・カシオとかシャープのポケコンに使われていた淡黄色バックの液晶は全滅)
ただこれは最初からですがちょっと表示濃度が薄いのです。バイアス電圧V0は0Vに回し切っていますがまだ足りません。この角度では見えますが真正面からでは厳しい感じ。
昔の液晶は特性が違うのかV0はGNDより若干負電位にしたところで最適なコントラストが得られ、このLCDを最初に使った時もRS232用のチャージポンプで得られる-10Vと+5V電源の間にコントラスト用VRを置いていたのを思いだしました。
あと、カウントアップ表示で長時間ランニングさせているとBUSYフラグが立ちっぱなしになりステータス待ちループから抜けられなくなっていることがあります。
これは単に純正(本物!)のコントローラHD44780が遅いからではないかと。
E信号の幅に仕様上は450ns以上を要求しています
このボードでE信号を実測すると200nsしかありませんから、ある程度動いたとしてもかなり無理してます
いま売られている安い中国製のLCDでは最小140nsとなっており充分です
しかも0~5Vで充分なコントラストが得られ、尚且つバックライト付きですから云うことはありません