« I2C バスリピーター | トップページ | クロックスキュー »

2020年10月27日 (火)

I2C

ACKが帰らなくなる原因、たくさんありそうです。

クロック誤検出でマスターとスレーブで
ステートのずれが起きて、マスターはACK待ちだけど
スレーブは通信終わっちゃってるつもりのとか。

逆に、マスターはACK待ちだけどスレーブはまだACK
じゃない、と思っているとかですかね。

タイムアウトなしの
クロック同期通信なので、クロックの
解釈にずれが起きると、復帰できないです。

クロックストレッチ回りが、
どうも怪しいような?

ノイズで、ってのならまだいいけど?
回路定数が不味くて、たまにこうなる、
とか有るみたいです。
プルアップの双方向BUSってのもあるので。


アクノリジウインドウのある通信って、
クロックずれが起きた時の
復帰が難しい印象です。
CANも検出まではいいんだけど、
そのあとの動きがね....

| |

« I2C バスリピーター | トップページ | クロックスキュー »

コメント

コメントを書く



(ウェブ上には掲載しません)




« I2C バスリピーター | トップページ | クロックスキュー »