電音の工場ブログ

趣味の電子工作を中心としたブログです.音モノの工作が多いです.

こんどはLCDが動かない

こんどはLCDが動かない

こんなのばっかり。

I2Cがなんとか動いたので味をしめてI2CからLCD表示するスレーブを作ろうと思いました。おりしも秋月で扱うLCDのサイズ・バリエーションが増えたことだし、いろいろなサイズに対応しよう、と。ゆくゆくはI2Cバス上にこのLCDを置いてセマフォかなんかを設けてマルチマスタでも扱える(上の行はマスタ0、下はマスタ1とか)ようにしようとかPWMで表示の明るさを変えたりできるようにしようとか妄想竹も延びています。

これまでLCDのドライバは書き捨てることが多かったのですが、以前ARM(ADuC7026)にモディファイして使ったProcyonのAVRlibのほうを利用して、コントローラにはATtiny2313(内蔵RCで8MHz動作)を、ポートはPORTDで、とか考えて都合が良いように4bitインターフェース時にポートの下のニブルで使えるように変更してみました。Procyon AVRlibそのままにはLCDの初期化シーケンスがコーディングされていないので、0x30を打って4.1msec待つとか100μsec待つとかのおまじないを入れました(ただしかなり長めの時間を出すテキトーなタイマ)。基本動作はBusy Flagを見る設定で。

ブレッドボードに組み立てて実験。

だがしかし…

ときどきLCDの初期化に失敗します。成功するときちんと動き続けているのですが…

今のところ原因がつかめていません。電源投入後の待ちが足りないのかなぁ。時間を作る部分は自前で作りこむか…

どうしてこういう枯れているところでハマルのだろう…