I2Cプルアップ抵抗計算機
バス容量と速度モードに基づいて最適なI2Cプルアップ抵抗値を計算します。Standard、Fast、Fast Mode Plusをサポート。
I2Cプルアップ抵抗器バス通信組み込み
計算機
pF
Total SDA/SCL line capacitance
V
Vcc Vcc
│ │
┌┴┐ ┌┴┐
│ │ Rp │ │ Rp
└┬┘ └┬┘
│ │
SDA ─┼─────────────┼─ SCL
│ │
┌──┴──┐ ┌──┴──┐
│ │ │ │
│ IC1 │ │ IC2 │
│ │ │ │
└─────┘ └─────┘この計算機の使い方
このI2Cプルアップ抵抗計算機は、バス容量、電源電圧、および速度モード要件に基づいて、 I2Cバスに最適なプルアップ抵抗値を見つけるのに役立ちます。
- バス容量を見積もる — すべてのデバイス入力容量と配線容量の合計
- 電源電圧を入力 — 通常3.3Vまたは5V
- 速度モードを選択 — スタンダード(100kHz)、ファスト(400kHz)、またはファストモードプラス(1MHz)
- 計算をクリック — 有効な抵抗範囲と推奨値を取得
I2Cプルアップの公式
Rmax = tr / (0.8473 × Cbus)
Rmin = (Vcc - Vol) / Iol
ここで tr = 最大立ち上がり時間、Cbus = 総容量
制約の理解
- 最大抵抗: 立ち上がり時間要件により制限。容量が大きいほど、タイミング仕様を満たすために低い抵抗が必要
- 最小抵抗: 出力シンク電流(Iol)により制限。デバイスがラインをLowに引く能力を超えてはいけません
- 0.8473係数: 0.7×Vcc(ロジックHIGHしきい値)に達するまでのRC立ち上がり時間から導出
I2C速度モード
| モード | 最大周波数 | 最大立ち上がり時間 | 最大容量 | シンク電流 |
|---|---|---|---|---|
| スタンダードモード | 100 kHz | 1000 ns | 400 pF | 3 mA |
| ファストモード | 400 kHz | 300 ns | 400 pF | 3 mA |
| ファストモードプラス | 1 MHz | 120 ns | 550 pF | 20 mA |
| ハイスピード | 3.4 MHz | — | 400 pF | 特殊 |
注意: ハイスピードモードは抵抗プルアップではなく、アクティブプルアップ(電流源)を必要とします。
バス容量の見積もり
容量の発生源
- デバイス入力容量: デバイスあたり3-10 pF(データシートを確認)
- PCBトレース: 一般的なトレース幅で約1-2 pF/cm
- コネクタ: コネクタあたり2-5 pF
- ワイヤ/ケーブル: ケーブルタイプにより30-100 pF/メートル
計算例
10cmのPCB上に3つのデバイス:
- 3デバイス × 10 pF = 30 pF
- 10 cmトレース × 1.5 pF/cm = 15 pF
- 合計: 約45 pF(20%マージンを追加 = 54 pF)
よくある質問
SDAとSCLで異なるプルアップ値を使用できますか?
通常、両方のラインに同じ値を使用します。ただし、一方のラインの容量が著しく異なる場合 (例:より長いトレース)、それぞれを個別に最適化できます。
計算された範囲が非常に小さいか無効な場合はどうすればよいですか?
これは通常、バス容量が速度モードに対して高すぎることを意味します。解決策: デバイス数を減らす、トレースを短くする、バスバッファ/エクステンダを使用する、またはより遅いモードに変更する。
マイクロコントローラの内部プルアップを使用すべきですか?
内部プルアップ(通常20-50kΩ)は、特にファストモード速度または重要なバス容量がある場合、 適切なI2C動作には通常弱すぎます。信頼性の高い通信のために常に外部プルアップを使用してください。
プルアップ抵抗はどこに配置すべきですか?
プルアップはバスのマスターデバイス側、またはマスターにできるだけ近い場所に配置します。 デバイスごとではなく、バスごとに1組のプルアップのみを使用してください。