Hello list, I am building an eeprom file for a FT245R chip using ftdi_eeprom version 0.17.
I was expecting the following configuration to give me a value of 0x09 in the byte at eeprom address 0x00. … cha_type=FIFO cha_vcp=false #high_current=false #or true … Setting cha_type to FIFO correctly changes bit 00.0 to 1 but neither cha_vpc (channel_a_driver) nor high_current cause any further changes to the byte value. Programming with the official FTDI tools sets bit 00.3 when selecting V2XX driver, resulting in a value of 0x09 for the first byte of the FT245R eeprom. Setting the values is supposed to happen in http://developer.intra2net.com/git/?p=libftdi;a=blob;f=ftdi_eeprom/main.c;hb=HEAD 468 eeprom_set_value(ftdi, HIGH_CURRENT, cfg_getbool(cfg, "high_current")); … 536 eeprom_set_value(ftdi, CHANNEL_A_DRIVER, 537 cfg_getbool(cfg, "cha_vcp") ? DRIVER_VCP : 0); For type R the CHANNEL_A_DRIVER seems to get ignored http://developer.intra2net.com/git/?p=libftdi;a=blob;f=src/ftdi.c;hb=HEAD but there is at least code to set the high current drive, but I think the comparison in line 3183 might not work 3181 case TYPE_R: 3182 output[0x00] = type2bit(eeprom->channel_a_type, TYPE_R); 3183 if (eeprom->high_current == HIGH_CURRENT_DRIVE_R) 3184 output[0x00] |= HIGH_CURRENT_DRIVE_R; 3185 if (eeprom->external_oscillator) 3186 output[0x00] |= 0x02; 3187 output[0x01] = 0x40; /* Hard coded Endpoint Size*/ http://developer.intra2net.com/git/?p=libftdi;a=blob;f=src/ftdi.h;hb=HEAD 473 #define HIGH_CURRENT_DRIVE_R 0x04 Am I missing something or is this a bug/missing feature? Thanks, Holger -- libftdi - see http://www.intra2net.com/en/developer/libftdi for details. To unsubscribe send a mail to [email protected]
