一晩ねて11月3日の日曜日.液晶基板をはがして,フレキ基板のハンダをやりなおして,あれこれいじっているうちに,縁の未書き込み部分がなくなって,正しいカラーバーが出てくるようになりました.
しかし赤が1秒間に2回ぐらい点滅するとか,どうも動作がおかしいのです.むー,これは初期化ルーチンに問題があるのかなー…
インターネットで検索して,いろいろ読んでいるうちに,GLCDドライバのILI9325Cというのと別に,ILI9325という無印版があるらしく,初期化コードが微妙に違う,ということがわかりました.でも買ったのはCP2401T-Cで,ILI9325Cのはずだよなあ…と,Aitendoのページを確かめに行きました.それで判明.うちに来ていたのはCP2401T.Cがつかないほうだったのです.あ゛ーAitendoのばか~.初期化コードをILI9325版に修正しましたら…
部分範囲を指定してデータを書き込む実験も成功.よかったよかった.
プログラムをちょっと紹介.コマンドIDもデータも16ビットデータを高位ビットから先に送ります.コマンドIDは8ビットなんだけど,最初にダミーの0を送ります.
初期化ルーチン.Cのつかない方の初期化コード(PDFで提供されるアプリケーションノートに記載のもの)を使わないといけません.
メインプログラム.デバッグのために白黒GLCDも使っているのでややこしいですが,163-164行目がカラーGLCDの初期化です.174-179で,画像更新の範囲とスタートアドレスをセットし,あとは色データを流し込んでいけばOK.(181行目から)225行目からは,カラーバーの中の小さいカラーバーの描画になります.ここではまったのは,横方向(x方向)の終了アドレス(R53に書く値)が8の倍数になっていないと,切り捨てられてしまい,範囲の先頭へ表示が戻って行ってしまうことです.GLCDドライバのバグなのか,施工不良に起因することなのか,ちょっときがかりなところ.
さて一晩開けて連休の月曜日の朝,動画でも撮ろうと再び動かしてみましたが…
</object>
YouTube: Aitendo CP2401T を PSoC5 でドライブ (かなり失敗編)
えーん,また画面表示がおかしい…液晶パネルに起因するのか,はんだ付けが下手だからなのか,もじゃもじゃ配線が悪さをしているのか,ちょっとわからないです.これはちゃんと基板パターンを起こして作ってもらうようにしないと動作が安定しなさそうです.
というわけで,なんとか動いたんだけれども,これは失敗tというべきかなあ….時間がかかった割には,ちょっと結果が残せず残念.しばらく頭を冷やしてみよう…