Taxas de transmissão FTDI FT2232H (USB <-> UART)?

8

Alguém usou um dos chips FT2232H da FTDI?

Especificamente, como você descobre as taxas de transmissão permitidas?

A folha de dados é meio vaga, e eu tenho que escolher algo no intervalo de 1 a 3 MBaud, mas preciso saber quais são minhas opções.

Jason S
fonte

Respostas:

7

Eu tive esse problema também. A FTDI considera mais um problema de driver do que um problema de chip. Vá para a área FTDI App Notes e consulte a appnote PDF "AN_120 Aliasing VCP Baud Rates" .

todbot
fonte
A nota do aplicativo informa exatamente o que você pode selecionar e, em seguida, você precisa garantir que seu microcontrolador possa executar a mesma taxa de transmissão com menos de 10% de erro.
`` #
10%? 10% de erro é alto demais para boas comunicações UART ... geralmente é algo como +/- 3%.
12139 Jason S
Se houver um relógio perfeito de um lado, você poderá ter até 10% de erro do outro (usando dados de 8 bits, 1 partida, 1 parada) sem erro. Você adiciona paridade, precisa diminuir esse erro máximo. No entanto, normalmente ambos os lados não são perfeitos, e você deve diminuir essa sobrecarga, pois ambos têm.
Kortuk
@ Kortuk: Se se sabe que o erro está em uma determinada direção, pode-se obter uma tolerância de extremidade remota de, por exemplo, 0-10% rápido, mas se fizer isso, as comunicações poderão falhar se a extremidade remota for 0,01% lenta. Muitos projetos de UART têm intervalos de erro quase simétricos, embora alguns com super-amostragem de 4x sejam assimétricos; Eu nunca vi um que permitisse ao usuário ajustar o tempo de início para favorecer um controle remoto mais rápido ou mais lento.
supercat
@ supercat, acho que o MSP430 que costumávamos usar, poderia usar "modulação", que causou um erro alto no primeiro bit, mas melhorou em relação aos bits.
Kortuk
2

Também digno de nota é que o driver Linux atualmente suporta velocidades (apenas?) Até 460800 baud.

Brad Hein
fonte
2
Não é bem verdade, embora seja um erro fácil de cometer. A seleção da taxa de BPS no Linux precisa ser compatível com POSIX, e também há muita bagagem emocional dos anos setenta. Por exemplo, costumava ser que você só podia selecionar até 38400. Mais tarde, você poderia virar um pouco e 57600 e 115200 também seriam disponibilizados. Tudo isso no lado do sistema operacional, não no lado do hardware. Os drivers modernos ainda precisam oferecer suporte aos veneráveis Bxxxxsinalizadores, mas também podem fazer taxas personalizadas. Veja get_ftdi_divisor()(linha 1077) no driver. Você pode definir taxas personalizadas de BPS de até 12.000.000 no FT232H.
Alexios