FTDI FT2232H (USB <-> UART) Baudraten?

8

Hat jemand einen der FT2232H- Chips von FTDI verwendet?

Wie ermitteln Sie konkret die zulässigen Baudraten?

Das Datenblatt ist etwas vage, und ich muss etwas im Bereich von 1 bis 3 MBaud auswählen, muss aber wissen, welche Optionen ich habe.

Jason S.
quelle

Antworten:

7

Ich hatte auch dieses Problem. FTDI betrachtet es eher als Treiberproblem als als Chipproblem. Gehen Sie zu dem FTDI App Notes - Bereich und Blick auf dem „AN_120 Aliasing VCP Baudraten“ PDF Appnote.

todbot
quelle
In der App-Notiz erfahren Sie genau, was Sie auswählen können. Anschließend müssen Sie sicherstellen, dass Ihr Mikrocontroller dieselbe Baudrate mit weniger als 10% Fehler ausführen kann.
Kortuk
10%? 10% Fehler sind viel zu hoch für eine gute UART-Kommunikation ... normalerweise sind es ungefähr +/- 3%.
Jason S
Wenn auf der einen Seite eine perfekte Uhr vorhanden ist, kann auf der anderen Seite ein Fehler von bis zu 10% (unter Verwendung von 8-Bit-Daten, 1 Start, 1 Stopp) ohne Fehler auftreten. Wenn Sie Parität hinzufügen, müssen Sie diesen maximalen Fehler verringern. Normalerweise sind jedoch beide Seiten nicht perfekt, und Sie müssen diesen Overhead verringern, da beide ihn haben.
Kortuk
@Kortuk: Wenn bekannt wäre, dass der Fehler in eine bestimmte Richtung geht, könnte man eine Toleranz für das entfernte Ende von z. B. 0-10% schnell veranlassen, aber wenn man dies tut, kann die Kommunikation fehlschlagen, wenn das entfernte Ende 0,01% langsam ist. Viele UART-Designs haben nahezu symmetrische Fehlerbereiche, obwohl einige 4x überabgetastete asymmetrisch sind. Ich habe noch nie eine gesehen, bei der der Benutzer das Start-Bit-Timing anpassen konnte, um eine schnellere oder langsamere Fernbedienung zu bevorzugen.
Supercat
@supercat, ich denke, der MSP430, den wir früher verwendet haben, könnte "Modulation" verwenden, die beim ersten Bit einen hohen Fehler ergab, sich aber gegenüber den Bits verbesserte.
Kortuk
2

Bemerkenswert ist auch, dass der Linux-Treiber derzeit Geschwindigkeiten (nur?) Bis zu 460800 Baud unterstützt.

Brad Hein
quelle
2
Nicht ganz richtig, obwohl es ein leichter Fehler ist. Die Auswahl der BPS-Rate unter Linux muss POSIX-kompatibel sein, und es gibt auch viel emotionales Gepäck aus den siebziger Jahren. Früher konnten Sie beispielsweise nur bis zu 38400 auswählen. Später konnten Sie ein wenig umdrehen, und 57600 und 115200 wurden ebenfalls verfügbar gemacht. Dies ist alles auf der Betriebssystemseite, nicht auf der Hardwareseite. Moderne Fahrer müssen immer noch die ehrwürdigen BxxxxFlaggen unterstützen, können aber auch benutzerdefinierte Preise festlegen. Schauen Sie sich get_ftdi_divisor()(Zeile 1077) im Treiber an. Sie können auf dem FT232H benutzerdefinierte BPS-Raten von bis zu 12.000.000 festlegen.
Alexios