記事一覧

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PSoC5LPのemWinで新し目の液晶パネルを動かす。

ARM CortexM系のMCU、STとかNXPとかMCU上でGUIを動かしたりするグラフィックライブラリとしてemWinが提供されてます。
PSoCもご多分に漏れず提供されているのですが、提供されているバージョンが古く、適合となっているメモリTFTLCDコントローラーICに新しい物が入ってきません。

直接メモリTFTLCDコントローラーのコマンドを送り、ピクセルデータを送り描画をするライブラリを見ていると、大体において描画するX,Yの始めの位置と終わりの位置を指定し(イメージとして、色データを書き込む四角形の指定)色データを送り込んで、と、どの液晶パネルコントローラーも、同じような描画の仕方。違うのは指定の仕方と送り方。

で、先のアドベントカレンダーの記事内で引用させて頂いた、ねむいさんのお言葉。。

PSoCのemwinのグラフィックドライバ部、GUIDRV_CompactColor_16.cの中を見てみると、0x2Aでコラムアドレス始点終点指定コマンド、0x2Bでロウアドレス始点終点指定コマンド、0x2Cでピクセルカラーデータ書き込みコマンド、0x2Eでピクセルカラーデータ読み込みコマンド、となっている設定が有りました。

コレをLCDConf_CompacktColor16.h内で、

#define LCD_CONTROLLER 66709

と指定。

ILI9486、9806等々の液晶パネルコントローラにこの設定で書き込むことが出来ます。

PSoCのGraphicLCDInterfaceマクロを使えば、後は液晶パネル自体の初期化コードの有るルーチン(初期化コードその物でも良いのですが)を、LCDConf.c内の終わりの方、static void _InitController(void) 内に書き込めば、emWin上から液晶パネルをコントロール出来ます。
(諸所細かい設定は省いております。)

また、書き込みコマンドとルーチンの少々違うRM68120などを使った液晶パネルなどは、そもそもの 66709 とゆう設定の書き込みコマンドと、データ書き込みルーチンを替えるだけで(もちろんパネル固有の初期化コードは違います)emWinからコントロールできます。
具体的にはGUIDRV_CompactColor_16.c内ののコマンドを#defineしている所の数値に00を付ける、
static void _SetPhysRAMAddr(int x, int y)
static void _SetRect(int x0, int y0, int x1, int y1)
内の書き込みルーチンのデータを次々書き込む間に、(たとえば、0x2A01とかとか)書き込むアドレス指定のコマンドを挟み込む、と、RM68120も、emWinからの描画に対応できるようになります。

emWinのグラフィックドライバ部を見ていると、どうも、描画は、このアドレス範囲指定と、ピクセルカラーデータの送信のみで描画を行っているご様子。

基本GUIを表示するグラフィックライブラリなので、ソレでOKなんでしょうね。


それよりもなによりも、設定の仕方が悪いのか、Widgetを使った表示サンプルが動かんのはどうしたことだろう、、、、。。。














スポンサーサイト

コメント

コメントの投稿

非公開コメント

プロフィール

akirahitosi

Author:akirahitosi
タイトルの通り個人的な備忘帳です。
使用しているMCUはSTM32F4とPSoC5LPなどなど。
自分が使う機能で、Web上の記事で参考にさせて頂いたページ等々を残しておこうとしてるので、このブログの記事のみでは、「できる」ようにはならないのでは?と思います。

最新コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。