ブログ

Armadillo-840: DMC製タッチパネルコントローラ TSC-44を動かしてみる

at_ito
2016年10月1日 14時57分

DMC製TSC-44をお借りし、動作させてみましたので、その時の作業を紹介します。

1. 環境

  • 製品: Armadillo-840 液晶開発セット
    • Linuxカーネル: v3.4-at18
    • ユーザーランド: v1.41.0
  • タッチパネル: AST-070A080A
  • タッチパネルコントローラ: TSC-44/RSA-E
  • コントローラケーブル(TSC-44とのRS232C接続): TSC-10/RS-SC1

2. 接続手順

  1. Armadillo-840 拡張ボードのCON13の23, 24ピンをUARTとして使用するよう変更
  2. 上記UARTのピンからRS232Cレベル変換アダプタ(型番: OP-SCLVL-10)を接続してRS232Cに変換
  3. RS232Cレベル変換アダプタを改造して、D-Sub9ピンの7, 8ピン(CTS/RTS)から5V電源を供給できるよう改造
    • 5V電源はArmadillo-840 拡張ボードのCON13の1ピンを使用
  4. TSC-10/RS-SC1でTSC-44と接続

3. カーネルコンフィギュレーションの変更

まずは、以下のカーネルコンフィギュレーションを変更し TSC-44のドライバーを有効化してください。

Device Drivers  --->
  Input device support  --->
    [*]   Touchscreens  --->
      <*>   TSC-10/25/40 serial touchscreen support  ← 有効化

4. Armadillo-840のtslib対応

Armadillo-840は標準でtslibを使用できるようセットアップされておりませんので、 以下のURLの手順を実行し、tslibに対応してください。

Armadillo-840でtslibを使う方法 https://users.atmark-techno.com/blog/750/737

またTSC-44のドライバーは標準でtslibに対応しておりませんので、 linux-tsc40-tslib.patchをダウンロードし、Linuxカーネルに適用してください。

5. inputattachのインストール

TSC-44ドライバーを使用して、inputデバイスとして使用するには、 inputattachコマンドを使用します。

以下のURLのDebian packagesからinputattachパッケージをダウンロードし、 inputattachファイルのみ、ユーザーランドに追加してください。

http://ftp.jp.debian.org/debian/pool/main/j/joystick/inputattach_1.4.3-1_armhf.deb

6. TSC-44の有効化

前述の手順をすべて完了した、Linuxカーネルと、ユーザーランドを Armadillo-840に書込み、起動してください。

以下のコマンドを実行します。

[armadillo ~]# inputattach --always --daemon --baud 9600 --tsc /dev/ttySC1

※: ttySC1は、環境によって読み替えてください

7. キャリブレーションの実行

以下のコマンドを実行してください。Aramdillo-840液晶開発セットに 付属するLCDに、キャリブレーション画面が表示されます。

[armadillo ~]# export TSLIB_TSDEVICE=/dev/input/event2
[armadillo ~]# export TSLIB_PLUGINDIR=/usr/lib/ts0
[armadillo ~]# export TSLIB_CALIBFILE=/etc/config/pointercal
[armadillo ~]# export TSLIB_FBDEVICE=/dev/fb1
[armadillo ~]# ts_calibrate

今回はタッチパネルのみ接続しているため、 大体の位置をタッチしてキャリブレーションを完了させてください。

8. 動作確認

以下のコマンドを実行し、タッチパネルで 動作が変更されるか確認してください。

[armadillo ~]# export QT_QPA_EGLFS_DISPLAY=1
[armadillo ~]# export QT_QPA_EGLFS_WIDTH=800
[armadillo ~]# export QT_QPA_EGLFS_HEIGHT=480
[armadillo ~]# qmlscene /usr/share/qt5/photoviewer/photoviewer.qml -plugin tslib:/dev/input/event2