Your browser does not allow scripts
Please click here to view a static table of contents without scripts
Aliasing Using the Additional FT232B Sub-Integer Divisors
Return to Introduction  Previous page  Next page
The standard FTDIPORT.INF ConfigData Baud rate table only supports the original FT8U232AM sub-integer prescalers and not the new ones added for the FT232B. To allow the addition sub-integer prescalers to be used when aliasing a Baud rate the following ConfigData entry is needed:

[FtdiPort232.NT.HW.AddReg]
HKR,,ConfigData,1,
11,00,3F,3F,10,27,00,00,88,13,00,00,C4,09,00,00,E2,04,00,00,71,02,00,00,38,41,00,00,9C,80,00,00,4E,C0,00,00,34,00,00,00,1A,00,00,00,0D,00,00,00,06,40,00,00,03,80,00,00,00,00,00,00,D0,80,00,00

(
Note - The developer should cut and paste the above entry into FTDIPORT.INF, replacing the original one)

In this case each field consists of 4 bytes, ordered as follows: Byte0,Byte1,Byte2,Byte3. Bits 13 through 0 denote the integer divisor while bits 16, 15 and 14 denote the sub-integer divisor, as follows

16,15,14 = 000 - sub-integer divisor = 0
16,15,14 = 001 - sub-integer divisor = 0.5
16,15,14 = 010 - sub-integer divisor = 0.25
16,15,14 = 011 - sub-integer divisor = 0.125
16,15,14 = 100 - sub-integer divisor = 0.375
16,15,14 = 101 - sub-integer divisor = 0.625
16,15,14 = 110 - sub-integer divisor = 0.75
16,15,14 = 111 - sub-integer divisor = 0.875

Note that this ConfigData entry is the same as before except that each field consists of 4 bytes instead of 2 bytes. The first highlighted byte in ConfigData is the Flags byte and format of the fields is determined by Bit4 of the Flags byte. In the example above, setting Flags byte to 11 means that Bit4 is set and 4 byte fields are being used.

The divisor can be extracted for each entry in a few simple steps, as shown here for the entry 35,40,01,00

Step 1 - re-order the bytes: 35,40,01,00 => 00014035 Hex
Step 2 - extract the sub-integer divisor; 16 = 1, 15 = 0, 14 = 1 => sub-integer = 0.625
Step 3 - extract the integer divisor: 13:0 = 0035 Hex = 53 Dec
Step 4 - combine the integer and sub-integer divisors: 53.625 Dec
Step 5 - divide 3000000 by the divisor => 3000000/53.625 = 55944 baud

The following lists the standard values and their respective baud rates.

10,27,00,00 => divisor = 10000, rate = 300
88,13,00,00 => divisor = 5000, rate = 600
C4,09,00,00 => divisor = 2500, rate = 1200
E2,04,00,00 => divisor = 1250, rate = 2,400
71,02,00,00 => divisor = 625, rate = 4,800
38,41,00,00 => divisor = 312.5, rate = 9,600
9C,80,00,00 => divisor = 156, rate = 19,230
4E,C0,00,00 => divisor = 78, rate = 38,461
34,00,00,00 => divisor = 52, rate = 57,692
1A,00,00,00 => divisor = 26, rate = 115,384
0D,00,00,00 => divisor = 13, rate = 230,769
06,40,00,00 => divisor = 6.5, rate = 461,538
03,80,00,00 => divisor = 3.25, rate = 923,076
00,00,00,00 => RESERVED
D0,80,00,00 => divisor = 208.25, rate = 14406


To alias a rate of 920k baud to the standard 56k baud menu option under windows:

- change the 34,00,00,00 entry to 03,80,00,00 (simple as both of the values are available from the previous list)


To alias a rate of 197k baud to the standard 4,800 baud menu option under windows :

- find the best divisor, check that it is sufficiently accurate and then modify the appropriate INF file entry.

3000000/197,000 = 15.228. The best divisor is 15.25.
3000000/15.25 = 196,721. 196,721/197,000 = 99.8%. This is well within the required 3% tolerance.
Set bits 16:15:14 to 010 for a sub-integer divisor of 0.25, and the lower bits to 0F.

- replace the 71,02,00,00 entry with 0F,80,00,00.


Incorporating these two changes the FTDIPORT.INF entry becomes

[FtdiPort232.NT.HW.AddReg]
HKR,,ConfigData,1,
11,00,3F,3F,10,27,00,00,88,13,00,00,C4,09,00,00,E2,04,00,00,0F,80,00,00,38,41,00,00,9C,80,00,00,4E,C0,00,00,03,80,00,00,1A,00,00,00,0D,00,00,00,06,40,00,00,03,80,00,00,00,00,00,00,D0,80,00,00

This is for Windows 2000 and XP and the changes should be repeated in the Windows 98/ME entry also.