このエントリーをはてなブックマークに追加

Armadillo-640: 機能拡張用インターフェース(CON9)の使用例 ~ I2Cへの割り当て ~

Armadillo-640のCON8およびCON9、CON14は、機能拡張用のインターフェースです。
これらのインターフェースには用途によって様々な機能が利用できるように、一つのピンにi.MX6ULLの複数の機能がマルチプレクスされています。
今回は、I2CをCON9に機能割り当てする方法をご紹介します。

■ 作業項目

    (1) 機能割り当てピンの選択

    (2) armadillo-640.dts変更

    (3) u-boot変更

    (4) ATDEでビルドおよびArmadillo-640 eMMCに書き込み

    (5) 動作確認

(1) 機能割り当てピンの選択

armadillo-640_multiplex-v1.0.pdfは、Armadillo-640 マルチプレクス表(https://armadillo.atmark-techno.com/files/downloads/armadillo-640/document/armadillo-640_multiplex-v1.0.0.zip)から、CON9部分を抜粋したものです。
この表からここでは、I2Cを以下のピンに割り当てることにします。
● I2C2

● I2C3

(2) armadillo-640.dts変更

(1)で選択したピンにI2CおよびUARTを割り当てるために、arch/arm/boot/dts/armadillo-640.dtsに以下の項目を追加してください。

    pinctrl_i2c2: i2c2grp {
        fsl,pins= <
            MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4000007f
            MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4000007f
        >;
    }
    pinctrl_i2c3: i2c3grp {
        fsl,pins= <
            MX6UL_PAD_UART1_RX_DATA__I2C3_SDA 0x4000007f
            MX6UL_PAD_UART1_TX_DATA__I2C3_SCL 0x4000007f
        >;
    };

(3) u-boot変更

 Armadillo-640はコンソール出力用にデフォルトでCON9 1/3/5/7/9ピンを使用しています。(2)でCON9 3/5をI2C3として割り当てたため、USBシリアル変換アダプタは使えません。コンソール出力を利用するために、CON3/4にコンソール出力されるように以下の手順でu-bootを変更します。
u-bootの変更方法は、Armadillo-640: コンソール出力先をCON9から別のCONに変更する方法を参照してください。

(4) ATDEでビルドおよびArmadillo-640 eMMCに書き込み

(2)と(3)で用意したarmadillo-640.dtsとu-bootをATDEでビルドしてください。

ビルド手順は、「Armadillo-640 製品マニュアル」の「第10章 ビルド手順」および「第17章 Howto」を参考にしてください。
また、作成されたイメージファイルの書き換えは、「Armadillo-640 製品マニュアル」の「第11章 イメージファイルの書き換え方法 -> 11.2. 特定のイメージファイルだけを書き換える」を参考にしてください。

(5) 動作確認

今回は動作確認に、「アットマークテクノ ユーザーズサイト」の「Armadillo-X1: I2C接続の温度センサーを接続して温度を計測する(https://users.atmark-techno.com/blog/53/2368)」で紹介されている、I2C接続温度センサー(ADT7410)を利用しました。ブレッドボード上にADT7410と最低限必要な部品を配置して、ADT7410をArmadillo-640のCON9に接続しました。

I2C接続温度センサー(ADT7410)実験基板 circuit

温度計測した結果を以下に示します。

    root@armadillo:~/i2c-tsens# ./tsens_adt7410 -d /dev/i2c-1
    26.75
    root@armadillo:~/i2c-tsens# ./tsens_adt7410 -d /dev/i2c-1
    30.56
    root@armadillo:~/i2c-tsens# ./tsens_adt7410 -d /dev/i2c-1
    27.06
    root@armadillo:~/i2c-tsens#

i2c-2でも同様の結果が得られます。

製品: 

  • Armadillo-640

タグ: 

  • Armadillo-640
  • TIPS