マイコン工作実験日記

Microcontroller を用いての工作、実験記録

LCD表示試験

2008-04-10 00:03:36 | LCD
試験ボードを使った基本表示ルーチンを作成して動作の確認をしています。まずは初期化と塗りつぶしをおこない、色表示の確認です。書き込みの方法はNokia 6610 LCDと同じように、矩形領域を指定しておき、連続的にレジスタに16ビットの色指定データを書き込むことで指定した領域の塗りつぶしができます。



初期化の手順の概要はデータシートにも書かれているのですが、TechToysから提供されたサンプルのコードを流用しています。データシートと見比べると、何故かデータシートでは説明されていないレジスタの設定があったりします。提供されている資料だけでは意味が理解できないので、コードをそのまま使うことにしました。

16ビットデータの書き込みは、外部メモリバスでアクセスできれば、一回の書き込みで済む作業ですが、試験ボードでは8bitのGPIOアクセスで書き込むために、次のように4回のGPIO書き込み作業が必要となってしまいます。
  1. 下位8ビットのデータを出力する
  2. LE信号を落して、下位8ビットをラッチさせる
  3. 上位8ビットのデータを出力し、/WR信号を落とす
  4. /WR信号を上げる
ひとつドットを打つたびごとに この作業が発生するので、全画面に書き込むと画面の上から下に描いているのがわかるくらい時間がかかります。全画面塗りつぶしを繰り返して時間を計ってみると、毎秒10画面程度の速度しか出ていません。上記の1ドット分のデータ送信処理ルーチンを関数呼び出ししていたので、これを inlineで展開してみると、速度が倍になりました。

LCD試験ボード (その2)

2008-04-08 23:42:43 | LCD
作成したLCD試験ボードです。LCDボードの大きさがちょうど秋月の95X72mmのユニバーサル基板に載る大きさでしたので、この基板を使ってみました。基板の裏側にSAM7-H256を置いていますので、厚みはあるんですけど。



今のところLCD表示に必要な配線しかしていません。タッチパネル関連の線は全く配線していません。そのため、写真上側のピンヘッダには線がつながっていません。





茶色コネクタはデバック用シリアル接続のためのものです。電源はUSB給電です。LCDのモジュール内部で使用されているLCDコントローラ(ILI9320)にバックライト用の昇圧回路も組み込まれているようで、LCDボードは3.3Vだけで動いてくれます。一応、画面に色を出せるところまでは確認しましたが、画面表示については次回の記事で書くことにします。

LCD試験ボード

2008-04-07 23:22:23 | LCD
購入したLCDの動作試験用のボードを製作中です。制御用マイコンには、これまでどおりAT91SAM7S256を使い、8ビットでLCDボードと接続するつもりです。ピン数的には16ビットでの接続も可能なのですが、16ビット分の配線が面倒なのと、後でW-SIMやSPIでの接続を使いたくなるかもしれないので、そのためにピンを残しておくことにします。

本来の性能を発揮するためには16ビットでの接続をおこなうべきですが、その実験はいっそのこと外部メモリ用のバスが出ているAT91SAM7SEを使うべきかと考えています。LCDボード上のフラッシュメモリを使うことを考えても、その方がいいですし。当面の動作確認はAT91SAM7S256で進めておき、並行してAT91SAM7SE256の実験ボードでも作成しようかと思います。AT91SAM7SE256を使った適当なヘッダボードがあれば良いのですが、ざっと検索したところでは見つけられなかったので、自作することになりそうです。16本のデータ線の配線すら面倒なのに、128ピンパッケージでaddress/dataバスの配線もしなければならなくなることを考えると、ちょっと気が重いのですが。。。


LCD到着

2008-04-05 12:03:04 | LCD
注文してあったLCDが到着しました。このLCDは3.2インチTFTで解像度はQVGA(240X320)です。1.5インチのNokia 6610 LCDと並べるとこんな感じです。



このLCDは香港のTechToysから購入しました。お値段はUS $85と、ちょっと高いので悩んだのですが、次の理由から思い切って買ってしまいました。
  1. タッチパネルも付いている。
  2. 2.54ピッチのピンソケットが付いたボードになっている。
  3. 8bitバスでもつなげられるように、ラッチが載っている。
  4. (フォントとか画像を保持するためでしょうけど)32MBのフラッシュも載っている。
タッチパネルは単体でもaitendoJW-systemで買うことができますが、それなりの値段しますし、液晶と別に買うと自分で張り合わせねばならないので、最初から一緒に売ってくれると助かります。この液晶はDigiKeyやMouserでも扱っているNewhavenこの商品と良く似ていますが、サイズが大きめです。

使われているコントローラはILI9320となっています。このコントローラは、インタフェースとして8bit, 16bitでの接続だけでなく、SPIでの9bitシリアル接続もサポートすることもできるようになっているようです。しかし、液晶モジュールの中に組み込まれた状態では16bitでの接続しかサポートしない仕様になっています。TechToysのボードでは、ボード上に8ビットのラッチを用意することで、マイコンとは8bitで接続することも可能にしています。わたしとしては、やはり2.54ミリのソケットで接続できるボードになっているのがありがたいです。単体の液晶買っても、自分でフレキのソケットをハンダ付けしてボード作成できる自信が無いので。



TechToysでの買い物は今回が初めてでした。以前はOLIMEXの代理店をやっていたのですが、しばらく前に辞めてしまったようです。いまでも、在庫処分のボード安売りが続いています。注文はメールでとあるだけだったので、ちょっと不安でしたが、実際にメールを出すと30分もたたないうちに返事があり、Paypal経由での支払のためのURLが連絡されてきました。どうやら、John Leungという人が個人事業主としてやっているお店のようです。注文の受付も、発送完了の連絡もこの人がくれましたし、サンプルのソースコードを見てもこの人の名前が入っています。

TechToysのリンクで初めて知ったのですが、Microchipではグラフィックのライブラリを無料で提供しているのですね。スゴイです。PIC24使えば簡単にタッチパネル使ったアプリ組めそうではありませんか。思わずコードを拝借して使ってみたい誘惑にかられますが、やはりライセンス条件の中に「PIC以外のマイコンで使ってならない」旨がしっかりと明記されていました。わたしはマイペースで、のんびりと使い方を調べて実験を進めていこうと思います。

大きな画面が欲しい

2008-04-02 23:55:55 | W-SIM
Google Mapの表示が少し早くなったのはいいのですが、実際に画面を見るとやはりその狭さが気になります。地図を表示するといっても、なにしろ表示される範囲が狭いので、実用度もおもしろみもありません。画面の大きさの違いで、どの程度表現範囲が違ってくるのかを、実際にサンプルの画像で比べてみましょう。

まず、現在のLCDでの表示です。
132 X 96132 X 120

左側の132 X 96ドットが、現在のLCDで実際に表示している画面サイズです。画面下部には、動作確認用の表示領域が3行分ありますので、これを全て地図表示に使うようにすれば、表示領域は132 X 120にまで広げることはできます。まぁ、確かに気持ち広くなってはいますが。。

QVGA(240 X 320)の画面サイズだと、下のようになります。なんか、もう別世界ですねぇ。やっぱ、これくらい広くないと、せっかくの地図が生きてきませんよね。



そんなわけで、広いLCDを入手して遊んでみようかと考えています。表示データ量が増えて地図データのダウンロードに時間がかかるようになるとか、LCDのインタフェース方式が変わってしまうとかの問題もありそうなのですが。

*Google Mapの表示方法については、GoogleからGoogle Static Maps APIというのが発表されています。サーバ側の処理では、ちゃんとAPI Keyを取得して、このAPIを利用するようにした方が良さそうです。