王様の耳はロバの耳!

OCN blogzine からお引越ししました
でもやっぱり何も聞かなかったことにしてください(笑)

カラーGLCDにチャレンジ その3

2013-11-04 13:05:53 | PSoCで遊ぼう

Img_0415 一晩ねて11月3日の日曜日.液晶基板をはがして,フレキ基板のハンダをやりなおして,あれこれいじっているうちに,縁の未書き込み部分がなくなって,正しいカラーバーが出てくるようになりました.

Img_0414_2 しかし赤が1秒間に2回ぐらい点滅するとか,どうも動作がおかしいのです.むー,これは初期化ルーチンに問題があるのかなー…

インターネットで検索して,いろいろ読んでいるうちに,GLCDドライバのILI9325Cというのと別に,ILI9325という無印版があるらしく,初期化コードが微妙に違う,ということがわかりました.でも買ったのはCP2401T-Cで,ILI9325Cのはずだよなあ…と,Aitendoのページを確かめに行きました.それで判明.うちに来ていたのはCP2401T.Cがつかないほうだったのです.あ゛ーAitendoのばか~.初期化コードをILI9325版に修正しましたら…

Img_0416 ばっちりだ!全然ちらつかない!やたー!

Img_0417 部分範囲を指定してデータを書き込む実験も成功.よかったよかった.

Img_0424 プログラムをちょっと紹介.コマンドIDもデータも16ビットデータを高位ビットから先に送ります.コマンドIDは8ビットなんだけど,最初にダミーの0を送ります.

Img_0427_2Img_0426Img_0428

 初期化ルーチン.Cのつかない方の初期化コード(PDFで提供されるアプリケーションノートに記載のもの)を使わないといけません.

Img_0429Img_0430Img_0431 メインプログラム.デバッグのために白黒GLCDも使っているのでややこしいですが,163-164行目がカラーGLCDの初期化です.174-179で,画像更新の範囲とスタートアドレスをセットし,あとは色データを流し込んでいけばOK.(181行目から)225行目からは,カラーバーの中の小さいカラーバーの描画になります.ここではまったのは,横方向(x方向)の終了アドレス(R53に書く値)が8の倍数になっていないと,切り捨てられてしまい,範囲の先頭へ表示が戻って行ってしまうことです.GLCDドライバのバグなのか,施工不良に起因することなのか,ちょっときがかりなところ.

さて一晩開けて連休の月曜日の朝,動画でも撮ろうと再び動かしてみましたが…

</object>
YouTube: Aitendo CP2401T を PSoC5 でドライブ (かなり失敗編)

えーん,また画面表示がおかしい…液晶パネルに起因するのか,はんだ付けが下手だからなのか,もじゃもじゃ配線が悪さをしているのか,ちょっとわからないです.これはちゃんと基板パターンを起こして作ってもらうようにしないと動作が安定しなさそうです.

というわけで,なんとか動いたんだけれども,これは失敗tというべきかなあ….時間がかかった割には,ちょっと結果が残せず残念.しばらく頭を冷やしてみよう…


カラーGLCDにチャレンジ その2

2013-11-04 11:48:19 | PSoCで遊ぼう

1週間後の11月2日土曜日,ふたたび挑戦開始です.

4写真に配線計画を書き込んでいきました.(ん?まちがい?)

ここであの謎の表が登場します

PORT1-811-1821-2831-34
A P3 P5 P4 P12[0-3]
B P1 P2 P0
C P9 P8 P7
D P1 P2 P5
E P3 P0 P4

PSoC Development Kit (CY8CKIT-001)や,PSoC3/5LPのDevelopment Kit (CY8CKIT-030,CY8CKIT-050)では,GPIOや電源を40ピン単位でまとめたPORTが出ています.001ではPORT A, A', B, C が出ていて,030,050ではD,Eが出ています.(PORT A'だけはピン数が多いのでここでは除外します.)

Psdsh015 パステルマジックさんのPS-DSH01-3/PS-DSH01-5でも,030/050互換のPORT D, Eが出ています.

PORTからは8ピン単位のGPIOポートが3つと,I2C用と思われるP12[0-3]が出ており,GNDや3.3V,5V等は共通のピン位置に出ていますので,ソフト側のGPIOポート指定を変えるだけで,同じハードウェアを違うPORTに刺しても動くように作ることができます.

ということで,どのPORTでは,どのピンにどのGPIOポートが出ているかをまとめたのがあの表ということになります.

カラーGLCDドライバILI9325は,内蔵のGRAMにデータを送るとそれをCGLCDに表示してくれるモードを持っています.データ幅は18bitですが,16bitや8bitのデータ転送モードをもっています.今回は8bitモードを使います.(Aitendo基板のデフォルトのまま.)なので,PSoCと決戦しなければならない信号線は,データバス8本のほか,制御線としてnCS(Chip Select),D/C(Data(H) or Command(L)), nRD(Read), nWR(Write)の4本,さらにリセットをかけるnRESETの線も入れると計13本になります.2ポート必要になります.さらに,この液晶は4線抵抗膜式タッチパネルをもっているので,それも使いたければもう4本の信号線が必要になります.

PSoC的常識?では,キャラクタLCDはP2を使います.PS-DSH01-3/5に付属の白黒グラフィックLCDはP2とP6を使っています.カラーGLCDと共存させるにはP2とP6はよけたいところです.そこで,1-8のグループと21-28のグループをカラーGLCDとの接続に使うことにしました.1-8のグループをデータバスに,21-28のグループを4本の制御線+リセットにあてます.11-18のグループはタッチパネル接続用に使うことにします.

Img_0410 配線が終わりました.ジャンパーピンは4線抵抗膜の線と,4灯のバックライトLEDを常時点灯/外部制御で切り替えるためのものですが,LEDはGLCDドライバがPWM点灯のメカニズムを持っていて輝度コントロールできるため,常置点灯でいいことをあとで知りました.残念.

Img_0411 もじゃもじゃ配線かっこわるーい.しかもこれ,まちがっていたんです!はずかしい…

2 正しい配線はこちら.GPIOポートの部分,上下を完全に逆にしておりました.PORTの1-8ピンが,GPIOピンの7-0の順にアサインされているので,一生懸命注意したはずだったのに,見事に左右逆(というか上下逆).落ち込みました…

Img_0412 やっとこせ絵がでてくるようになったときはうれしかったー!だけど何か変ですね.下と右がうまくデータが書き込まれません.それに画面のちらつきも激しい.土曜日はここで終了でした.あ,ちなみにPORT Eを使っています.

次回につづく


カラーGLCDにチャレンジ その1

2013-11-04 11:41:13 | PSoCで遊ぼう

カラー液晶を動かしてみたいなあと挑戦.Aitendoの2P-CP2401T-Cを発注したのが6月末の話.

Img_0091 (これが注文どおりの品でないことに,このときに気が付いてないといけないんだよ…というのは後の祭り…)

Img_0389 10月26日土曜日にチャレンジ開始.丁寧にフレキ基板の位置を合わせて…

Img_0390 これでうまくくっついたのか…自信ないなあ.

Img_0393 ともかく組み立てました.

Img_0391 秋月基板.ちょっと幅が広いので…

Img_0392 ちょっとカットしてコネクタピンを立てました.

Img_0394 液晶基板を秋月基板にとりつけます.

Img_0395 しっかりねじどめ.画面を横長につかいたかったのでこのように配置してみました.

Img_0396 完成予想図.この日はここで時間切れでした.

次回につづく.