マイコン工作実験日記

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

タッチパネルを使うには?

2008-04-16 23:44:50 | LCD
TechToysから購入したLCDボードにはタッチパネルも付いています。このLCDボードには、TIのADS7846というタッチパネルコントローラが載っており、マイコンとSPI接続できるようになっています。しかしながら、ディフォルトではタッチパネルはADS7846にはつながっておらず、ADS7846を有効にするためにはボード上の4か所のジャンパをハンダブリッジする必要があります。ディフォルトではXL, YU, XR, YDという4線式タッチパネルからの信号が、そのままボード上のピンソケットに出ています。

すなわち、このボードのタッチパネルを使うには次の2つの方法があることになります。
  1. ボード上のコントローラADS7846を使う方法。この場合には、SPIでX方向またはY方向の電圧を測定するコマンドを送信すると、その測定結果を受信することができます。
  2. マイコンのGPIOを使いX方向端子間に電圧をかけ、Y方向端子間にあらわれた電圧をマイコンのADCで測定する方法。XとYを入れ替えて、逆側の電圧も測定する。Chanさんの説明が参考になりました。
MicroChipのグラフィックライブラリには、2の方法をサポートするためのコードが含まれているらしく、そのためかディフォルトではADS7846は無効になっているようです。

ADS7846のデータシートを読んでみると、SPIで接続できるタッチパネル用の12ビット(または8bit)ADCだということがわかりました。ポピュラーなチップらしくLinuxのドライバのソースでもサポートされているようです 。SPI信号以外に/PENIRQという信号もあり、ペンでタッチされた時に割り込みを生成することもできるようです。

せっかくコントローラが載っていることですし、SPIのピンも空けてあるので、1番のコントローラを使う方式を採用することにします。コントローラを使わない場合には、タッチされたことを検出するために、マイコンは常時タッチパネルにかかる電圧を測定していなければなりません。コントローラはこの監視作業をやってくれて、タッチされたら/PENIRQ信号を出してくれますので、これを受けて電圧測定をおこなえば良いので、CPUの処理を軽減することができます。



最新の画像もっと見る

コメントを投稿

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