7
\$\begingroup\$

Anyone used one of the FT2232H chips from FTDI?

Specifically, how do you figure out the permissible baud rates?

The data sheet is kind of vague, and I have to pick something in the 1-3 MBaud range but need to know what my options are.

\$\endgroup\$
7
\$\begingroup\$

I had this problem too. FTDI considers it more a driver issue than a chip issue. Head over to the FTDI App Notes area and look at the "AN_120 Aliasing VCP Baud Rates" PDF appnote.

\$\endgroup\$
  • \$\begingroup\$ The app note tells you exactly what you can select, then you need to make sure your microcontroller can do the same baud rate with less than 10% error. \$\endgroup\$ – Kortuk Dec 10 '09 at 20:42
  • \$\begingroup\$ 10%? 10% error is way too high for good UART communications... usually it's something like +/- 3%. \$\endgroup\$ – Jason S Dec 12 '09 at 15:07
  • \$\begingroup\$ If there is a perfect clock on one side, you may have up to 10% error on the other(using 8 bit data, 1 start, 1 stop) without an error. You add parity, you need to decrease that maximum error. However, normally both sides are not perfect, and you have to decrease that overhead as both have it. \$\endgroup\$ – Kortuk Sep 10 '10 at 14:11
  • \$\begingroup\$ @Kortuk: If the error was known to be in a certain direction, one could arrange for a remote-end tolerance of e.g. 0-10% fast, but if one does that communications may fail if the remote end is 0.01% slow. Many UART designs have nearly symmetrical error ranges, though some 4x-oversampled ones are asymmetric; I've never seen one that allowed to user to adjust the start-bit timing to favor a faster or slower remote, though. \$\endgroup\$ – supercat Mar 9 '11 at 20:27
  • \$\begingroup\$ @supercat, I think the MSP430 we used to use we could use "modulation" which gave high error on the first bit but improved over bits. \$\endgroup\$ – Kortuk Mar 9 '11 at 23:52
2
\$\begingroup\$

Also noteworthy is that the Linux driver presently supports speeds (only?) up to 460800 baud.

\$\endgroup\$
  • 2
    \$\begingroup\$ Not quite true, though it's an easy mistake to make. BPS rate selection on Linux has to be POSIX compatible, and there's also a lot of emotional baggage from the Seventies. E.g., it used to be you could only select up to 38400. Later, you could flip a bit and 57600 and 115200 would also be made available. This is all on the OS side, not the hardware side. Modern drivers still have to support the venerable Bxxxx flags, but they can also do custom rates. Look at get_ftdi_divisor() (line 1077) in the driver. You can set custom BPS rates up to 12,000,000 on the FT232H. \$\endgroup\$ – Alexios Feb 29 '12 at 10:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.