USB-a-seriale che mostra incomprensibile a 115200 Baud


14

Quando si utilizza un'interfaccia da USB a seriale, tutto funziona fintanto che non vado oltre 57600 Baud. A tassi più alti ottengo solo giberish in questo modo:

é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

Ciò che rende il problema così strano è che ho sostituito ogni componente e il problema persiste ancora. Ho provato diversi sistemi operativi (Ubuntu, Windows XP, Windows 7, Mac OS X 10.7) con 32 e 64 bit. Ho provato l'interfaccia da USB a seriale da FTDI e Prolific. Ho provato a leggere l'output dal mio Raspberry PI e da un Asterisk Appliance. Ho cambiato i cavi e il cablaggio. Niente ha aiutato.

Ho fatto un esempio con un vecchio notebook con COM nativo e ho messo l'USB-to-Serial sulla stessa connessione di "sniffer" (solo Rx e GND collegati) per assicurarmi che l'output e tutto sia ok come si può vedere sul nativo porta. La tensione è ok. Le impostazioni per entrambi sono 115200 Baud, 8 bit con 1 stop e nessun controllo di flusso. Il nativo va bene. USB è incasinata.

Ho usato i driver più recenti e ricontrollato tutte le connessioni. Non ho idea di cosa ci sia di sbagliato qui. Dato che non riuscivo a trovare nessuno che descrivesse problemi come questo, metto in dubbio la mia lunga esperienza nel campo dell'informatica e penso di sbagliarmi completamente.


Ho usato (come probabilmente altri hanno) adattatori USB-seriale a 115200 baud. Uno degli adattatori più economici ha un problema di massa del segnale . Il GND sul lato RS-232 non è collegato al GND USB; alcune connessioni (a seconda delle connessioni di terra dello chassis) producono dati inutili. Stai segnalando che tutte le configurazioni oltre 57600 baud hanno problemi? C'è qualche attrezzatura comune coinvolta? Cos'è quella breadboard nel video? È un cambio di livello fatto in casa?
segatura

Non ho provato valori più alti di 115200, quindi non posso sicuramente dire che facciano problemi. La breadboard viene utilizzata per dividere il segnale in modo da poterlo utilizzare sulla porta nativa e su quella da USB a seriale. Non ci sono parti elettriche eccetto alcuni fili. Il mio dispositivo da USB a seriale ha un'estremità aperta (a filo) e ho applicato un jack RJ45 ad esso, quindi posso sicuramente dire che il GND è collegato correttamente. Senza collegarlo non ottengo alcun output. Quindi penso che dovrebbe essere OK. Il fatto che molti altri utilizzino questi adattatori senza problemi è esattamente la parte del problema che mi fa impazzire ...
Mose

La divisione del segnale potrebbe essere problematica. Se ci sono solo fili, significa che non esiste una terminazione di linea per annullare i riflessi (che può peggiorare quando la frequenza aumenta)?
segatura

Sì, potrebbe essere un problema, ma non in questo caso. L'ho appena collegato per dimostrare meglio il problema. Il problema si è verificato senza questa roba "sniffing". Volevo solo mostrare che il dispositivo sta sputando fuori i suoi dati mostrandoli simultaneamente.
Mose,

9600 sembra perfettamente bene, 115200 produce dati di immondizia nella parte anteriore.
Lin Song Yang,

Risposte:


6

Dopo aver riflettuto e trovato un singolo post che era un po 'nella giusta direzione, ho capito che è l'unica possibilità rimasta per invertire il segnale e provarlo. Fortunatamente FT232RL ha flag di opzione nella sua EEPROM (programmabile con "MProg" di FTDI) per impostare questo:

FTDI MProg

Dopo questo, tutto ha funzionato su ogni Baud rate. Non chiedermi perché, non ho spiegazioni tecniche per questo. Non vedo l'ora di ottenere un oscilloscopio per ulteriori indagini. Non ho mai visto un problema così strano prima.

Ho testato il mio USB-a-seriale anche con uno switch Cisco e non ha funzionato senza questa inversione.


Qualche aggiornamento su questo problema?
Isacco,

2
Ha funzionato anche per me - lo strumento si chiama FT_Progora - disponibile qui: ftdichip.com/Support/Utilities.htm
MrMajestyk

1

Anch'io ho avuto lo stesso problema di connessione al nostro MCU a velocità superiori a 57600 e dopo aver sospettato il nostro UART, ho scoperto che un Bridge Silicon Labs CP2102 da USB a UART (TTL) funzionava correttamente a baud rate più elevati senza dover modificare il chipset FTDI.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.