12 votos

Mejor manera de hacerlo I2C/TWI larga distancia

Tengo un proyecto que requiere para hacer I2C/I2C/TWI a través de una larga distancia (de 30 a 40 metros).

He visto a algunas personas lo que sugiere bajar el reloj-tasa de alrededor de 500 Hz, para mitigar los efectos de la capacitancia de una línea larga supongo? Los componentes que estoy usando requieren al menos el estándar de reloj de 100 kHz-frecuencia. Hice algunas investigaciones y encontró entre las respuestas a otra pregunta , una sugerencia para el uso de un P82B96 nivel de la palanca de cambios. En la hoja de datos que den ejemplos de su utilización en líneas de hasta 100 metros:

I2C_longDistance

He llegado a través de otra forma de desplazamiento de los niveles a través de un tablero de arranque de adafruit, que es sólo un mosfet (bss138) con dos resistencias pull-up (uno para cada lado/voltaje). Se consiguió la idea de una nota de aplicación de NXP (AN10441), y dos de los canales de allí podría ser utilizado como esta:

mosfet level shifting

Ahora me pregunto: cuál es la mejor solución? O es que hay algo que he pasado por alto? Y también, es de 5V suficiente para garantizar una buena conexión? Existiría una ventaja del uso de un mayor voltaje como de 12V?

2voto

Spehro Pefhany Puntos 90994

Probablemente, usted puede conseguir lejos con el DS18B20 sensores mediante el uso de blindados CAT5 o similares de cable. Es sólo mediciones térmicas, así que si alguna de las lecturas se dañaran, puede hacer que su programa sea lo suficientemente robusta como para lidiar con eso (es una buena práctica de todos modos).

Para la cadena de restaurante de uso, he diseñado lo que se llama RTU (en la azotea de la unidad) de los controles que funcionan en múltiples sensores pasivos (que uso intercambiable de los termistores NTC, que no requieren calibración para la comodidad de la calefacción). Es mucho más fácil para filtrar el ruido de un sensor pasivo. Otro conjunto de instalaciones (una de las principales de América del Norte de la automoción complejo) utiliza RTDs de platino con acondicionadores de señal - muy preciso y estable de los dispositivos. Usted debe decidir el sensor en primer lugar, veamos entonces cómo podría ser interconectados - cualquiera de estas opciones de sensor son adecuados para su aplicación (aunque los RTDs podría ser una exageración).

En caso de que no quede claro, yo soy lo que sugiere una "estrella" de la configuración de los sensores alrededor de su procesador.

Si usted realmente desea utilizar un "bus" (distinto de un alambre o I2C), usted necesitará inteligencia en los extremos, lo que significa que un procesador de alguna forma. Si usted va todo de cerdos que usted puede ser que desee considerar el uso de sensores inalámbricos que se comunican a través de algún banda ISM de que es legal en su localidad. Como alternativa, puede utilizar uno de los sensores por Pi y les han de hablar unos con otros a través de su wi-fi de la intranet.

1voto

Chris Lieb Puntos 106

Creo que estamos en el camino correcto con algo como la NXP P82B96. Si usted tiene una mirada en la Figura 14 y el texto asociado a la hoja de datos se describe el uso de la longitud de cable de hasta 250 m con velocidades de datos de más de 100 kHz.

Hay muchos I2C sensor de temperatura disponible que le puede dar una precisión de unos pocos grados centígrados sin necesidad de calibración, y sin ningún añadido circuitos analógicos. Ya que están trayendo de nuevo los datos para el procesamiento de todos modos, para filtrar el ruido sería muy fácil.

Si usted está preocupado acerca de el cableado de la capacitancia podría ser mejor con cable de par trenzado en lugar de un cable blindado.

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