Señales diferenciales paralelas

2

Necesito enviar algunos datos I2C a través del cable RJ45 entre Arduinos. Un ATMEGA2560 como maestro y 1-4 328P como esclavos. He visto algunas configuraciones diferentes y creo que para mi aplicación, la solución mencionada en esta respuesta usando P82B715 será suficiente para lo que necesito, como 5m de cable para cada conexión será suficiente.

Sin embargo, estaba leyendo sobre pares de señales diferenciales que podrían implementarse para esta aplicación usando P82B96 y algunos controladores / receptores de línea diferencial, como lo han hecho los chicos de Pololu en su "Extensor diferencial de larga distancia I2C". En teoría, esta podría ser la mejor manera de obtener líneas I2C realmente largas, según tengo entendido.

Ahora viene la pregunta. Si quisiera enviar esas señales diferenciales, ¿sería mejor usar circuitos integrados separados para cada puerto o se pueden conectar de esta forma?

Como he leído, necesitaría tener cables blindados para transportar GND de esta manera y faltan algunos pull-ups, pero puedes tener una idea.

Mi razonamiento es que, al estar todos conectados, el ruido introducido por los cables aún podría ser cancelado usando el método diferencial, pero no soy EE, así que no puedo estar seguro de esto.

    
pregunta eNDeR

1 respuesta

0

Yo diría que a 5 metros tiene una buena posibilidad de usar una conexión I2C directa y obtener un rendimiento confiable SI:

A. Eres muy cuidadoso con tu conexión a tierra entre el amo y los esclavos. (Por ejemplo, asegúrese de que no haya bucles a tierra y que su blindaje no haga contacto con ningún metal que no sea del sistema en su enrutamiento. (Vea la E a continuación)

B. Minimiza la resistencia de pull-up en SDA - 1K o menos.

C. Minimiza la frecuencia de reloj a la menor velocidad posible sin impedir el flujo de datos que realmente necesita entre el maestro y los cinco esclavos. I2C es un protocolo síncrono, por lo que no hay límite de baja frecuencia para el reloj. El factor limitante probablemente será el controlador o el firmware I2C en los procesadores Arduino.

D. Guarda en búfer la línea SCLK para cada esclavo con algo como un 74HCT125.

E. Use cable de baja capacitancia. P.ej. Cat-5 sin blindaje, que utiliza los cables adicionales como sus conexiones a tierra.

Puede probar esto en el banco antes de implementarlo en su sistema final.

El rendimiento dependerá en gran medida del entorno de ruido eléctrico en el que su sistema necesita funcionar.

Es un poco arriesgado, pero puede ahorrarle el costo y las complicaciones de usar los controladores y receptores diferenciales. He ejecutado I2C de esta manera en aproximadamente 5 pies de pares trenzados en un proyecto anterior. Un par para SCLK, el otro para SDA con el otro cable en el par trenzado conectado a DC Common. En ese caso el maestro y los esclavos compartían la misma fuente de alimentación. La frecuencia del reloj fue de alrededor de 10 o 20 KHz.

    
respondido por el FiddyOhm

Lea otras preguntas en las etiquetas