[Armadillo:07665] Re: i2cdev ドライバの使用方法
g-kihara
email@hidden
2011年 10月 28日 (金) 18:30:01 JST
ioctl(fd, I2C_SLAVE,addr )のaddrですが、
I2Cスレーブデバイスのアドレスを1ビット右シフトしたもの
(=R/Wビットを捨てたアドレス)を指定していますか?
以上
(2011/10/28 18:05), Takenoshita Koyo wrote:
> 竹之下です。
>
>> I2C3でDAC制御を行う場合、他に何か必要な手順が
>> ありますでしょうか。
> I2C3だから、DACだからといって、特に必要となる手順はありません。
>
> オシロスコープやロジックアナライザ等があれば、信号線を確認してみて
> ください。実際、どんな信号が出ているか見てみるのが、一番確実な方法です。
>
> I2Cでよくハマるポイントは、アドレスの指定です。
> 今回、[DAC(AD5337)のアドレス] には何を指定しているでしょうか?
>
> ※切り貼りでも良いので、実際のコードを見せていただく方が適切な回答が得られ
> やすいと思います。
>
> (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 メーリングリストの案内