USB-to-Serial mostrando rabiscos em 115200 Baud

14

Ao usar uma interface USB para serial, tudo funciona desde que eu não ultrapasse o 57600 Baud. A taxas mais altas, eu só fico giberish assim:

é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

O que torna o problema tão estranho é que troquei todos os componentes e o problema ainda persiste. Eu tentei diferentes sistemas operacionais (Ubuntu, Windows XP, Windows 7, Mac OS X 10.7) com 32 e 64 bits. Eu tentei a interface USB para serial da FTDI e da Prolific. Tentei ler a saída do meu Raspberry PI e de um Asterisk Appliance. Troquei os cabos e a fiação. Nada ajudou.

Fiz um exemplo com um notebook antigo com COM nativo e coloquei o USB para serial na mesma conexão que o "sniffer" (apenas Rx e GND conectados) para garantir que a saída e tudo estejam ok, como é possível ver no nativo porta. A voltagem está boa. As configurações para ambos são 115200 Baud, 8 bits com 1 parada e sem controle de fluxo. Nativo é bom. USB está bagunçado.

Usei os drivers mais recentes e verifiquei todas as conexões. Não tenho ideia do que está errado aqui. Como não consegui encontrar alguém descrevendo problemas como esse, questiono minha longa experiência em ciência da computação e acho que estou fazendo algo completamente errado.

Mose
fonte
Eu usei (como provavelmente outros usaram) adaptadores serial USB a 115200 baud. Um dos adaptadores mais baratos tem um problema de aterramento de sinal . O GND no lado RS-232 não está conectado ao USB GND; algumas conexões (dependendo das conexões de terra do chassi) produzem dados de lixo. Você está relatando que todas as configurações acima de 57600 baud têm problemas? Existe algum equipamento comum envolvido? Qual é a tábua de pão no vídeo? Isso é um metamorfo caseiro?
sawdust
Como não tentei valores mais altos que 115200, não posso dizer com certeza que eles também causam problemas. A placa de ensaio é usada para dividir o sinal para que eu possa usá-lo na porta nativa e na porta USB para serial. Não há peças elétricas lá, exceto alguns fios. Meu dispositivo USB para serial tem uma extremidade aberta (fio) e eu apliquei uma tomada RJ45 nele, para que eu possa dizer definitivamente que o GND está conectado corretamente. Sem conectá-lo, não recebo saída. Então eu acho que isso deve estar bem. O fato de que muitos outros usam este adaptadores sem problemas é exatamente a parte do problema que me deixa louco ...
Mose
Dividir o sinal pode ser problemático. Se houver apenas fios, isso significa que não há terminação de linha para cancelar reflexões (o que pode piorar à medida que a frequência aumenta)?
sawdust
Sim, pode ser um problema, mas não neste caso. Acabei de ligar isso para demonstrar melhor o problema. O problema foi enfrentado sem nada disso "cheirando". Eu só queria mostrar que o dispositivo está cuspindo seus dados corretamente, mostrando-o simultaneamente.
Mose
9600 parece perfeitamente bem, 115200 produz dados de lixo na frente.
Lin Song Yang

Respostas:

6

Depois de pensar e encontrar um único post que estava um pouco na direção certa, eu descobri que é a única possibilidade restante de inverter o sinal e experimentá-lo. Felizmente, o FT232RL possui sinalizadores de opção na EEPROM (programável com "MProg" da FTDI) para definir isso:

FTDI MProg

Depois disso, tudo funcionou em todas as taxas de transmissão. Não me pergunte por que, não tenho explicação técnica para isso. Estou ansioso para obter um osciloscópio para uma investigação mais aprofundada. Nunca vi um problema tão estranho antes.

Também testei meu USB para serial com um Cisco Switch e ele não funcionou sem essa inversão.

Mose
fonte
Alguma atualização sobre esse problema?
Isaac
2
Trabalhou para mim também - a ferramenta é chamada FT_Progagora - disponível aqui: ftdichip.com/Support/Utilities.htm
MrMajestyk
1

Eu também tive o mesmo problema ao conectar-se ao nosso MCU em velocidades acima de 57600 e, depois de suspeitar do nosso UART, descobri que um Silicon Labs CP2102 USB para UART Bridge (TTL) funcionava corretamente em taxas de transmissão mais altas sem precisar ajustar o chipset FTDI.

Peter M
fonte