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

下村智範 email@hidden
2011年 4月 26日 (火) 15:27:28 JST


To : 竹之下様

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

> Android対応カーネルではなく、標準カーネルと標準ユーザーランドで動作させてみると、
> どうなるでしょうか?
手元に、付属DVDに格納されていたDebian GNU/Linuxがありましたので
起動してみました。
起動ログを添付いたします。
やはり、「Could not grab Bus ownership」が発生しています。
I2Cコアなどのログが出力するようになっていないため、Androidに比べて
情報は少ないですが、「Could not grab Bus ownership」というメッセージは
出力されています。

> 標準のカーネルイメージ: http://armadillo.atmark-techno.com/files/downloads/armadillo-440/image/linux-a400-1.07.bin.gz
> 標準のユーザーランド: http://armadillo.atmark-techno.com/files/downloads/armadillo-440/image/romfs-a440-1.05.img.gz
で見たほうが良いですか?

>>>> 上記のように修正しても、I2C-1 スレーブアドレス = 0x30 が一度セットされて
>>>> ダミーコールされているようでした。
> dmesgのどこを見て、そう判断されたのでしょうか?
"Boot_dmesg.log"というファイルを前回添付させていただきました。
このログの[Line:236] 〜 [Line:238]で確認できます。
addr 0x1aとありますので、スレーブアドレス=0x30のアドレスが一度セットされて
いると解釈いたしました。
(スレーブアドレスをシフト操作しているため、ログで出力された値は半分の値に
なっているようです)

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


2011年4月26日14:48 Takenoshita Koyo <email@hidden>:
> 竹之下です。
>
> 下村智範 さんは書きました:
>> お世話になっております。
>> 下村です。
>>
>>> - 起動ログで「Could not grab Bus ownership」が発生していますか?(RTCドライバでエラーが発生している)
>>> - アプリで通信しようとしたときに、「Could not grab Bus ownership」が発生していますか?
>> 両方で発生しております。
>> 独自機器を接続していてもいなくても発生しております。
> 何か、根本的な所で何か問題があるようですね。
> Android対応カーネルではなく、標準カーネルと標準ユーザーランドで動作させてみると、
> どうなるでしょうか?
>
>>
>>>> 上記のように修正しても、I2C-1 スレーブアドレス = 0x30 が一度セットされて
>>>> ダミーコールされているようでした。
>>> これは、どこで確認した結果でしょうか?
>> 起動時に出力されたと思われるログ(dmesg)で確認しました。
> dmesgのどこを見て、そう判断されたのでしょうか?
>
>>
>>> - アプリでアドレス0x30を指定した
>>> - SDA/SCLをプロトコルアナライザ等で確認したところ、アドレス部分が0x30になっていた
>>> - I2Cスレーブデバイスのレジスタを確認したところ、0x30になっていた
>> こちらは全部確認しておりません。
>>
>> 起動時のダミークロック出力処理、およびRTCドライバのはずし方をご教授いただきましたので
>> ひとつずつ適用したKernelを作成し、試してみました。
>> 結果、初期化処理が若干変わったようですが、すべてのdmesgログにおいて
>> 「Could not grab Bus ownership」が発生していることを確認いたしました。
>> 独自機器も接続していない状態で、「Could not grab Bus ownership」が発生しているということは
>> どういうことなのでしょうか?
>> RTCドライバかダミークロック処理をはずせば、起動時は「Could not grab Bus ownership」が
>> 発生しないのではないかと期待しておりましたが、ちょっと予想外でした。
>> ログを保存しておりますので、添付させていただきます。
>>
>>>> おそらくですが、この仕様書に記載されているサンプルソースでも
>>>> バス競合が発生すると思います。
>>> こちらで確認している限りでは、問題なく動いています。
>> 動作しているサンプルソースがございましたら、ご提供いただけませんでしょうか。
>> 参考にさせていいただきたいと思います。
> Armadillo実践開発ガイド 第3部 に記載されているもののことです。
> http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-3_ja-2.0.1/ch02.html#__2
>
>>
>> まったく原因がわかりません・・・。
> まずは、問題の分割を行うと良いと思います。
>
> 標準のハードウェア構成: Armadillo-440 + Armadillo-400シリーズLCD拡張ボード のみ(独自機器は接続しない)
> 標準のカーネルイメージ: http://armadillo.atmark-techno.com/files/downloads/armadillo-440/image/linux-a400-1.07.bin.gz
> 標準のユーザーランド: http://armadillo.atmark-techno.com/files/downloads/armadillo-440/image/romfs-a440-1.05.img.gz
> で、「Could not grab Bus ownership」が発生するかどうかを確認してください。
>
> それでも発生するようでしたら、ハード的に壊れている可能性があります。
>
> 発生しないようでしたら、
> 1. バスクロックを 40k から 400k に変更してみる
> 2. 外部機器を接続してみる
> 3. 外部機器と通信してみる
> 4. カーネルをAndroid対応のものにしてみる
> 5. 外部機器と通信してみる
> 6. ユーザーランドをAndroidにしてみる
> 7. 外部機器と通信してみる
> というように、ひとつずつ要因を変化させていって、どこでエラーが発生するようになるのか、確認してみてください。
>
>> 独自機器を作成していただいた企業様にも協力をお願いしておりますが
>> なかなか原因特定にいたりません。
>> 些細な情報でも不確かな情報でも構いません。
>> 何かございましたら、ご教授お願いいたします。
>>
>> 以上、よろしくお願いいたします。
>>
>
> --
> Koyo Takenoshita
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: debian_boot_console_dmesg.log
型:         application/octet-stream
サイズ:     16586 バイト
説明:       無し
URL:        <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20110426/fe505fd4/attachment.obj>


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