組込み・ファームウェア
同じ型番のI2Cの温度センサを2つ、同じI2Cの線につなぎたいが、どちらも同じアドレスを持っている。対策として正しいものはどれか。
- Aそのままつなげば、マイコンが自動で区別してくれる
- BSDAとSCLの線を入れ替えてつなぐ
- Cアドレス設定用の端子で片方のアドレスを変えるか、別のI2Cの線に分けてつなぐ
答えと解説を見る
正解:C. アドレス設定用の端子で片方のアドレスを変えるか、別のI2Cの線に分けてつなぐ
I2Cではアドレスで相手を選ぶので、同じアドレスの機器が2つあると、両方が同時に応答して通信が壊れます。多くの部品は、端子を電源やグラウンドにつなぐことでアドレスの一部を変えられるようになっています。変えられない場合は、マイコンの別のI2Cの周辺回路を使うか、I2Cの線を切り替える部品(マルチプレクサ)で分けてつなぎます。
- A. 同じアドレスでは、2つが同時に応答してしまいます。
- B. 線を入れ替えると通信できなくなります。
- C. 正しい。アドレスが重ならないようにする必要があります。