USB a serie mostrando galimatías a 115200 baudios

14

Cuando utilizo una interfaz USB a serie, todo funciona siempre que no vaya más allá de 57600 Baudios. A tasas más altas solo me pongo giberish de esta manera:

év.­b0JNLYÆÿ¿iëd0U²(kßÞb!
                        ú]/xscB!ï¯!BoXûÿ1ïâÖCÿ6ÌAnè*íÌC)º¿BíÞØ.C.@ÆÃwHJÂs
"YE:ñ.èFðÌCÊ÷ÞÄ
               !x
                 H
w6@BtbHJ
        ̪
          Ì6ì
H¾a¿bH.">îvy®;f<ßBÌ
               p­L¨fæH­E
­þ¼MBÞI

Lo que hace que el problema sea tan extraño es que intercambié todos los componentes y el problema persiste. Probé diferentes sistemas operativos (Ubuntu, Windows XP, Windows 7, Mac OS X 10.7) con 32 y 64 bits. Probé la interfaz USB a serie de FTDI y Prolific. Intenté leer el resultado de mi Raspberry PI y de un dispositivo Asterisk. Cambié los cables y el cableado. Nada ayudó

Hice un ejemplo con una computadora portátil antigua con COM nativo y puse el USB a serie a la misma conexión que "sniffer" (solo Rx y GND conectado) para asegurarme de que la salida y todo esté bien como se puede ver en el nativo Puerto. El voltaje está bien. Los ajustes para ambos son 115200 baudios, 8 bits con 1 parada y sin control de flujo. Nativo está bien. USB está en mal estado.

Usé los controladores más nuevos y verifiqué todas las conexiones. No tengo idea de lo que está mal aquí. Como no pude encontrar a nadie que describiera problemas como este, cuestiono mi larga experiencia en informática y creo que estoy haciendo algo completamente incorrecto.

Mose
fuente
He usado (como probablemente otros) adaptadores USB-serie a 115200 baudios. Uno de los adaptadores más baratos tiene un problema de conexión a tierra . El GND en el lado RS-232 no está conectado al USB GND; Algunas conexiones (dependiendo de las conexiones a tierra del chasis) producen datos basura. ¿Está informando que todas las configuraciones de más de 57600 baudios tienen problemas? ¿Hay algún equipo común involucrado? ¿Cuál es esa placa en el video? ¿Es eso un cambio de nivel casero?
aserrín
No probé valores superiores a 115200, por lo que no puedo decir que también causen problemas. La placa de pruebas se utiliza para dividir la señal para que pueda usarla en el puerto nativo y en el puerto USB a serie. No hay partes eléctricas allí, excepto algunos cables. Mi dispositivo USB a serie tiene un extremo abierto (cable) y le apliqué un conector RJ45, por lo que definitivamente puedo decir que el GND está conectado correctamente. Sin conectarlo no obtengo salida. Así que creo que esto debería estar bien. El hecho de que muchos otros usen estos adaptadores sin ningún problema es exactamente la parte del problema que me vuelve loco ...
Mose
Dividir la señal podría ser problemático. Si solo hay cables, ¿significa eso que no hay terminación de línea para cancelar los reflejos (que puede empeorar a medida que la frecuencia aumenta)?
aserrín
Sí, podría ser un problema, pero no en este caso. Acabo de conectar esto para demostrar mejor el problema. El problema se experimentó sin ninguna de estas cosas de "olfateo". Solo quería mostrar que el dispositivo está escupiendo sus datos correctamente mostrándolos simultáneamente.
Mose
9600 parece perfectamente bien, 115200 produce datos basura en el frente.
Lin Song Yang

Respuestas:

6

Después de pensarlo detenidamente y encontrar una sola publicación que estaba un poco en la dirección correcta, descubrí que es la única posibilidad que queda de invertir la señal y probarla. Afortunadamente, FT232RL tiene banderas de opciones en su EEPROM (programable con "MProg" por FTDI) para configurar esto:

FTDI MProg

Después de esto, todo funcionó en cada velocidad de transmisión. No me preguntes por qué, no tengo una explicación técnica para ello. Tengo muchas ganas de obtener un osciloscopio para una mayor investigación. Nunca vi un problema tan extraño antes.

También probé mi USB a serie con un conmutador Cisco y no funcionó sin esta inversión.

Mose
fuente
¿Alguna actualización sobre este tema?
Isaac
2
También funcionó para mí, la herramienta se llama FT_Progahora, disponible aquí: ftdichip.com/Support/Utilities.htm
MrMajestyk
1

También tuve el mismo problema al conectarme a nuestra MCU a velocidades superiores a 57600 y después de sospechar de nuestro UART, descubrí que un USB a UART Bridge (TTL) Silicon Labs CP2102 funcionaba correctamente a velocidades de transmisión más altas sin tener que ajustar el chipset FTDI.

Peter M
fuente