USB-232U and USB-485Ui
----------------------
The USB-232U and USB-485Ui are improved versions of the USB-232 and
USB-485i, supporting additional baud rates.  These devices are based on
the FT232BM USB UART.  The following baud rates are supported by the
beta-test version of the Windows drivers with an accuracy of 3% or
better (typically better for lower baud rates).  The ranges shown to the
left outside the parentheses are the requested baud rates and the ranges
shown to the right in parentheses are the corresponding extremes of the
actually generated baud rates.

     Baud Requested    (Baud Generated)
  -----------------  ------------------
      184 - 1369863     (184 - 1333333)
  1373878 - 1449275 (1411765 - 1411765)
  1456311 - 1545000 (1500000 - 1500000)
  1941748 - 2060000 (2000000 - 2000000)
  2912622 - 3090000 (3000000 - 3000000)

If the Windows driver is requested to use a baud rate outside the above
ranges, it will generally default to using a baud rate of 115200
(actually 115385).  The following specified ranges are an exception to
this rule, due to hardware restrictions. The values shown to the right
of the '=>' sign are the baud rates actually generated for the
corresponding ranges specified on the left:

     Baud Requested  (Expected)    Generated
  -----------------  ----------    ---------
  1557552 - 1648351   (1600000)  =>  2000000
  1664355 - 1765713   (1714286)  =>  2000000
  1797914 - 1907406   (1846154)  =>  2000000
  2126001 - 2255474   (2181818)  =>  2000000
  2330098 - 2472000   (2400000)  =>  2000000
  2600555 - 2758928   (2666666)  =>  2000000

The actual baud rates that the FT232BM USB UART can generate are given
by the formula:

  Baud = 24000000 / N

where N is any integer in the range 8 to 131071. However, the UART does
not generate the correct baud rates if N = 9, N = 10, N = 11, N = 13,
N = 14, or N = 15 (the UART behaves as though N = 12 in these cases).

Conversely, the formula may be reversed to produce a baud rate divisor
as follows:

  N = 24000000 / Baud


Modifying predefined baud rate divisors for USB-232U and USB-485Ui
------------------------------------------------------------------
Ideally, an application will allow any desired baud rate to be selected,
but some applications only allow the baud rate to be chosen from a
restricted, predefined set.  FTDI's application note AN232-01 describes
how to modify the predefined baud rate divisors to generate a different
baud rate than the one selected by the application.

If following FTDI's application note AN232-01 for modifying the
predefined baud rate divisors in FTDIPORT.INF, divide the above result,
N, by 8 to produce an integer part and fractional part.  There are a
couple of exceptions: when N = 8 (3000000 baud), use the value 0 instead
of 1 (8/8); when N = 12 (2000000 baud), use the value 1 instead of 1.5
(12/8).

There are two versions of the application note AN232-01: one uses 2-byte
fields and the other uses 4-byte fields.  The standard FTDIPORT.INF file
uses 2-byte fields for the divisors specified in the ConfigData entry.
With the current beta version of the driver, either 2-byte fields or
4-byte fields may be used, but the July 2002 release of the driver only
supports 2-byte fields.  If fractional parts other than 0, 0.125, 0.25
or 0.5 are needed, then the 4-byte fields are required to encode them.
Please note that fractional parts other than 0, 0.125, 0.25 and 0.5 are
not supported by the original USB-232 and USB-485i devices, based on the
FT8U232AM UART.

Rather than modifying the FTDIPORT.INF file prior to installing the
device, it is also possible to modify the registry entry for the device
after installation.  The ConfigData registry value is of type REG_BINARY
and may be formatted as a list of 2-byte fields or 4-byte fields,
depending on bit 4 of the first byte, as described in the application
notes.

For the Windows 2000/Windows XP driver, the registry value may be found
at the following location:

    HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Enum/FTDIBUS/
    VID_0403+PID_6001+MV??????A/0000/Device Parameters/ConfigData

For the Windows 98/Windows ME driver, the registry value may be found at
the following location:

    HKEY_LOCAL_MACHINE/Enum/FTDIBUS/
    VID_0403+PID_6001+MV??????A/0000/ConfigData

The portion marked "??????" is unique for each device.


USB-232 and USB-485i
--------------------
The USB-232 and USB-485i are older versions of the USB-232U and
USB-485Ui and support fewer baud rates.  These devices are based on the
FT8U232AM USB UART.  Using the July 2002 release of the Windows drivers
or the current beta version of the driver, the following baud rates are
supported with an accuracy of 3% or better (typically better for lower
baud rates).  The ranges shown to the left outside the parentheses are
the requested baud rates and the ranges shown to the right in
parentheses are the corresponding extremes of the actually generated
baud rates.

     Baud Requested    (Baud Generated)
  -----------------  ------------------
      184 -  386250     (184 -  375000)
   388350 -  441428  (400000 -  428571)
   448096 -  515000  (461538 -  500000)
   529567 -  618000  (545455 -  600000)
   647249 -  772500  (666667 -  750000)
   832177 -  882856  (857143 -  857143)
   896191 - 1030000  (923077 - 1000000)
  1165049 - 1236000 (1200000 - 1200000)
  1294499 - 1369863 (1333333 - 1333333)
  1373878 - 1449275 (1411765 - 1411765)
  1456311 - 1545000 (1500000 - 1500000)
  2912622 - 3090000 (3000000 - 3000000)

If the Windows driver is requested to use a baud rate outside the
above ranges, it will generally default to using a baud rate of 115200
(actually 115385).  The following specified ranges are an exception to
this rule due to faulty logic. The values shown to the right of the
'=>' sign are the baud rates actually generated for the corresponding
ranges specified on the left:

  1941747 - 2060000 (2000000) => 1000000 [2000000 / 2]
  2330098 - 2472000 (2400000) =>  600000 [2400000 / 4]
  2600555 - 2758928 (2666666) =>  333333 [2666666 / 8]

The actual baud rates that the device can generate are given by the
formula:

  Baud = 3000000 / (N + F)

where N is any integer in the range 1 to 16383 and F has any of the
following values: 0, 0.125, 0.25 or 0.5.  However, the UART does not
generate the correct baud rates if N = 1 AND F > 0.

Conversely, the formula may be reversed to produce integral and
fractional parts of a baud rate divisor as follows:

  N + F = 3000000 / Baud

However, note that same constraints apply for valid values of N and F.


Modifying predefined baud rate divisors for USB-232 and USB-485i
----------------------------------------------------------------
Ideally, an application will allow any desired baud rate to be selected,
but some applications only allow the baud rate to be chosen from a
restricted, predefined set.  FTDI's application note AN232-01 describes
how to modify the predefined baud rate divisors to generate a different
baud rate than the one selected by the application.

If following FTDI's application note AN232-01 for modifying the
predefined baud rate divisors in FTDIPORT.INF, the N + F values
determined above may be used with one exception:  when N = 1 and F = 0
(3000000 baud), use the value N = 0 instead of N = 1.

There are two versions of the application note AN232-01: one uses 2-byte
fields and the other uses 4-byte fields.  The standard FTDIPORT.INF file
uses 2-byte fields for the divisors specified in the ConfigData entry.
With the current beta version of the driver, either 2-byte fields or
4-byte fields may be used, but the July 2002 release of the driver only
supports 2-byte fields.  There is no benefit in using 4-byte fields for
the USB-232 and USB-485i, as all the fractional parts of the divisor
that are supported by these devices may be encoded using 2-byte fields.

Rather than modifying the FTDIPORT.INF file prior to installing the
device, it is also possible to modify the registry entry for the device
after installation.  The ConfigData registry value is of type REG_BINARY
and may be formatted as a list of 2-byte fields or 4-byte fields,
depending on bit 4 of the first byte, as described in the application
notes.

For the Windows 2000/Windows XP driver, the registry value may be found
at the following location:

    HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Enum/FTDIBUS/
    VID_0403+PID_6001+MV??????A/0000/Device Parameters/ConfigData

For the Windows 98/Windows ME driver, the registry value may be found at
the following location:

    HKEY_LOCAL_MACHINE/Enum/FTDIBUS/
    VID_0403+PID_6001+MV??????A/0000/ConfigData

The portion marked "??????" is unique for each device.
