Comunicación serie de 1 cable a puertos serie RX / TX estándar en microcontroladores

1

Solo quiero comenzar diciendo que soy relativamente nuevo en ingeniería eléctrica en general, por lo que si sueno es absolutamente retardado, por favor, tenga paciencia conmigo.

Como parte de un proyecto de aprendizaje, estoy trabajando con algunos sensores de color, específicamente ColorPAL 28380s de Parallax , y tengo un Arduino Uno y Arduino Mega 2560 por ahí para obtener datos de ellos. He estado jugando con los detalles específicos de este proyecto terminó en Arduino SE pero supongo que esta pregunta podría ser para cualquier microcontrolador en general. Estos sensores utilizan un método de comunicación conocido como 1-Wire / MicroLAN, en el que usan solo un pin para la transmisión y la recepción, dependiendo del estado del pin al que están conectados, entre otras cosas específicas. Ahora tengo tres de estos, y mi objetivo final es poder extraer datos de todos ellos en el mismo punto en el tiempo repetidamente para poder enviar los datos a algún otro programa que esté escribiendo para ejecutar un algoritmo. . El problema es que el ejemplo utilizado se basa en un puerto serie emulado en el Arduino que no le gusta trabajar con varias instancias.

Ahora, el Mega 2560 tiene tres juegos integrados para comunicaciones en serie que serían perfectos ... solo si pudiera separar el RX y el TX del 1-Wire. Un usuario de Arduino SE sugirió que usara un transistor para separarlo. Llámeme tonto, pero no tengo ningún repuesto, así que saldré a probarlo pronto una vez que pueda salir a una tienda de electrónica cercana. Sin embargo, buscando en Internet, he leído que 1-Wires nunca debe conectarse a puertos serie nativos debido a la forma en que funcionan con los estados.

En resumen, ¿los sensores 1-Wire se pueden comunicar con puertos serie nativos en microcontroladores si hago un circuito para dividir las señales? Y, si esto es posible, ¿cuáles son los detalles detrás? ¿Tal circuito?

    
pregunta Eriol

1 respuesta

3
  • Con un poco de esfuerzo de software, puede leer los tres sensores a través del mismo cable: los periféricos de 1 cable tienen una ID única.

  • Dallas 1-wire es un protocolo de comunicación específico, y usar el hardware UART para comunicarse con un dispositivo de 1-cable es bueno, ¿como usar una motosierra para girar un tornillo? Mejor busque una biblioteca de 1 cable que simplemente golpee el protocolo. Es probable que haya muchas de esas libs, ya sea para el Arduino o para un Mega 2560 desnudo.

  • Si realmente desea "dividir" la línea (UART), puede usar un multiplexor analógico.

respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas