マイコン工作実験日記

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

タッチパネルをつなげた

2009-09-12 22:30:29 | MP3プレーヤ
アイコン並べた画面を見るとかなり雰囲気でてきた感じがしてきましたので、つづいてタッチパネルの接続です。もともとLCD画面にタッチパネルが貼ってありますので、モジュールの未配線だったタッチパネル関連の線をつなぐだけです。使用しているLCDモジュールでは、1)4線式パネルの信号をマイコン側のADCにつなげて利用する方法と、2)モジュール上のコントローラADS7846をSPIでつなぐ方法の2つの方法を選択可能ですが、昨年と同じようにADS7846を利用することにしました。

ADS7846を使用する場合でも、X座標とY座標を別々に読みだして座標変換する処理が必要なので、ある程度の手間がかかります。ただし、ペンダウンにより割り込みを生成できるのが大きなメリットです。ADCを使う場合は、常時XY座標を測定していないとペンダウンが発生したことを検出できませんので、それだけCPUサイクルを消費することになります。ADS7846を使えば、割り込みが発生したら、XY座標の測定を開始すれば良く、ペンが離されたことが検出できたらその後は休んでいることができます。

LPC2388には、SPIをサポートする周辺機能として、SPIという名前のインターフェースと、SSPという名前のインタフェースが用意されています。どちらかというとSSPの方が高機能のようなので、今回はSSP0を使って接続。SPIではSSEL端子が入力端子としてしか使えないのに対して、SSP0ではSSEL0を出力として使えますので、マスター動作時にCS信号を自動的に出力できて便利です。ADS7846からはペンダウンを通知する割り込み信号/PENIRQも出力されてきます。LPC2388基板側のIRQ端子は他の用途に使われていたり、ヘッダに出ていなかったりしますので、GPIO割り込みを使うつもりでP2[8]につないでおきました。



配線ができたので、さっそく動作確認です。ADS7846はSPIで送った8ビットのコマンドに応じて、続くクロック中の10ビットあるいは12ビットで測定した座標を返してくれます。まずはX座標の測定から。下の画面では0xd1が送信しているコマンドで、X座標の測定を要求しています。矢印の右側の3バイトがSPIの受信結果です。最初の1バイトは、コマンド送信中のデータですので関係無し。後ろの2バイト中の12ビットが測定結果です。Valの値は12ビットを抜き出して10進数で表示しています。



タッチしていない状態では値として0が読めています。タッチして左から右に行くにしたがって、測定値が小さくなっていきます。続いて、Y座標の確認。同様に、0x91が送信しているコマンドです。



今度はタッチしていない状態では2047が読めています。そして上から下へ移動するにしたがって、測定値が小さくなっていきます。このように、測定される値は、画面右はじの方が値が小さく、オフセットをもった値になっていますので、これを画面描画の時に使用する座標に変換してやる必要があります。この変換処理は、/PENIRQ信号の処理と合わせて、ひとつ新たなタスクを設けて処理してやる予定です。

最新の画像もっと見る

7 コメント

コメント日が  古い順  |   新しい順
TY320T240320は、sold outしてるのですが (swallowtail7)
2010-05-28 20:53:40
はじめまして。

Interface 2010 6月号の記事
を見て、モジュールを集めだしたのですが、このタッチパネルは、TechToysで売り切れたみたいなのですが、どこか、今から入手はできなでしょうか?よろしく、お願いします。それか、なにか、代替えでいいのをご存じないでしょうか・
返信する
Re; TY320T240320は、sold outしてるのですが (sirius506)
2010-05-29 12:39:39
TY320T240320の代りにTY280T240320があったのですが、こちらも現在は品切れのようですね。

タッチパネルだけであれば、普通はみなさんaitendoのものを使っていらっしゃるのではないでしょうか。例えばhttp://www.aitendo.co.jp/product/2121
ADS7843もaitendoで買うことができます。
返信する
Re: TY320T240320は、sold outしてるのですが (sirius506)
2010-05-29 13:42:10
ちなみに使っているLCDコントローラがちょっと違うので、初期化コードは変更する必要があると思われます。
返信する
ありがとうございます。 (swallowtail7)
2010-05-29 15:01:59
ありがとうございます。申し遅れました。倉重と申します。今、TechToysのJohn さんとメールで問い合わせしていて、With your encouragement, I am working on the next version of TY280T today. だそうです。ただし、unassembled versionで、価格も低く、抑える予定で、US$39.00-49.00ぐらいらしいです。今なら、要望があれば、PCBに反映できるようなので、Johnさんにコンタクトされてみてください。私は、Hiroと言えば、johnさんに通じると思います。今後とも、よろしく、お願い致します。第1級アマチュア無線技士/JR6MUF 倉重 博章
返信する
初期化コード (swallowtail7)
2010-05-29 15:04:11
そうなのですか。。。
それでは、お手上げです。HI
変更方法をどこか、InterfaceのDLページなどで、フォローしていただけると幸いです。
返信する
Re: ありがとうございます。 (sirius506)
2010-05-29 15:10:24
倉重様、

情報ありがとうございます。Johnさんは、いつもレス速いですよね。そうですか、新しいの準備中ですか。楽しみですね。

じつは、お恥ずかしながら、TY280は死蔵したものを持っていたりします。そろそろ使おうかと思っていますが、新しいのも気になるなぁ。
返信する
Re: 初期化コード (sirius506)
2010-05-29 15:14:56
TechToysやaitendoでもサンプルのコードを提供していますので、初期化部分だけを入れ代えれば動くのではないかと思いますよ。

わたしも、そのうちに死蔵しているTY280を使ってみるつもりではいます。
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。