InfyCalculator
English
💻

Calculadora de resistencia pull-up I2C

Calcula la resistencia pull-up mínima y máxima de SDA y SCL en I2C según el voltaje, el modo de velocidad y la capacitancia del bus (NXP UM10204), con un valor estándar sugerido y su tiempo de subida.

Voltaje de alimentación de las pull-up
Modo de velocidad del bus
Capacitancia del bus
Cargando calculadora…

Cómo funciona

R_p(mín) = (V_DD − V_OL(máx)) ÷ I_OL · R_p(máx) = t_r ÷ (0.8473 × C_b) · V_OL = 0.4 V (0.2 × V_DD por debajo de 2 V) · I_OL = 3 mA (Standard / Fast), 20 mA (Fast-mode Plus) · t_r = 1000 ns / 300 ns / 120 ns

Las líneas I²C son de drenador abierto: una resistencia pull-up lleva SDA y SCL a nivel alto y los dispositivos las bajan a nivel bajo. Si la resistencia es muy pequeña, el nivel bajo supera 0.4 V porque el transistor solo absorbe 3 mA (20 mA en Fast-mode Plus); si es muy grande, la carga RC de la capacitancia del bus es demasiado lenta para cumplir el tiempo de subida (el factor 0.8473 es ln(0.7/0.3), la subida del 30% al 70%). Estos límites vienen de la especificación NXP UM10204. Cualquier valor entre ambos funciona; los valores bajos son más rápidos pero consumen más corriente.

Ejemplo resuelto

Un bus de 3.3 V en Fast-mode (400 kHz) con 200 pF: R_mín = (3.3 − 0.4) ÷ 3 mA = 966.7 Ω y R_máx = 300 ns ÷ (0.8473 × 200 pF) = 1.77 kΩ, así que el rango de pull-up es 967 Ω – 1.77 kΩ. El valor E12 sugerido es 1.2 kΩ, con un tiempo de subida de 203.4 ns y una corriente en nivel bajo de 2.75 mA.

Fuentes: NXP UM10204 — I²C-bus specification and user manual (section 7.1) · Texas Instruments SLVA689 — I2C Bus Pullup Resistor Calculation

Preguntas frecuentes

¿Qué resistencia pull-up debo usar en I2C?

Depende del voltaje, la velocidad y la capacitancia del bus. 4.7 kΩ es un valor habitual a 100 kHz en buses cortos; a 400 kHz con 100–200 pF suele hacer falta entre 1 y 2.2 kΩ. Usa el rango calculado en lugar de una regla fija.

¿Por qué importa la capacitancia del bus?

La pull-up carga la capacitancia del bus siguiendo una curva RC. El tiempo de subida es 0.8473 × R × C, así que al duplicar la capacitancia se reduce a la mitad la resistencia máxima que cumple el límite.

¿Necesito pull-up en SDA y en SCL?

Sí, una en cada línea, normalmente un solo par para todo el bus. Muchos módulos ya traen pull-up de 4.7 kΩ o 10 kΩ; varios módulos en paralelo reducen la resistencia efectiva.

¿Qué hago si ningún valor encaja?

La capacitancia del bus es demasiado alta para esa velocidad. Acorta el cableado, quita dispositivos, baja a un modo más lento, usa drivers Fast-mode Plus o añade un búfer de bus o una pull-up activa como LTC4311 o P82B96.

Calculadoras relacionadas

Esta calculadora tiene fines informativos. Verifica los resultados importantes antes de tomar decisiones.