[Armadillo:07220] Re: [Armadillo-440] I2C通信で失敗する

下村智範 email@hidden
2011年 5月 16日 (月) 16:57:55 JST


To : 竹之下様

お世話になっております。
下村です。

> (1)、(2)でもエラーが発生しているのですか?
> いただいたログを見た限りでは、エラーは発生していないように読めました。
> どの行に問題がありましたでしょうか?
すいません、確認ミスでした。
何も接続していない状態ではエラーは発生していませんでした。

改めて、独自機器を作成していただいている企業様にご協力いただき
原因を調査いたしました。

独自機器を接続した場合にのみ、Bus Arbitration lostが発生しておりましたので
独自機器の基盤を色々変更していただきました。

独自機器のプルアップ抵抗をなくしたところ、Bus Arbitration lostが発生しなくなったそうです。
独自機器を接続していない時と同じログになりました。

しかしこの状態でも、I2Cの通信はまだ行えておりません。
独自機器のI2Cモジュールがスタートコンディションとスレーブアドレスを
受け取れていないようです。

ポケットロジアナですが、入手できましたので波形を計測してみました。

[ロジアナ_起動時の波形_独自機器未接続.bmp]
⇒ アルマジロ起動時の波形 (独自機器未接続)

[ロジアナ_I2C通信開始時の波形_独自機器接続.bmp]
⇒ アルマジロに独自機器を接続し、I2C通信を開始した時の波形。
     スレーブアドレスは、0x22を設定。

一通りのシーケンスが行われた後、SCLがLowに駆動されているようでした。
Lowに駆動される原因などわかりますでしょうか。
ご教授お願いいたします。

以上、よろしくお願いいたします。


2011年5月12日14:51 Takenoshita Koyo <email@hidden>:
> 竹之下です。
>
>> 独自機器を繋いでいない状態でBus Arbitration lostが発生するということは
>> SDAが常にLowになってしまっているということになりますでしょうか。
> 常に、かどうかはわかりませんね。
> あくまで、マスタがSDAをHighにしたつもりなのに、実際にはSDAがLowになっていた
> ということを示しているだけです。
> 信号線をオシロ等で見てみれば、どういう状況なのか、明らかになると思います。
>
>>> "アルマジロの仕様書のI2Cのサンプルコードと同じシーケンス"
>>> とは、何のことを指していますか?
>> 以前教えていただいた、「Armadillo実践開発ガイド 第3部」にあるI2Cのサンプルです。
> 上記のサンプルは、ユーザーランドで動作するアプリケーションプログラム
> ですが、これの実行結果はいただいていませんよね?
>
>>> "(3)では通信が行えるはず"とありますが、
>>> "独自機器用のドライバもKernelへ追加。"されているので、
>>> それが何か邪魔をしている可能性があります。
>> (1)、(2)でも同様のエラーが発生していることから、独自機器の影響だけとは考え難い状況です。
> (1)、(2)でもエラーが発生しているのですか?
> いただいたログを見た限りでは、エラーは発生していないように読めました。
> どの行に問題がありましたでしょうか?
>
>> また、独自機器用のドライバは、標準で用意されている「mxc_i2c.c」をそのまま利用しています。
> mxc_i2c.cは、I2Cのバスドライバです。Armadillo-400シリーズでI2C機能を使う
> 場合は、全てこのドライバを使うことになります。
> RTCやオーディオコーデックなどは、mxc_i2.cとは別に、それぞれのスレーブデバイス用
> のドライバがあります。(スレーブデバイス用ドライバが、mxc_i2c.cの機能を呼び出す)
>
>> 「mxc_i2c.c」を利用するために、アプリは用意していますが、実装している内容は
>> 「Armadillo実践開発ガイド 第3部」にあるI2Cのサンプルとほぼ同等です。
> 「Armadillo実践開発ガイド 第3部」にあるサンプルは、スレーブデバイス用ドライバの
> 代わりに、ユーザーランドからmxc_i2c.cの機能を呼び出すものです。
>
> (1)、(2)では、独自機器は接続していないとのことなのですが、
> 何を相手に通信しようとしたのでしょうか?
>
>>> 今回の(3)のケースでは、RTCに対する読み出し要求の際に、Bus Arbitration Lost
>>> が発生している(つまり、動いてはいけないスレーブが動いてしまっている)という
>>> 状況です。アドレスが重複していないかについても、再度ご確認ください。
>> ログを見ていただければわかると思いますが、アドレスは重複していません。
> アドレスが重複しているかどうかは、"独自機器"の設定によるものなので、
> ログからは分かりません。"独自機器"のアドレスは何に設定されていますか?
>
>> また、独自機器を繋いでいない状態でもBus Arbitration Lostが発生しております。((1)、(2)のログです)
>> これはどう解釈すればよろしいでしょうか。
> 上と重複しますが、(1)、(2)のログのどこでエラーが発生しているか教えていただけますか?
>
> 以上、よろしくお願いいたします。
>
> --
> Koyo Takenoshita
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: ロジアナ1.zip
型:         application/zip
サイズ:     36381 バイト
説明:       無し
URL:        <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20110516/60fcbc69/attachment.zip>


armadillo メーリングリストの案内