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.


2 Answers 2


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.

  • \$\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, 2009 at 20:42
  • 1
    \$\begingroup\$ 10%? 10% error is way too high for good UART communications... usually it's something like +/- 3%. \$\endgroup\$
    – Jason S
    Dec 12, 2009 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, 2010 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, 2011 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, 2011 at 23:52

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

  • 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, 2012 at 10:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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