[Armadillo:07664] Re: i2cdev ドライバの使用方法
g-kihara
email@hidden
2011年 10月 28日 (金) 18:22:15 JST
> 分かりにくいですが、I2C1が/dev/i2c-0になるので、一つずれてしまいます。。
失礼しました(^^;
以上
(2011/10/28 18:05), Takenoshita Koyo wrote:
> 竹之下です。
>
>> 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
>>
>
>
armadillo メーリングリストの案内