Cálculo de resistencias pull-up I2C y dónde colocarlas [duplicar]

5

Estoy conectando un PIC18F46K22 (maestro) a un PIC18F4620 (esclavo) usando I 2 C. El cable entre los dispositivos es de ~ 30 cm. Estoy usando 400kHz sin control de velocidad de respuesta. Más adelante, agregaré otro 18F4620 en ~ 5 cm del maestro (~ 35 cm del otro esclavo).

¿Cómo calculo la resistencia de pull-up necesaria tanto en la SCL como en la línea SDA?

¿Importa dónde coloco el pull-up (cerca del maestro, cerca del esclavo, ambos, en el medio, ...)?

    
pregunta Keelan

2 respuestas

9

Los pull-ups generalmente se encuentran cerca del dispositivo maestro.

Esta nota de aplicación entra en algunos de los cálculos . Esencialmente, el tamaño del pull-up estará definido por la capacitancia total del bus y las capacidades de pull-down de los dispositivos en el bus:

\ $ R_p \ ge \ dfrac {V_ {dd} -V_ {OL}} {I_ {OL}} \ $

y

\ $ R_p \ le \ dfrac {300ns} {0.847298 \ veces C_ {bus}} \ $

donde \ $ V_ {OL} \ $ es el bajo voltaje lógico necesario, \ $ I_ {OL} \ $ es la corriente de hundimiento y \ $ C_ {bus} \ $ es la capacitancia del bus.

Por supuesto, una vez que se construya su muestra, lo mejor que puede hacer es explorar las formas de onda y hacer los ajustes necesarios.

    
respondido por el Adam Lawrence
5

Cuando se baja la línea, el pin del controlador (SCL en el maestro o SDA en el maestro o el esclavo) suministra V / R actual para hacer eso; por lo tanto, si se trata de una resistencia de 10k de 5V, el controlador deberá hundir 0.5 mA. Una resistencia más grande significa que se necesita menos corriente, pero la línea se levantará más lentamente (especialmente en una línea larga) y esto puede limitar su velocidad. Una resistencia más pequeña se detiene más rápido, pero en algún momento quemará el pin del controlador (verifique la hoja de datos). 3.3K a 10K probablemente está bien; si es 3.3V tal vez 2.2K-4.7K

No importa mucho dónde los coloque eléctricamente, pero cerca del maestro es mejor si el cable se desconecta; o podrías poner por ejemplo un pull-up de 10k en cada extremo, en lugar de un solo 4k7, que mantendrá ambos extremos felices cuando se desconecte el cable.

Generalmente, para longitudes de cable de + -20cm, SCL a 100kHz estará satisfecho con 10k. Con el aumento de la frecuencia y / o la longitud, puede ir tan bajo como 1k.

    
respondido por el greggo

Lea otras preguntas en las etiquetas