[Armadillo:07663] Re: i2cdev ドライバの使用方法
Takenoshita Koyo
email@hidden
2011年 10月 28日 (金) 18:05:28 JST
竹之下です。
> I2Cの3チャンネルを利用されるんですか?
>
> ならば、
>
> fd = open("/dev/i2c-2", O_RDWR);
>
> ではなく、
>
> fd = open("/dev/i2c-3", O_RDWR);
>
> にしないと。
I2C3(CON11)を使用する場合、/dev/i2c-2で大丈夫です。
分かりにくいですが、I2C1が/dev/i2c-0になるので、一つずれてしまいます。。
(2011年10月28日 17:13), g-kihara wrote:
>> と記載されていますが、I2C3でDAC制御を行う場
>
>
> I2Cの3チャンネルを利用されるんですか?
>
> ならば、
>
> fd = open("/dev/i2c-2", O_RDWR);
>
> ではなく、
>
> fd = open("/dev/i2c-3", O_RDWR);
>
> にしないと。
>
>
> 以上
>
> (2011/10/28 14:53), email@hidden wrote:
>>
>> 小林と申します。
>>
>> I2Cの使用方法について教えてください。
>>
>> 【現象】
>> I2C3をi2cdevドライバーを用いて使用するとwriteでリモートI/Oエラー
>> となり、SCL,SDA共に信号が出力されない。
>>
>> 【構成】
>> 品名 :Armadillo-440
>> 型番 :A4400-U00Z
>> OS :Linux armadillo440-0 2.6.26-at15
>> その他:RTC未搭載
>> I2C3の接続先は、DAC(AD5337)
>>
>> 【設定】
>> ・I2C コンフィギュレーション
>> I2C y (デフォルト)
>> I2C_CHARDEV y (デフォルト)
>> I2C_MXC y (デフォルト)
>> ARMADILLO400_I2C3_CON11 y (デフォルト)
>>
>> ・リアルタイムクロック選択コンフィギュレーション
>> ARMADILLO400_I2C3_CON11_S35390A n (デフォルトから変更)
>>
>> 【詳細】
>> Armadillo 実践開発ガイド
>> 〜組み込みLinux の導入から製品化まで〜
>> 第3 部
>> 上記ドキュメントの「2.2.4. i2cdev ドライバー」を参考に
>> ソフト(アプリケーション)を実装しています。
>> Armadillo440のI2C3(CON11_48,49)にDAC(AD5337)を接続しています。
>> アプリケーション上の手順は以下のとおりです。
>>
>> (1) デバイスファイルのオープン
>>
>> fd = open("/dev/i2c-2", O_RDWR);
>>
>> (2) スレーブデバイスのアドレス設定
>>
>> ioctl(fd, I2C_SLAVE, [DAC(AD5337)のアドレス]);
>>
>> (3) I2C スレーブデバイスへのデータ書込
>>
>> write(fd, [3byteデータ], 3);
>>
>> 上記手順でソフトを動作させると、(3)のwriteでerrnoが121(リモートI/O
>> エラー)となります。
>> コンソール上から直接"/dev/i2c-2"を参照しようとcatコマンドを実行しても
>>
>> cat: Read error: Remote I/O error
>>
>> と出力されます。上記現象からデバイスファイルのアクセスができない
>> 状態になっているようです。
>>
>> 上記ドキュメントには、
>>
>>> i2cdev ドライバーを使用すると、デバイスファイルインターフェースを
>>> 経由して、ユーザーランドで動作するアプリケーションプログラムから
>>> デバイスの制御をおこなうことができます。Armadillo-400 シリーズでは、
>>> 標準のカーネルでi2cdev ドライバーが有効になっているため、特に何も
>>> 設定しなくとも使用可能です。
>>
>> とあり、
>>
>>> I2C スレーブデバイスとのデータ転送をおこなうには、単純にread/write
>>> システムコールを実行するだけです。スタート/ストップコンディションの
>>> 発行、アドレスバイトの生成と送信、アクノリッジの処理などは、全て
>>> ドライバーがおこなってくれるので、アプリケーションプログラム側では
>>> それらを意識する必要はありません。
>>
>> と記載されていますが、I2C3でDAC制御を行う場合、他に何か必要な手順が
>> ありますでしょうか。
>>
>> 以上、よろしくお願いいたします。
>>
>> _______________________________________________
>> armadillo mailing list
>> email@hidden
>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
--
Koyo Takenoshita
armadillo メーリングリストの案内