Tengo una pregunta con respecto a la tolerancia de error de la tasa de baudios de UART, como indica el título del hilo. En primer lugar, quiero señalar un excelente tutorial sobre la precisión del reloj: Maxim Integrated Tutorial
Entiendo que la tolerancia al error de la tasa de baudios depende de muchos parámetros, por ejemplo, la atenuación del cable que está en correlación directa con la longitud del cable, la tasa de baudios en sí misma, etc. La tasa de baudios de UART en un dsPIC33E está determinada por un registro, cuyo valor se calcula como:
dónde es un registro de tipo int sin signo (16 bits), es la frecuencia de reloj de la CPU en Hz, y es la tasa de baudios deseada en bps.
Por ejemplo, si queremos una tasa de baudios de , y la frecuencia de reloj de la CPU es , el valor de registro correspondiente sería 194,3125, que se puede redondear a 194 o 195. La tasa de baudios real con respecto a la valor de registro se puede calcular como:
Para el ejemplo anterior, la tasa de baudios real puede ser una de las siguientes:
El error de tasa de baudios se calcula como:
Sin embargo, en el ejemplo anterior, aunque da un error de tasa de baudios absoluto más bajo (+0.160%), prefiero elegir (-0,351%). La razón de esto es que cuando un bit en el bus de datos cambia de 0 a 1 (o viceversa), la capacitancia del cable "ralentiza" esta transición, algo así como un circuito RC, que podría ser incluso del 30% (o más). ) del período de bits. Por supuesto, esto depende de la longitud del cable, la tasa de baudios en sí misma, etc. Por esta razón, preferiría que el "reloj de tasa de baudios" se desplace desde el centro del bit hacia el final del bit. Por favor, hágamelo saber si esto tiene algún sentido.
PD Dado que en la comunicación UART el reloj se restablece en cada cuadro, sé que todo por debajo del 3% de error de tasa de baudios en condiciones de funcionamiento "normales" se considera aceptable.
¡Gracias de antemano!
Mejor, Marco.
Preferiría que el "reloj de velocidad en baudios" se desplace desde el centro del bit hacia el final del bit.
Eso está bien cuando se mira al receptor, pero tenga en cuenta que las comunicaciones UART suelen ser bidireccionales. Si envía con un reloj lento, entonces está poniendo al receptor en el otro extremo en mayor desventaja.
Es mejor elegir el error absoluto más pequeño para obtener el mejor rendimiento en ambas direcciones.
Me refiero a una declaración en la pregunta que es incorrecta y, debido a que sustenta toda la base de la pregunta, hace que la pregunta sea inválida: -
La razón de esto es que cuando un bit en el bus de datos cambia de 0 a 1 (o viceversa), la capacitancia del cable "ralentiza" esta transición, algo así como un circuito RC, que podría ser incluso del 30% (o más). ) del período de bits.
Cuando observa cualquier línea de transmisión medio decente (como coaxial o pistas de cobre diseñadas correctamente en una PCB), tiene una impedancia característica y esto se puede modelar matemáticamente como un montón de secciones cortas como estas: -
A bajas frecuencias, R y C dominan y tienes problemas capacitivos. Por ejemplo, en las líneas de telecomunicaciones, la impedancia no es de 600 ohmios en todo el espectro del habla, sino más bien en el audio:
A frecuencias mucho más altas, esto se establece en 100 ohmios en el ejemplo anterior, pero en muchos cables coaxiales es de 50 ohmios o 75 ohmios. Tenga en cuenta que en la imagen de arriba, la impedancia nominal (600 ohmios) se muestra con la línea de puntos y corresponde aproximadamente a la impedancia a 1 kHz.
Entonces, volviendo al punto, las transiciones de borde en su señal son muy rápidas y se transmitirán en una parte del espectro que es de al menos 1 MHz o más y, por lo tanto, la ecuación de impedancia característica (que se muestra arriba) se reduce a es decir, puramente resistivo.
Esto significa que, a menos que tenga lo que podría describirse como un cable realmente malo (o conexiones mal diseñadas en su PCB), los bordes de su señal digital no se filtrarán como tal.
Dado también que si no trata los cables y las pistas como líneas de transmisión, verá fenómenos extraños en su señal que pueden parecer efectos capacitivos. Estoy hablando de reflejos de señal de una línea de transmisión mal terminada. Todos estos son buenos métodos en sus propias formas: -
Si no intenta terminar la línea con uno de los métodos anteriores, es probable que los reflejos reboten de un lado a otro y puede parecer que esto se debe a demasiada capacitancia de la línea t.
Marko Gulin