[] ArduinoでI2Cする際のプルアップ抵抗について

TJ3BをMasterとし、SlaveのArduinoを2台I2Cで接続した際に、I2Cの通信不安定になり、いろいろ調べた結果、Arduino側の作りにマズい点があった。参考になったのは次のサイト


Arduioでの作例ではI2Cのプルアップ抵抗について特に言及されずに外部抵抗を使っているものがあるが、公式のWireライブラリを用いるとArduinoの内部でプルアップが行われるため、外部にプルアップ抵抗を別途設ける必要がない。

内部のプルアップ抵抗を使う場合、Atmega328PであればデータシートからSDA、 SCLがプルアップ抵抗Rpuの20KΩ(Min)〜50KΩ(Max)になるそうだが、プルアップ抵抗は適切な抵抗値を設定する必要がある。

プルアップ抵抗の決め方についは以下を参考に。


次の様な修正で、動作が安定した。

コメント
0件
トラックバック
0件
ブックマーク
0 users
ohguma
ohguma