[Armadillo:07675] Re: i2cdev ドライバの使用方法
g-kihara
email@hidden
2011年 11月 1日 (火) 11:36:06 JST
ioctl()が成功しているのでマルチプレクサ等の
初期設定は正常に行われていると思われます。
char buf[3];
buf[0] = 1;
buf[1] = 0;
buf[2] = 0;
fd = open("/dev/i2c-2", O_RDWR);
ioctl(fd, I2C_SLAVE, 0x0C);
write(fd, (const void *)buf, 3);
上記の、提示していただいたコードに、close(fd)が
ないですけれど、現在使用しているコードにはclose(fd)が
ちゃんとかかれていますか?
以上
(2011/10/31 22:04), email@hidden wrote:
> お世話になります。 小林です。
>
> 毎回、回答ありがとうございます。
>
>>> writeがリモートI/Oエラーにならずに成功することもあります。
>>> こちらのハードの問題の可能性もありますので、ハード側を調べてみます。
>> 失敗したり成功したりというのは、ハード側要因の可能性大ですね。
>> 図2.14 I2C接続A/Dコンバーター回路図
>> のように、
>> SCL, SDAラインはちゃんとプルアップされています?
>
> ハード的に33Kでプルアップされていました。
>
> ソフトの設定で気になるところがあります。
>
> (1)現状、「IMX25RM_Rev1.pdf」の「Table 505: Register:
> IOMUXC_SW_PAD_CTL_PAD_GPIO_A」
> を参考にbootloaderの中で以下を設定しています。
>
> static struct iomux_info gpio_pins[] = {
> ・
> ・
> ・
> { MX25_PIN_GPIO_A, MUX_ALT4, MUX_ALT4, 0x0040, 0x0040 }, //
> pin48
> { MX25_PIN_GPIO_B, MUX_ALT4, MUX_ALT4, 0x0040, 0x0040 }, //
> pin49
>
> 上記は以下(デフォルト)から変更しています。
>
> { MX25_PIN_GPIO_A, MUX_ALT0, MUX_ALT0, 0x00e0, 0x00e0 },
> { MX25_PIN_GPIO_B, MUX_ALT0, MUX_ALT0, 0x00e0, 0x00e0 },
>
> 何か問題ありますでしょうか。
>
> (2)また、以下のコードがありますが、i2c3用を作成する必要がありますでしょう
> か。
>
> struct iomux_info i2c1_pins[] = {
> { MX25_PIN_I2C1_CLK, SION(MUX_ALT0), MUX_ALT5, 0x0028, 0x0028 },
> { MX25_PIN_I2C1_DAT, SION(MUX_ALT0), MUX_ALT5, 0x0028, 0x0028 },
> { },
> };
>
> 以上、よろしくお願いいたします。
>
>>
>> (2011/10/31 15:15), email@hidden wrote:
>>> お世話になります。 小林です。
>>>
>>> 回答ありがとうございます。
>>>
>>> 前回ご指摘いただいた、
>>> アドレス0xC0をR/Wビット分シフトの件で状況は進展し、
>>> 波形が出るようになりオシロで確認しているところです。
>>> writeがリモートI/Oエラーにならずに成功することもあります。
>>> こちらのハードの問題の可能性もありますので、ハード側を調べてみます。
>>>
>>>> if(ioctl(fd, I2C_SLAVE, 0x0C)< 0){
>>>> // エラーメッセージ
>>>> }
>>> エラーは発生しませんでした。
>>>
>>>> 使用するI2CデバイスのGNDはArmadilloボードのGNDにつながっています?
>>> つながっているようです。
>>>
>>> また、進展あったらメールさせていただきます。
>>> よろしくお願いいたします。
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
armadillo メーリングリストの案内