第12章 Armadillo-400シリーズ LCD拡張ボード: エラッタ

12.1. 製品リビジョンA

Armadillo-400シリーズ LCD拡張ボード製品リビジョンAに該当する既知のエラッタです。エラッタの詳細については各項目を参照してください。

12.1.1. A400-LCD-Erratum #1: I2Cバスが使用不可能になる

12.1.1.1. 内容

オーディオコーデックとリアルタイムクロックの同時使用時に、FFC(Flexible Flat Cable)のクロストークノイズが原因でI2Cバスのアービトレーションロストが発生する可能性があります。この現象が発生した場合は、以降再起動を行うまでI2Cバスを使用した通信を行うことができなくなります。

12.1.1.2. 状態

製品リビジョンBにて修正済みです。このエラッタの回避方法については「対応」を参照してください。

12.1.1.3. 対応

Armadillo-400シリーズ LCD拡張ボード 製品リビジョンAを参考に拡張ボードを設計する場合には、 クロストークノイズの対応として次の対策を行うことを推奨します。

対象内容
I2C3_SCL - +3.3V間プルアップ抵抗(R18)10kΩを1kΩに変更
I2C3_SDA - +3.3V間プルアップ抵抗(R20)10kΩを1kΩに変更
I2C3_SCL - GND間220pFのコンデンサを追加
クロストークノイズ対策推奨回路

図12.1 クロストークノイズ対策推奨回路


12.1.1.4. 備考

linux-2.6.26-at10(Linuxカーネルイメージファイル: linux-a400-1.03.bin.gz)以降では、I2Cバスのアービトレーションロストを抑制するためにRTCドライバを変更しています。RTCドライバの変更は根本的な対策ではなく、クロストークノイズが原因でI2Cバスのデータ読み書きに失敗する可能性があります。

12.1.2. A400-LCD-Erratum #2: i.MX257のAD入力端子が故障する

12.1.2.1. 内容

タッチスクリーン信号に入力保護回路が無いため、ESD(ElectroStatic Discharge)が印加された場合にタッチスクリーンの入力に使用しているi.MX257のAD入力端子が故障する可能性があります。

12.1.2.2. 状態

製品リビジョンBにて修正済みです。このエラッタの回避方法については「対応」を参照してください。

12.1.2.3. 対応

Armadillo-400シリーズ LCD拡張ボード 製品リビジョンAを参考に拡張ボードを設計する場合には、 ESDが印加された場合の対応として次の対策を行うことを推奨します。この対策により、タッチスクリーンの入力に使用しているi.MX257のAD入力端子が故障する可能性を低減することができます。

対象内容
  • TOUCH_XP - CON2(37番ピン)間

  • TOUCH_XN - CON2(39番ピン)間

  • TOUCH_YP - CON2(38番ピン)間

  • TOUCH_YN - CON2(40番ピン)間

  • ダンピング抵抗(33Ω)を追加

  • 外付け素子(ダイオード等)による入力保護回路を追加

ESD対策推奨回路

図12.2 ESD対策推奨回路


12.1.2.4. 備考

ダンピング抵抗の挿入に伴い、タッチスクリーンの入力に使用しているi.MX257のAD入力端子に入力される値が変化します。そのため、タッチスクリーンのキャリブレーション(位置補正)を行う必要があります。

[ティップ]

atmark-dist-20100916(ユーザランドイメージファイル: romfs-a440-1.03.img.gz)以降では、タッチスクリーンユーティリティー(tslib-utils)が追加され、ts_calibrateによりタッチスクリーンのキャリブレーションを行うことが可能です。以下の手順を参照してキャリブレーションを行ってください。

  1. functesterが起動している場合、終了させます。

    [armadillo ~]# killall functester
  2. ts_calibrateを実行し、キャリブレーションを開始します。TSLIB_TSDEVICEには、タッチスクリーンのデバイスファイルを指定します。

    [armadillo ~]# TSLIB_TSDEVICE=/dev/input/event1 ts_calibrate
  3. 以下のような画面が表示されます。表示されている十字カーソルの中央を押下してください。同様の操作を5回行います。以上でキャリブレーションは完了です。

  4. キャリブレーションの結果を次回起動時にも有効にするためには、以下のコマンドを入力してください。

    [armadillo ~]# flatfsd -s

12.2. 製品リビジョンB

Armadillo-400シリーズ LCD拡張ボード製品リビジョンBに該当する既知のエラッタです。エラッタの詳細については各項目を参照してください。

12.2.1. A400-LCD-Erratum #3: linux-2.6.26-at13以前のカーネルと組み合わせて使用した場合スリープできない

12.2.1.1. 内容

製品リビジョンBでは、「A400-LCD-Erratum #2: i.MX257のAD入力端子が故障する」に対応するため、タッチスクリーン入力にESD保護ダイオードが追加され、+3.3V_IOにプルアップされています。スリープ状態で+3.3V_IOが電源OFFしてしまうと、タッチセンサの電荷がダイオード経由で抜けてしまい、タッチスクリーンが押された時と同じ信号レベルになるため、スリープ直後にタッチスクリーン入力による割り込みが発生しすぐにウェイクアップしてしまいます。

12.2.1.2. 状態

linux-2.6.26-at14にて、対策済みです。このエラッタの回避方法については「対応」を参照してください。

12.2.1.3. 対応

タッチスクリーン入力によるウェイクアップを無効にするか、スリープ時に+3.3V_IOをOFFにしないことで、正常にスリープできます。linux-2.6.26-at14以降では、標準でスリープ時に+3.3V_IOがOFFにならないよう挙動が変更されています。LCD 拡張ボード製品リビジョンBは、linux-2.6.26-at14以降と組み合わせてご使用ください。

12.2.2. A400-LCD-Erratum #4: タッチスクリーンの位置ずれが生じる

12.2.2.1. 内容

製品リビジョンBでは、「A400-LCD-Erratum #2: i.MX257のAD入力端子が故障する」に対応するため、タッチスクリーン入力にESD保護ダイオードが追加されています。この変更によりタッチスクリーンの入力に使用しているi.MX257のAD入力端子に入力される値が変化するため、タッチスクリーンの位置ずれが生じます。

12.2.2.2. 状態

製品リビジョンBと共に出荷されているArmadillo-440では、タッチスクリーンの補正値を出荷時にconfig領域に書き込むことで、対応済みです。

config領域を書き換えた場合には、位置ずれが発生します。位置ずれが発生した場合の対応方法は、「対応」を参照してください。

12.2.2.3. 対応

タッチスクリーンの位置ずれは、タッチスクリーンユーティリティ(tslib-utils)によって補正することができます。tslib-utilsによる補正方法は、「A400-LCD-Erratum #2: i.MX257のAD入力端子が故障する」「備考」を参照してください。

12.2.2.4. 備考

タッチスクリーンの入力は、タッチスクリーンから、Linuxのデバイスドライバを通り、タッチスクリーン用ライブラリ(tslib)経由で、アプリケーションに伝わります。

Armadillo-440用のカーネルは、LCD拡張ボードの製品リビジョンAで正しい位置を示すように調整されています。しかし製品リビジョンBでの修正により、同じタッチスクリーンの位置でも、カーネルがタッチスクリーンから読み取る値が変化しました。Atmark Distで作成した標準ユーザーランドの場合、tslibのレイヤーでこの変化を補正しています。補正値は/etc/config/pointercalに格納されており、このファイルはフラッシュメモリのconfig領域に保存されています。

LCD拡張ボード 製品リビジョンBと共に出荷されるArmadillo-440では、出荷時点で製品リビジョンB用の/etc/config/pointercalファイルがconfig領域に書き込まれています。config領域を書き換えて/etc/config/pointercalの内容が変更された場合には、補正できないため位置ずれが発生します。