Al configurar la UART serie entre dos tarjetas, solo puedo monitorear el envío o la recepción, no ambas, ¿por qué?

0

Tengo un atmega389B hablando con un chip SAMD21 sobre UART y estoy tratando de monitorear los datos enviados por el chip SAMD21 y 389B. La velocidad en baudios solía ser 9600 8N1 y pude observar tanto los datos enviados como los recibidos entre las dos tarjetas mediante un sniffer RS485 a USB con una resistencia de 120 Ohm entre los pines RX y TX. Desde entonces, la velocidad en baudios se ha elevado a 38400 y ahora solo puedo observar los datos enviados desde una placa o la otra, no desde ambos, lo que debo hacer. Puedo cambiar los pines TX y RX y obtener un conjunto de comandos u otro pero no puedo recibir ambos. Los datos fluyen entre dos chips RS232 y, por alguna razón, aún pude obtener de manera confiable los datos de TX y RX con un rastreador RS485. Ahora con una velocidad más alta no puedo. ¿Alguien sabe qué podría estar causando esto y una solución a este problema? Probé un rastreador de UART a usb, pero me puse gibberish y probé Teraterm y otro programa de terminal RS485 barato. He probado los cables también y están funcionando. Estoy bastante confundido y podría necesitar algo de ayuda. Aquí hay un dibujo de la configuración

    
pregunta William Dussault

2 respuestas

4

La configuración que has mostrado no funcionará. UART y RS-485 son muy diferentes eléctricamente.

UART utiliza dos pines unidireccionales (RX y TX). RS-485 utiliza un solo par diferencial (comúnmente llamado cables A y B) para la comunicación bidireccional.

Para que funcione, debería agregar transceptores RS-485 junto a ATmega y SAM, solo entonces los 3 dispositivos podrían compartir un solo bus.

Alternativamente, puedes usar dos convertidores de USB a UART, conectar sus líneas de RX (una al TX de ATmega, el RX del otro al TX del SAM).

    
respondido por el filo
0

RS485 es una cosa diferente, donde dos direcciones comparten el mismo par de cables. Solo hay uno activo a la vez, por lo que puede monitorear con UN puerto.

El par RS485 es diferencial, por lo que una de sus señales se está invirtiendo. En el mejor de los casos.

Ver Crear un Sniffer de comunicación

Necesita DOS módulos serial-usb, uno para cada cable. Realterm le permite abrir DOS puertos y verlos en pantalla en el modo Monitor.

Si puede garantizar que solo se transmita uno a la vez, puede O BIEN con diodos a un solo puerto, pero no sabrá qué carácter proviene de qué cable.

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Henry Crun

Lea otras preguntas en las etiquetas