Longitud máxima del cable para señales de 2 V o 3,3 V I2C, UART o de 1 cable a través de Ethernet y ¿cómo aumentarlo?

0

Sé que preguntas similares se han hecho antes ( Cable máximo longitud para señales de 3.3V UART ) pero me gustaría saber la respuesta más específicamente para un aficionado.

He estado experimentando la conexión de varios dispositivos a un Arduino a través de I2C, UART y 1 cable. Tengo un adaptador que va de pines a RJ45, así que los estoy usando en ambos extremos. Sigo recibiendo errores de datos cuando uso ciertos cables Ethernet, principalmente en longitudes de más de 10 pies. Si bien entiendo en principio la pérdida de señal debida a interferencias y resistencias. Estoy encontrando poca información sobre cómo cuantificar o superarla.

Estoy tratando de encontrar una manera de aumentar la señal o utilizar el cable Ethernet de manera diferente para que la longitud del cable sea más larga.

    
pregunta user379468

3 respuestas

5

Para distancias más largas y mayor inmunidad al ruido eléctrico, a menudo se utiliza señalización diferencial .

Por ejemplo, RS-422

Los controladores RS-422 tienen un costo relativamente bajo (comienzan en menos de £ 2). Se pueden conectar directamente al UART para la comunicación punto a punto.

También hay controladores específicos para ampliar el rango de I2C e.g. Hoja de datos de NXP o Hoja de datos de TI .

Estos deberían funcionar bien con cables de par trenzado, por ejemplo. Pares trenzados de Ethernet.

    
respondido por el gbulmer
3

En la mayoría de los casos, la degradación se debe a la capacitancia del cable. Es necesario utilizar cables de baja capacitancia de buena calidad. La capacitancia evita que las señales se transfieran lo suficientemente rápido y, por lo tanto, se producen errores de comunicación o un fallo completo de la comunicación.

He ejecutado exitosamente el bus OneWire a más de 50 metros de cable Ethernet sin demasiados problemas (tuve que reducir el levantamiento pasivo e implementar un control de errores en el software).

Como se mencionó anteriormente, para distancias más largas, RS485 y / o RS422 son el camino a seguir.

Espero que ayude, -Igor

    
respondido por el IgorEE
1

Además de cambiar el método de comunicación, puede utilizar detección de errores (también conocido como comprobación) y algoritmos de corrección .

Hay múltiples algoritmos y puede elegirlos según los tipos de datos que envíe.

Un ejemplo que lo adopta es código QR , que puede leerse incluso si está parcialmente alterado o dañado.

    
respondido por el user1448742

Lea otras preguntas en las etiquetas