Cómo tener en cuenta la velocidad de transmisión en baudios en el analizador lógico [cerrado]

0

Soy un novato incómodo tropezando, así que me disculpo si esto debería ser obvio de alguna manera.

Tengo un UART FTDI 232R conectado a una "pastilla azul", y estoy enviando mis primeros bytes. Tengo screen abierto en una terminal para seguirlo, pero solo es una tontería. No hay problema, conecto un analizador lógico (nueva y brillante Saleae Logic 8) y le doy un vistazo a la señal. Al reducir la velocidad en baudios a 100 en el STM32, veo que mi mensaje "Hello World \ n \ r" no se está leyendo ni siquiera cerca del momento correcto por parte de las Saleas.

He visto que el dispositivo receptor debería muestrear tal vez entre 8x - 16x la frecuencia para alcanzar la mitad del pulso, así que trato de configurarlo en 800 y lo intento de nuevo. Mejor, pero no dados. Después de algunos experimentos, finalmente obtengo la señal alta y clara al establecer Saleae en 1140 y parece que 1139 hubiera sido óptimo. Establecí la velocidad en baudios en screen a 1140 , pero aún no sé qué.

Estoy seguro de que puedo darme vueltas para hacer que esto se alinee, pero me pregunto, ¿cómo debo saber qué múltiplo debo usar para empezar? ¿Es solo experimento hasta que lo capture correctamente? ¿Hay algún recurso que pueda ayudarme a superar la joroba? (Soy lo suficientemente nuevo como para no saber dónde ir para obtener conocimiento).

Gracias por tu ayuda.

    
pregunta TrivialCase

1 respuesta

1

La velocidad de transmisión exacta se puede medir con el intervalo de tiempo de 1 bit utilizando una calculadora. Los múltiplos de 1200 son estándar y deberían estar dentro de 50 ppm, pero solo deben ser < ~ 10% -1 / 16th de bit para trabajar con 1start + 8data + 1stop = 10 bits.

Comience con 9600, que es el valor predeterminado, luego vea qué tan rápido puede ir con clientes potenciales cortos.

RS232 usa umbrales de 1.4V (caída de 2 diodos) que son idénticos a TTL pero se invierten a TTL que usa niveles lógicos negativos.

Las especificaciones son ...
 Compatibilidad con la interfaz UART para 7 u 8 bits de datos, 1 o 2 bits de parada y par / impar / marca / espacio / paridad

 Tasas de transferencia de datos de 300 baudios a 3 Mbaudios en niveles TTL.

Por lo tanto, si utiliza TTL, configure el analizador lógico para TTL UART.

Esto es lo que su fino manual tiene que decir ...

  

Autobaud lo logra simplemente ejecutando el analizador dos veces al guardar la configuración. Primero, ejecuta el analizador usando la velocidad en baudios establecida en la configuración del analizador (por defecto 9600). Mientras se ejecuta, realiza un seguimiento del pulso más estrecho de toda la captura. Luego, establece la velocidad en baudios en consecuencia, asumiendo que el pulso más estrecho es exactamente de 1 bit de ancho.

     

Si el ancho de pulso más estrecho es de solo 1 muestra de ancho, el sistema autobaud fallará y no intentará ajustar la velocidad de transmisión. Eso puede suceder cuando no se toma una muestra lo suficientemente rápida o cuando hay ruido en la captura.

     

Si el pulso más estrecho está dentro del 5% de la velocidad en baudios ingresada por el usuario, no intentará ajustar la velocidad en baudios.

     

Si ninguna de las condiciones es verdadera, el software cambiará automáticamente la velocidad en baudios a la nueva configuración y volverá a ejecutar el analizador.

     

Para ver si el autobaud funcionó, vuelva a abrir la configuración del analizador. Si la velocidad en baudios no cambió, entonces una de las dos condiciones anteriores debe haber impedido que funcione.

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas