Pro Micro の I2C とプルアップ抵抗値の計算メモ
Pro Micro で I2C
を使った通信を行う設計をしたい場合にプルアップ抵抗の適正値の計算方法を知らないので調べたメモ。
調査前の既知の知識は Let's Split では 4.7kΩ
の抵抗器を使う回路が特に説明も無く登場しているのを知っている程度。
MEGA32U4
のデータシートの 29.6. の表と NXP Semiconductors の I2C
仕様書を読むと次の式が得られた。
但し、
- 配線の長さ:
- 配線の直径:
- 配線の距離あたりの静電容量:
- 配線の静電容量
実際のところは I2C で繋ぐデバイス間でデータの取りこぼしというか化けが起こらずに期待動作を維持できる波形が保たれなければならないので…
- この min, max の間で
- 省エネ的には小さな値なほど有利で
- HIGH = ビット値
1
の波形の立ち上がりには小さな値ほど有利だけど - 小さすぎると LOW = ビット値
0
への波形の下がりが悪くなって不安定になったり、立ち上がりにパルスが出たり
する。ようなので、厳密にはオシロスコープも見ながら機器の通信エラーの発生を観測して実験的に決めるのが良いのでしょうけど、つまるところ…
10kΩ
くらい挿しておけばいいんじゃない(試作なら一応半固定ボリュームにでもしておけば安心)
という歯切れの悪い結論しか机上のこうした簡単な計算では目処をたてられないようです。なるほど、電子のお気持ちわからん😅