Débit en bauds FTDI FT2232H (USB <-> UART)?

8

Quelqu'un a utilisé l'une des puces FT2232H de FTDI?

Plus précisément, comment déterminez-vous les débits en bauds autorisés?

La fiche technique est un peu vague, et je dois choisir quelque chose dans la gamme 1-3 MBaud, mais j'ai besoin de savoir quelles sont mes options.

Jason S
la source

Réponses:

7

J'ai eu ce problème également. FTDI considère qu'il s'agit plus d'un problème de pilote que d'un problème de puce. Rendez -vous sur la note App FTDI zone et regardez la « AN_120 Aliasing VCP Tarifs baud » PDF appnote.

todbot
la source
La note de l'application vous indique exactement ce que vous pouvez sélectionner, puis vous devez vous assurer que votre microcontrôleur peut faire le même débit en bauds avec moins de 10% d'erreur.
Kortuk
dix%? Une erreur de 10% est beaucoup trop élevée pour de bonnes communications UART ... généralement, c'est quelque chose comme +/- 3%.
Jason S
S'il y a une horloge parfaite d'un côté, vous pouvez avoir jusqu'à 10% d'erreur de l'autre (en utilisant des données 8 bits, 1 démarrage, 1 arrêt) sans erreur. Vous ajoutez la parité, vous devez diminuer cette erreur maximale. Cependant, normalement, les deux côtés ne sont pas parfaits, et vous devez réduire cette surcharge car les deux l'ont.
Kortuk
@Kortuk: Si l'erreur était connue dans une certaine direction, on pourrait prévoir une tolérance d'extrémité distante, par exemple de 0 à 10% rapide, mais si cela se produit, les communications peuvent échouer si l'extrémité distante est lente de 0,01%. De nombreuses conceptions UART ont des plages d'erreur presque symétriques, bien que certaines suréchantillonnées 4x soient asymétriques; Je n'en ai jamais vu un qui permettait à l'utilisateur d'ajuster le timing du bit de démarrage pour favoriser une télécommande plus rapide ou plus lente.
supercat
@supercat, je pense que le MSP430 que nous utilisions, nous pourrions utiliser la "modulation" qui a donné une erreur élevée sur le premier bit mais s'est améliorée sur les bits.
Kortuk
2

Il convient également de noter que le pilote Linux prend actuellement en charge des vitesses (uniquement?) Jusqu'à 460800 bauds.

Brad Hein
la source
2
Pas tout à fait vrai, bien que ce soit une erreur facile à faire. La sélection du taux BPS sur Linux doit être compatible POSIX, et il y a aussi beaucoup de bagages émotionnels des années 70. Par exemple, autrefois, vous ne pouviez en sélectionner que jusqu'à 38400. Plus tard, vous pourriez inverser un peu et 57600 et 115200 seraient également disponibles. Tout cela est du côté du système d'exploitation, pas du côté matériel. Les pilotes modernes doivent toujours prendre en charge les vénérables Bxxxxdrapeaux, mais ils peuvent également appliquer des tarifs personnalisés. Regardez get_ftdi_divisor()(ligne 1077) dans le pilote. Vous pouvez définir des taux de BPS personnalisés jusqu'à 12 000 000 sur le FT232H.
Alexios