2010年6月12日土曜日
SH-2A ビデオディスプレイコントローラを試す。
(6/13 訂正)
CQ出版 Interface誌 付属SH-2A基板で、TFT-LCD の表示に挑戦しました。TFT-LCD は、OPTREX T-55343GD035...を使用しました。一部、前日、弊ブログで掲載した内容と重複している点もありますが、ご容赦願います。
1.準備
1)コネクタ探し
OPTREX 指定の以下の3種のFPC/FFCコネクタを秋葉原で探しました、ラジオデパートなどの数軒のコネクタ専門店を探すのですがいずれも、メーカーに発注になり、2000個単位でしか扱わないとの事、秋葉原ではどこも5個や10個程度は扱わないと言われました。そういわれながらも諦めきれず、秋葉原を放浪しました、すると、秋月電子通商近くの「鈴商」というパーツ屋で、メーカー不明ながらも0.5mmピッチ40極のFPCコネクタを1個50円で購入出来ました。また、17号線沿いの「スーパージャンク?」で0.5mmピッチ6極のFPCコネクタを1個16円で購入しました。
・表示側回路部FPC用コネクタ 0.5mmピッチ40極 (Kyocera Elco 6240)
==>前述の 0.5mmピッチ40極 コネクタを使用
・照明側回路部FPC用コネクタ 0.5mmピッチ3極 (Kyocera Elco 6298)
==>前述の 0.5mmピッチ6極 コネクタを使用 余り3極分のスペースを埋める。
・タッチパネルFPC用コネクタ 0.65mmピッチ4極(Kyocera Elco 6227)
==>自作コネクタ まだ試さず。
2)FPC変換基板作成
1)で入手した、FPC用コネクタ40極をサンハヤト SMTコネクタ変換基板CK-4にハンダ付けしました。配置を考え、11~50ピンを使用
3)0.5mmピッチ6極FPC用コネクタの改造
LCDバックライト白色LEDの電源として、1,3極を使用、リード線をハンダ付け、4~6極はプラスチックフィルム(0.2mm厚)を挿入固定
4)拡張基板作成。
付属SH-2A基板のCN3に接続し、シリアルフラッシュROM(M25P40)搭載、CN3のLCD_XXX..端子を、FPC用コネクタ40極に引き出す基板を作成。OPTREX T-55343GD035 にはSPIによる制御機能があるので、SPI0が使用できるように、M25P40と、T-55343GD035 の接続を切り替える回路を試しに搭載。(今だSPIは試していません。)
5)カラーバー表示プログラムを試す。
Interface誌のLCD表示サンプル(2010.6 6章)およびルネサスからダウンロードした、TFT-LCDパネル表示のサンプルコード(an_rjj06b1002_sh_lcd)を参考にして作成したプログラムを試す。
T-55343GD035 は暗いまま、変化なし。
(実は、かすかながら、左端、1cmに幅5mmの縦帯が見えた。後でこの縦帯が表示領域だったことを知りました。)
6)LCDバックライト白色LEDの電源回路の作成
今まで、使用のモノクログラフィックLCDを使った感覚で、OPTREX T-55343GD035 は3.3Vで全てまかなえると思っていたのですが、(OPTREXの仕様書 7.Electrical Specifications(電気特性)だけを見て判断し、T-55343GD035の購入を決めました。)
OPTREXの仕様書の後ろの方、7.7.Lighting Specifications(照明仕様)に19.2Vの表記あり、さらに後日入手した T-55343GD035 アプリケーションノートよると、リニアテクノロジーのLEDコントローラLT3591が必要と知り、これを購入、ここからは以前、投稿した「ハンダ付けの。。。。」の内容どおりの試行錯誤をおこないました。
とにもかくにも、T-55343GD035のバックライトの点灯に成功しました。ちなみに前述の5)を試すと、白地に縦の黒帯表示となりました。
2.TFT-LCDの表示
1)SH-2AのLCD(T-55343GD035)コントロールの確認
この時点で、LCDの表示は白地に黒帯(左端から1cmの位置に5mm幅)、T-55343GD035がかってに表示しているのか、SH-2Aが何らかの制御を行った結果なのか不明。
そこで、SH-2Aのビデオディスプレイコントローラ3(VDC3)の表示領域外の色指定を試しました。
グラフィックス画像外の色設定レジスタ(GROPBASERGB1)に赤、青、緑と順次設定し、これを試すと
LCDの表示は赤、青、緑と順次変化するのが確かめられました。
==>SH-2AのVDC3機能が稼動しているのを、初めて確認。
2)表示調整
この時点で、SH-2A側の設定は、マニュアルどおりの設定で、後は T-55343GD035 側の設定が必要と思われました。しかし、T-55343GD035 の初期設定は、SPI通信で行う必要があり、この設定法が今一つわかりません、CLKの周波数、各コマンド、各パラメータ等はドキュメントで確認できるのですが実際にどのようにすればよいのかわかりません、たとえば、コマンドとパラメータは繋げて送ればよいのか、一定の間隔を空けて送ればよいのか、はたまた、セパレータ等が必要なのか不明です。
・・・T-55343GD035のSPIによる設定はここで一旦諦める。
そうこうしているうちに、DE の水平方向開始設定(DE_START_H)を適当にいじると、1)の表示の縦の黒帯が広がりました。さらにその黒帯の下半分に本来表示されるべきカラーバー画像の下部グレーのグラディエーション表示らしきものが見えるのに気付きました。そこで、カラーバー画像を横縞に変更すると(上掲の画像)、設定した全ての色表示が確認出来ました。
後は、マニュアル無視のVDC3の設定を試すだけです。色々試すうちにDE の水平方向開始設定(DE_START_H)を320にすることで9割がたの表示になることがわかりました。(カラーバーの表示、上掲画像参照)
*後は、SPIによる T-55343GD035 の設定で、SH-2A VDC3の設定を本来の値に戻すことが今後の課題となります。 (6/13訂正)
3.TFT-LCDの表示で遊ぶ。
ここまでTFT-LCD(T-55343GD035)の表示が出来たら、何か、画像を表示したくなりました。
1)RGB565形式の画像データファイル作成プログラム。
以前、LUMINARY MICRO社 LM3S8962 の OLED(グラフィクディスプレイ128 x 96)の表示データを作成するために作成したアプリケーション(MakeRIT_Image)を修正し、画像ファイル(ビットマップ等)から、RGB565形式のデータを生成するアプリケーションを作成しました。
最初はテキストファイル出力で、ヘッダーファイルで定義する画像データの配列の初期化データとして使用しました。プログラムサイズは256KBを超え、近い将来使えなくなるので、バイナリファイルを出力し、HEWのSH-2Aへのダウンロードファイルとして扱うようにしました。
試しに、OPRTEX社のホームページをハードコピーしたビットマップファイルを320×240のRGB565形式の画像ファイルにして、T-55343GD035に表示しました。(上掲画像参照)
4.文字表示
ここまでTFT-LCD(T-55343GD035)の表示が出来たら、何か、文字を表示したくなりました。
1)自作フォント Font6×8
いままでモノクロLCDで使用している自作フォントを使いました。ここで、SH-2AのVDC3の機能の便利さが実感されました。いままで、RAM上に個別にVideoRAMを組み、LCD内のVRAMと同期をとっていたのですが。今回の場合、直接LCD内のVRAMを操作する感覚で、表示が扱えます。
2)STMicroのフォント
以前、STMicroelectronics の STM32F のマイクロコントローラを試した際に使用したフォント 16×24 を組み込みました。
フォントデータとしては、 "(SP)"以降でしたので、アスキーコードより、0x20(SP)を引く等工夫が必要でした。フォントデータだけ拝借、ライセンス的に多少の問題があるとは思いつつ、、
3)IPA_FONTについて、
ARMコンテスト優勝作品 「MP3プレーヤー。。。」2010.6掲載 を参考にIPAフォントを試したいと思いました。まずは、必要なサイズのフォントイメージを作成する必要があるようですが、今一つ不明、結構ハードルが高めかなと思います。ぼちぼちと試したいと思います。
※今回のTFT-LCD表示で気付いた点
・表示を試すカラーバーは、縦縞、横縞を準備するべき。
・表示を試すカラーバーは、左端、上端、下端、右端には、白、黒は避けるべき。
・まずは、表示外の色設定を行うこと。
※HEWのライセンス切れまであと、10日余り。256KBの壁がどの様なものか、GNU GCCに切り替えるべきか、、、、悩ましいことです。
登録:
コメントの投稿 (Atom)
私もSH-2Aのプログラムで遊ばれています。
返信削除HEWのライセンス困ります。
買うといくらなんでしょうね、ホームページには価格が出ていません。
KPITも試しましたが、Cの違いに戸惑い使いこなせません。
色々試されていて参考になります。
がんばってください
-- 銀河 --
コメントありがとうございます。
返信削除私の場合しばらく、HEWのライセンス制限256KB以内でSH7262の各機能の検証を行いたいと思っています。
それで、自作基板の検証を行い。最終的には、GNU GCCに移行しようと考えています。
(HEWを使ってみての感想ですが、出力ファイルのサイズが以外に小さいような気がします。制限の256KBも結構つかいでがあるように思います。)