[Armadillo:07679] Re: i2cdev ドライバの使用方法
g-kihara
email@hidden
2011年 11月 1日 (火) 14:59:01 JST
>>>> SCL, SDAラインはちゃんとプルアップされています?
>>> ハード的に33Kでプルアップされていました。
3.3KΩではなく、33KΩですか?
かなり大きいですね。
http://www.classic.nxp.com/acrobat_download2/literature/9398/39340011_jp.pdf
の仕様に従った値ですか?
これだけ大きいと絶縁状態になっているのでは?(^^;
33KΩが適切な値かどうか、もう一度確認してみてはどうでしょう?
以上
(2011/11/01 13:09), email@hidden wrote:
> お世話になります。小林です。
> 回答ありがとうございます。
>
>> 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)が
>> ちゃんとかかれていますか?
>
> close(fd)は正常時、異常時共に実行しています。
> 提示コードに省略してしまい申し訳ありません。
>
>
>>>>> 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 },
>>> { },
>>> };
>>>
>>> 以上、よろしくお願いいたします。
>>>
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
armadillo メーリングリストの案内