Enviando datos de MCU a PC con 1.5 Mbaud usando FT232R

0

Tengo un problema al utilizar FT232R para comunicarme con mi PC.

Tengo dos bytes de datos que necesito transferir cada 50 dólares. El tamaño de trama es de 20 bits, incluidos dos bits de inicio y parada para cada byte. He configurado el módulo UART para funcionar a 1.5 Mbaudios (0% de error de reloj), y la duración del mensaje a esa velocidad es de alrededor de 13.5 nosotros. FT232R puede funcionar a 1.5 MBaud con un error de reloj del 0%.

También utilizo CoolTerm para recibir datos de MCU. Puedo enviar y recibir datos a velocidades más lentas, pero a los 50 nos parece que se pierden algunos bytes.

¿Qué podría ser un problema aquí? Estoy 100% seguro de que MCU transmite todos los bytes, pero de alguna manera no los recibo todos.

EDITAR: Hice otra prueba enviando un valor de contador de 16 bits de MCU a PC cada 50 us durante 1 segundo. Esto significa que envío 2 * 20000 bytes en total, y los bytes recibidos cuando se combinan deben dar una secuencia 0,1,2,3, ..., 19999. Parece que siempre recibo una secuencia 0,1,2,3, ..., 10048 y algo de basura después de eso, lo que significa que siempre recibo los primeros 20098 bytes correctamente.

Yo uso el sistema operativo Windows 10.

    
pregunta Marko Gulin

2 respuestas

2

Su programa CoolTerm no puede mostrar datos lo suficientemente rápido para mantenerse al día con la velocidad de datos recibida. Su PC está almacenando en búfer los datos recibidos, pero eventualmente el búfer se desborda, lo que corrompe los datos recibidos.     

respondido por el Glenn W9IQ
0

Como algunos de ustedes ya han indicado, CoolTerm no puede obtener datos lo suficientemente rápido para vaciar el búfer del puerto COM de la PC.

Hice un truco con las prioridades en el administrador de tareas, donde establecí la prioridad en tiempo real para el CoolTerm. ¡Ahora todo funciona bien! :)

    
respondido por el Marko Gulin

Lea otras preguntas en las etiquetas