7 votos

Dificultades de I2C por cable

Quiero enlazar un PIC16F1825 y un sensor de temperatura TCN75 vía I2C. El sensor de temperatura está a 1m del MCU. ¿Puede alguien aclararme si y qué tipo de dificultades voy a encontrar al ejecutar I2C sobre cable? He leído que I2C puede ser bastante sensible al ruido, especialmente a velocidades más altas y distancias más largas.

¿En qué medida va a ser esto un problema en la práctica en mi caso? ¿Alguien tiene alguna experiencia en condiciones similares? Estoy bastante contento así que me quedo con las tasas de transferencia lentas.

  • El enlace funcionará a 5V.
  • ¿Qué puedo hacer para que este enlace sea lo más sencillo posible tanto en su diseño como en su funcionamiento?
  • Con los cables de señal estándar que no son TP no sabré su capacitancia. ¿Cómo puedo calcular las resistencias de pull-up?
  • ¿Necesitaré alguna resistencia de pull-up o es suficiente la corriente de pull-up del PIC16?

Alternativamente, ¿puede alguien indicarme un AN que me ayude con I2C sobre cable?

11voto

lillq Puntos 4161

Definitivamente necesitas resistencias externas de pull-up. Los pull-ups internos de un microcontrolador son demasiado débiles. Ten en cuenta que con un bus de alta capacitancia no suele ser un problema tener bordes de caída rápidos, porque los FETs que tiran de la línea hacia abajo tienen baja impedancia, y entonces la capacitancia del cable puede descargarse rápidamente.

Pero para el flanco de subida sólo tenemos la resistencia relativamente alta de los pull-ups, y el tiempo RC de eso combinado con la capacitancia del cable determina el tiempo de subida. Un valor de resistencia más pequeño es mejor, pero hay un límite para esto también: un dispositivo I2C no tiene que consumir más de 3 mA, por lo que a 5 V de tensión de bus la resistencia no debe ser inferior a 1,7 kΩ.

enter image description here

El gráfico muestra la resistencia máxima de pull-up para una capacidad de cable determinada. A 1 m esa capacitancia no será alta, si usas cable de señal probablemente menos de 50 pF, e incluso para 100 pF podrías llegar a 12 kΩ. Sin embargo, yo me quedaría cerca del límite inferior, no sólo tendrás bordes más rápidos, sino que una impedancia más baja también hace que el cable sea menos sensible al ruido. Las resistencias de 2,2 kΩ probablemente serán suficientes.

Más información
Especificación I2C
Terminación I2C frente a la capacitancia

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X