● 実験テーマ79

「UL024TFの、タッチパネルを試す簡単な実験」
 (UL024TF液晶のTPはモジュールに接続されてないとaitendoHPには書いてあるが、実は使えるとの情報があるので試してみた。)

以下、この実験の顛末記です。

■ 2016.6.21
  ・タッチパネルを使ったオシロの実験は、だいぶ前にテーマ33で公開済である。
   ただこの時の、液晶は、aitendo「DT280T03」で、タッチ制御にはモジュールに内蔵の、
   タッチコントローラICを使った。

   最近常用している同じaitendoの、UL024TFに付いているタッチパネルを動かしてみたくなった。
   これには、タッチコントロールICは搭載されてないので、ダイレクトにシーケンス制御して読込む
   方法にしないと駄目だが・・
   また、aitendoの当該製品のWebページには,
   「※4線抵抗膜型タッチスクリーンが付いているが、接続が行われていないので使用できません」
   と説明書きがあり、暫くは動かすのは無理なのか・・と思っていました。

   ところがWeb検索をしている内に、動かされている方が、3人ほどいることを知りました。
   gooプログ「王様ºの耳はロバの耳」さんの記事の中で、チェコの方が動かされていて
   チェコ人のプログのソースコメントに重要な記述(以下)を発見というよな事が書かれていた。

   #define YP A1 // must be an analog pin, use "An" notation!
   #define XM A2 // must be an analog pin, use "An" notation!
   #define YM 7 // can be a digital pin
   #define XP 6 // can be a digital pin

   ※ なんとLCDのコントロールと同じポートを使いまわしているようです。

   もう一方、「HAPI_TechSolutio」さんの、タッチ式MP3プレーヤの紹介の中でアップされている
   回路図.pdfファイルで、はっきりとその共通ポートがどこなのか確認できました。
   以下が共通接続になっています。
   LCD_WR/Touch_XR(X-)→ デジタル出力/アナログ(ADCチャンネル)入力
   LCD_RS/Touch_YU(Y+)→ デジタル出力/アナログ(ADCチャンネル)入力
   LCD_D7/Touch_YD(Y-)→ デジタル出力/デジタル入力(印加電圧入力側)
   LCD_D6/Touch_XL(X+)→ デジタル出力/デジタル入力(印加電圧入力側)

   ※ このようになっているので、液晶をアクセスしてないタイミングで、タッチ用のポート設定に
     切替え、読込み終了後には再び、液晶用のポート設定に戻してやるような制御が必要になります。
 
   


■ 2016.6.22
  ・実験ハードをどうするか?
   今回もトレーニング基板を使えない。
   無理やり出来るが、改造箇所が多過ぎるのでやめる。
   テーマ77で作ったUL024TF接続変換ユニットを流用し、その裏に、秋月のスルーホールの
   ユニバーサル基板を使って、MPU部を組み、それとスタックして使うことにした。
   FFTアナライザと同じ構造である。
   回路図は簡単なので作成済み。

  ・先にソフトを考えることにする。
   とりあえずは、UL024TFの、タッチパネルが本当に使えるか確認するための実験なので、簡単な
   テストプログラムにする。
   これを何に応用するかは未定。たぶんオシロ以外の用途になる見込み??

   タッチ制御ICを使わないでダイレクトに読込む方法は、タッチオシロの時にも参考にした、
   後閑さんHPの、「dsPIC33Fタッチオシロ」が参考になる。
   液晶が異なるし、回路も異なるので、適時追加修正が必要にはなるが。

   テストプログラムは次の様にした。
    @ 電源投入すると、初期メッセージ「Touch Test」を表示。
       液晶下段に、キャラクタによる緑 角ボタン:SW1と、黄色 角ボタン:SW2及び、
       キャラクタによる赤丸LEDを表示。
    A 画面上のどこかをタッチすると、タッチ点の座標(x.y ADC変換値)を表示。
    B SW1をタッチすると、キャラクタによるLEDが赤くなり点灯。(同時にデバッグLED点灯)
       SW2をタッチすると、キャラクタによるLEDが黒くなり消灯。(同時にデバッグLED消灯)

   また、液晶ライブラリは、後閑さん作成のものを基にしているので、
   一部、制御ポート(WR, RS)の割付けを変更する必要がある。(ヘッダ・ファイルの変更)


■ 2016.6.24
  ・下図(今回のタッチ接続での等価回路)を眺めながら、ポート設定切替え制御のプログラム
   を書いて行った。
   この部分が面倒なだけで、簡単なテスト内容にしたので、割とすんなりソースを書き上げ
   HEXまで準備完了!!


■ 2016.6.30
  ・テスト基板の実装が上がった。
   HEX書込みまでOK。
   液晶を実装して、稼働時の電源電圧確認を行う。
    VCC= 3.30V
    (今回は、タッチへの印加電圧を、ポート出力の、Hi電圧(デジタル出力)としている為、
    特にAVCCは設けませんでした。また、Vrefも、VCCからとし、AGNDは、Vrefのリターン側のみとしました。
    AGNDと、DGNDは接続されています。)
    +5V= 5.20V

  ・大方、動いているようである。
   X, Y座標表示も、タッチボタン操作の動作も、良さそうである。
   これで終わるのは、何とも味気ないので、変換される、AD値が正しいのか否かを、実機でタイミング等
   観測して検証してみることにした。
   但し、あまり深入りはしない予定。


■ 2016.7.1
  ・以下にその結果を示した。
   やってみて初めて判ったことは、タッチしてない状態の、AD入力のレベルが、X, Yで同じにはならず
   X-入力側は、0Vで、Y+側は、3.24Vと真逆になる点である。(極性に関係あるのだろうか?)
   なので、タッチするとX-入力(ADCX)は、プラス側に変化し、Y+入力(ADCY)は、マイナス側に変化します。
   むろんADCは、グランドを基点とした電圧を変換します。

   タッチ処理をT1割込みで行っているので、その頭に、LEDポートを
   使って、割込み毎(50mS)に負パルスを出力させ、これを同期パルスとして利用し、タッチ時のADC入力
   を観測しました。

   最初に入力されているのが、ADCX側で、次に入力されているのが、ADCY側です。
   オシロの他に、ADCX側の入力チャージが終わった時点でプログラムを停止し、テスターにて静的な入力
   電圧も測定しました。(Y側も同様)
   オシロで見たレベルとほぼ一致しているのが解ると思います。   

   さて変換値ですが、分解能:10bit、Vref= 3.3Vですので、理論的には、
   AD変換値= 1024 x (入力電圧) / 3.3)になるはずです。
   実測値を当てはめて計算すると、だいたいですが合っているようです。
  


<最終回路図>
 ・こちらから、どうぞ→ 「UL024TFタッチパネル実験回路」


<最終ソース及び、ヘッダファイル>
 ・こちらから、どうぞ→ 「UL024TF_Touch_Test.c」

                  colorlcd_libdsPICVH.c
                  colorlcd_libdsPICVH.h
                  ASCII12dot.h


← 実験テーマ1に戻る   TOP PAGEに戻る   実験テーマ80へ →