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]  

Reply via email to