X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=doc%2FEEPROM-structure;h=09c3e45ef15cfe943ba5ecf86253d8336fbd8554;hp=731c5595aa05679d6c660ccaa0981848251f430e;hb=3c75ad2a59c0ff5b1def6a0b48d8c6276e07b95f;hpb=7345e9551c75957b19de981846bc975c487dee09 diff --git a/doc/EEPROM-structure b/doc/EEPROM-structure index 731c559..09c3e45 100644 --- a/doc/EEPROM-structure +++ b/doc/EEPROM-structure @@ -3,18 +3,17 @@ Here we try to document what we know about the EEPROM Structure. Even with a 93xx66 EEPROM, at maximum 256 Bytes are used All important things happen in the first -0x14(FT232/245), 0x16(FT2232CD), 0x18(FT232/245R) or 0x1a (FT2232H/4432H) -bytes +0x14(FT232/245), 0x16(FT2232CD), 0x18(FT232/245R) or 0x1a (FT2232H/4432H) bytes -Type | Use Extra EEPROM Space +Type | Use extra EEPROM space FT2XXB | No Byte.BIT| TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H -00.0 | 0 0 channel_a_type channel_a_type channel_a_type +00.0 | 0 0 channel_a_type channel_a_type channel_a_type 00.1 | 0 0 channel_a_type channel_a_type channel_a_type 00.2 | 0 0 channel_a_type high_current channel_a_type channel_a_type 00.3 | 0 0 channel_a_driver channel_a_driver channel_a_driver channel_a_driver -00.4 | 0 0 high_current_a 0 0 0 +00.4 | 0 0 high_current_a 0 0 0 00.5 | 0 0 0 0 0 0 00.6 | 0 0 0 0 0 0 00.7 | 0 0 0 0 SUSPEND_DBUS7 0 @@ -25,41 +24,45 @@ On TYPE_R 00.3 set mean D2XX, on other devices VCP 01.1 | 0 0 channel_b_type channel_b_type channel_b_type 01.2 | 0 0 channel_b_type 0 channel_b_type channel_b_type 01.3 | 0 0 channel_b_driver 0 channel_b_driver channel_b_driver -01.4 | 0 0 high_current_b 0 0 0 +01.4 | 0 0 high_current_b 0 0 0 01.5 | 0 0 0 0 0 0 -01.6 | 0 0 0 0 0 +01.6 | 0 0 0 0 0 01.7 | 0 0 0 0 0 0 -Fixme: Missing 4232H validation and channel_c_driver, channel_d_driver, channel_a|b|c|d_rs484enable +Fixme: Missing 4232H validation and channel_c_driver, channel_d_driver, channel_a|b|c|d_rs484enable -02 | VID-LSB(all) -03 | VID-MSB(all) -04 | PID-LSB(all) -05 | PID-MSB(all) -06 | REL-LSB (not tested on TYPE_AM, TYPE_BM and TYPE_4232H) -07 | REL-MSB (not tested on TYPE_AM, TYPE_BM and TYPE_4232H) +02 | Vendor ID (VID) LSB (all) +03 | Vendor ID (VID) MSB (all) +04 | Product ID (PID) LSB (all) +05 | Product ID (PID) MSB (all) +06 | Device release number LSB (not tested on TYPE_4232H) +07 | Device release number MSB (not tested on TYPE_4232H) | -08.4 | Self-Wakeup -08.5 | Remote-Wakeup -08.6 | Self-Powered +08.4 | Battery powered +08.5 | Remote wakeup +08.6 | Self powered: 1, bus powered: 0 08.7 | Always 1 | -09 | MaxPower(maA/2) +09 | Max power (mA/2) | Byte.BIT| TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H -0a.0 | 0 IsoIn -0a.1 | 0 IsoOut +0a.0 | 0 IsoIn IsoIn part A 0 0 0 +0a.1 | 0 IsoOut IsoOut part A 0 0 0 0a.2 | 0 suspend_pull_down suspend_pull_down suspend_pull_down 0a.3 | 0 use_serial use_serial -0a.4 | 0 change_usb_version change_usb_version +0a.4 | 0 change_usb_version change_usb_version +0a.5 | 0 0 IsoIn part B 0 0 0 +0a.6 | 0 0 IsoOut part B 0 0 0 +0a.7 | 0 - reserved + | 0b | TYPE_R Bitmask Invert, 0 else Byte | TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H -0c | ? USB-VER-LSB USB-VER-LSB 0 ? ? -0d | ? USB-VER-MSB USB-VER-MSB 0 ? ? -On several FT2232H different values were observed - +0c | 0 USB-VER-LSB USB-VER-LSB 0 ? ? +0d | 0 USB-VER-MSB USB-VER-MSB 0 ? ? +(On several FT2232H different values were observed -> The value is unused + if change USB version is not set, so it might contain garbage) 0e | OFFSET Vendor 0f | Len VENDOR @@ -71,19 +74,24 @@ On several FT2232H different values were observed 13 | Length Serial Byte.BIT| TYPE_AM TYPE_BM TYPE_2232C TYPE_R TYPE_2232H TYPE_4232H -14.3:0 | UA UA CHIP CBUS[0] AL A -14.7:0 | UA UA CHIP CBUS[1] AH B -15.3:0 | UA UA 0 CBUS[2] BL C -15.7:0 | UA UA 0 CBUS[3] BH D -16.3:0 | UA UA UA CBUS[4] 0 0 -16.7:0 | UA UA UA 0 0 0 - +14.3:0 | UA UA CHIP CBUS[0] AL A +14.7:0 | UA UA CHIP CBUS[1] AH B +15.3:0 | UA UA 0 CBUS[2] BL C +15.7:0 | UA UA 0 CBUS[3] BH D +16.3:0 | UA UA UA CBUS[4] 0 0 +16.7:0 | UA UA UA 0 0 0 + +CHIP values: +0x46: EEPROM is a 93xx46 +0x56: EEPROM is a 93xx56 +0x66: EEPROM is a 93xx66 + 17 UA UA UA 0 0 0 -18 UA UA UA VENDOR CHIP CHIP -19 UA UA UA VENDOR 0 0 +18 UA UA UA VENDOR CHIP CHIP +19 UA UA UA VENDOR 0 0 -1a UA(all) +1a UA (all) Mprog doesn's seem to write this: After last string -0x02 0x03 0x01 with PnP == 0 \ No newline at end of file +0x02 0x03 0x01 with PnP == 0