10

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.

Jason S
  • 13,950
  • 3
  • 41
  • 68

2 Answers2

8

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.

Kevin Chen
  • 251
  • 2
  • 10
todbot
  • 4,616
  • 23
  • 26
  • 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. – Kortuk Dec 10 '09 at 20:42
  • 1
    10%? 10% error is way too high for good UART communications... usually it's something like +/- 3%. – Jason S Dec 12 '09 at 15:07
  • 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. – Kortuk Sep 10 '10 at 14:11
  • @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. – supercat Mar 09 '11 at 20:27
  • @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. – Kortuk Mar 09 '11 at 23:52
2

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

Brad Hein
  • 1,042
  • 3
  • 13
  • 18
  • 2
    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. – Alexios Feb 29 '12 at 10:18