Mi cerebro está frito, así que pensé en pasarlo a la comunidad.UART velocidad posiblemente incorrecta
Al enviar 1 carácter a mi sistema integrado, siempre cree que recibe 2 caracteres. El primer carácter recibido parece asignarse al personaje transmitido (de alguna manera desconocida) y el segundo carácter recibido es siempre 0xff.
Aquí es lo que he observado:
Tx char (in hex) Rx character (in hex), I left out the second byte (always ff)
31 9D
32 9B
33 99
61 3D
62 3B
63 39
64 37
65 35
41 7D
42 7B
43 79
tengo comprobar mis relojes y ellos parecen estar bien. La única diferencia entre esta versión que no funciona y la versión anterior es que ahora estoy usando un chip RS485.
He rastreado la señal de todo el camino hasta la MCU y se ve bien (confirmado el valor del bit en el pin RX)
También puede obtener una buena respuesta de ChipHacker. – Earlz
Esta es mi publicación (era demasiado vago para iniciar sesión). Estaba razonablemente seguro antes de probar que tenía todo correcto. Estoy usando un sn75 algo u otro traductor rs485. El plano de tierra es bueno, y las señales +/- están limpias (terminadas adecuadamente). La velocidad en baudios está configurada correctamente en 9600 sin paridad, 1 bit de parada. – michael
Si es posible, escuche sus propias transmisiones como un medio de detección de colisión.Personalmente tuve una situación en la que un byte se había movido con éxito fuera del registro de desplazamiento para TX y estaba liberando prematuramente el pin de control al transceptor rs485, lo que resultó en que el último char que se transmite (la suma de comprobación) sea incorrecto. – Nate