60歳からの電子工作ノート

生涯学習として取り組んでいます。

I2C通信とSPI通信(タッチコントローラと簡易SPI通信)

タッチコントローラ(XPT2046)と簡易SPI通信を行いました。タッチ位置でのデータ変化を確認しました。

以下の資料を参考にしています。資料1*1、資料2*2、資料3*3、資料4*4

 

 

タッチシステム

 

図1. タッチシステム

図2. 電圧を印加する端子と読み出し端子

 使用しているタッチパネルは4線の抵抗式(感圧式) です。このタッチパネルはLCDガラス上に透明の導電性抵抗膜がコーティングされていて、隙間を空けてフィルムがついています。フィルムの下側にもコーティングされています。また透明導電膜から4本の線が引き出されています。フィルムをタッチすると、フィルム裏面の透明導電膜とLCD側の透明導電膜が導通して電流が流れます。

X位置を検出する際には、X+(XP)とX-(XN)に電圧を印加し、X位置に対応した電圧をY+(YP)から測定します。Y位置を検出する際には、Y+(YP)とY-(YN)に電圧を印加し、Y位置に対応した電圧をX+(XP)から測定します。

 簡易SPI通信

マイコンとの接続

 シリアルコミュニケーションインターフェイス(SCI)のSCI5 を簡易SPIとして使用します。タッチコントローラはコマンドを受信すると、A/D変換を開始し、結果を12ビットのA/D変換データとして送信します。

マイコンはX軸測定コマンドを送信後、受信用のクロックを生成するため、ダミーデータを2バイト送信します。ダミーデータを2バイト送信することで、A/D変換結果を受信できます。Y軸の測定もY軸測定コマンドを送信後、ダミーデータを2バイト送信してA/D変換結果を受信します。

図3. 簡易SPI通信とタイミング (資料3の図9)

通信仕様

簡易SPIの初期設定や送受信動作は、SCIの「クロック同期式モード」と同じです。データ長は8ビットのMSBファーストとなります。SPIモードレジスタ(SPMR)のCKPH=1(クロック遅れあり), CKPOL=0(クロック極性反転なし)とします。

図4. 簡易SPI通信のクロックと送受信タイミング(資料1の図28.58)

フロー

図5. 簡易SPI通信フロー

実験

X軸とY軸の測定コマンド(制御バイト)を送信して、A/D変換データを受信します。

図6. タッチコントローラの制御バイト(資料3の図3と図4より作成)

タッチ無しの状態と、パネルの各点(A,B,C,D)をタッチした時のA/D変換データです。

図7. タッチしない状態と各点(A,B,C,D)をタッチした時のA/D変換データ

図8. タッチしない状態の送受信データ

図9. A点タッチ、B点タッチ時の送受信データ

図10. C点タッチ、D点タッチ時の送受信データ

ファイル一覧

図11. ファイル一覧

(ルネサス提供ファイルとは、CS+の新規プロジェクトで作成されるファイルです。)

使用する割り込み処理:

図12. 割り込み処理

ルネサス提供ファイルの修正(割り込み処理のコメント化)

本プログラムで使用する割り込み処理は、sci_spi.cで記述するようにしました。

ルネサス提供ファイルの intprg.cとvect.hで記載されている、同名の割り込みルーチンをコメント化します。

図13. 割り込み処理のコメント化

GitHub登録場所: https://github.com/vABCWork/test_touch

 

初めての部品不良

 今年の6月頃にAliExpress からXPT2046 を購入しました。10個で約300円でした。

テスト基板のはんだ付け後、基板のVccとGND間を確認したところショートしていました。FPCコネクタ(40ピン,0.5mmピッチ)が原因だと思い、確認しましたがブリッジはありません。チップコンデンサとチップ抵抗を取り外しましたが、まだショートしています。XPT2046を取り外すと、ショートしなくなりました。「手はんだ」が原因とも考えられるので、購入した他のXPT2046を調べました。全てではありませんが、VCCとGND他がショートしている部品が1個ありました。

XPT2046(1個30円、1個200円、3.5インチLCD上)を比較した写真です。

図14. XPT2046の不良品と良品

 

*1:資料1「RX23E-Aグループ ユーザーズマニュアル ハードウェア編 ( R01UH0801JJ0120 Rev.1.20)」

*2:資料2「TIの4線式TSCを使用して8線抵抗膜方式のタッチ・スクリーンを制御する方法」 www.ti.com/product/ja-jp/TSC2046

*3:資料3「低電圧I/O タッチスクリーン・コントローラ」www.ti.com/product/ja-jp/TSC2046 

*4:資料4 「抵抗膜型タッチパネルの動作原理」cc.cqpub.co.jp/system/contents/3246/