I2C
ACKが帰らなくなる原因、たくさんありそうです。
クロック誤検出でマスターとスレーブで
ステートのずれが起きて、マスターはACK待ちだけど
スレーブは通信終わっちゃってるつもりのとか。
逆に、マスターはACK待ちだけどスレーブはまだACK
じゃない、と思っているとかですかね。
タイムアウトなしの
クロック同期通信なので、クロックの
解釈にずれが起きると、復帰できないです。
クロックストレッチ回りが、
どうも怪しいような?
ノイズで、ってのならまだいいけど?
回路定数が不味くて、たまにこうなる、
とか有るみたいです。
プルアップの双方向BUSってのもあるので。
アクノリジウインドウのある通信って、
クロックずれが起きた時の
復帰が難しい印象です。
CANも検出まではいいんだけど、
そのあとの動きがね....
| 固定リンク | 0
コメント