UART: la frecuencia de reloj del transmisor uart es diferente del receptor uart

-3

Uso UART entre dos sistemas (que tienen 2 procesadores). El uart del transmisor tiene una frecuencia de reloj de 100MHz. Y el uart del receptor tiene un reloj de 125MHz. La velocidad de transmisión que uso es 1e6. Puedo ver que en algunos de los mensajes hay un poco de cambio.

¿Puede ser debido a la velocidad en baudios? ¿Debo usar otra velocidad de transmisión?

    
pregunta sara r

1 respuesta

2

Para la comunicación UART, ambos extremos deben ejecutarse a la misma velocidad de transmisión, ± 3% o menos en la mayoría de los casos. El error del 3% permite un error de tiempo de ¼ bit en el medio del octavo bit de datos.

Si bien la velocidad en baudios de UART se deriva generalmente del oscilador principal de un procesador, generalmente existe la oportunidad de dividirlo para seleccionar 16 veces la velocidad en baudios deseada. Para el hardware UART común, el reloj interno del UART, por lo tanto, tendría que ser de 16 MHz para alcanzar 1 MBaud.

Tenga en cuenta que ni 100 MHz ni 125 MHz se pueden dividir por un número entero y dar como resultado 16 MHz ± 3%. Debe verificar la documentación que lo que está tratando de hacer es realmente posible con el hardware que tiene. Podría ser que ninguno de los dos procesadores esté ejecutando su UART a 1 MBaud. Es probable que necesites una velocidad en baudios mucho más lenta donde 16 veces la velocidad en baudios se puede lograr al dividir ambos relojes por un número entero.

Incluso si realmente está obteniendo 1 MBaud de ambos extremos, tenga en cuenta que una señal tan rápida no lo hará a través de chips de conversión RS-232 comunes. Básicamente, estas son señales digitales ordinarias entre dos chips en el mismo tablero.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas