Enumeration of EZ-USB® FX2LP™ – KBA91305

Version: **

 

Question: If both a small EEPROM and a large EEPROM are connected to FX2LP™, then from which EEPROM does the device enumerate?

 

Answer:

If both of the EEPROMs are connected, and if the small EEPROM has valid data, then FX2LP enumerates by reading the data from the small EEPROM. If the data in the small EEPROM is not valid, then it will enumerate with default descriptors.

After the power on reset, the EZ-USB® loader code initiates an I2C transfer to address 1010000 (1010 is the EEPROM class address and 000 is the sub-address). If the I2C device supplies an I2C ACK pulse, the EZ-USB loader writes a single EEPROM address byte to initialize the internal EEPROM address pointer to ‘0’. If this transfer does not return an ACK pulse, the EZ-USB loader initiates a second I2C transfer to address 10100001 (1010 is the EEPROM class address and 001 is the sub-address). If an ACK is returned by the I2C device, the EZ-USB loader writes two EEPROM address bytes to initialize the internal EEPROM address pointer to ‘0’.