Purpose of the on board EEPROM on CY7C646xx

Question: When working with CY7C646xx do you need to use an EEPROM ? What is the purpose of the on board EEPROM?



The EEPROM allows you to reprogram our part with a unique VID/PID. It is fine not to have one during the development phase and use the cypress default VID/PID for the development phase.  But  for your final product you will need your own VID/PID which overwrites the default cypress VID/PID with the vendor VID/PID.  This can only be done using an external EEPROM.

One other  purpose of having the EEPROM on  the development board  is to be able to download the monitor on start-up.   Based on the contents of the EEPROM, the EZ-USB core  makes a decision about how to enumerate .  

If no EEPROM is present, or if one is present but the first byte is neither 0xB0 nor 0xB2, the EZ-USB core enumerates using internally stored descriptor data, which contains the Cypress Semiconductor VID, PID, and DID.

If a serial EEPROM is attached to the I2C bus and its first byte is 0xB0, the EZ-USB core enumerates with the same internally stored descriptor data as for the no-EEPROM case, but it supplies the PID/VID/DID data from six bytes in the external EEPROM rather than from the EZ-USB core.   The default on board EEPROM is programmed with a VID of 0x0547 and PID of 0x80.  This VID/PID is bound to the driver that downloads the monitor.  Hence on start-up the monitor is downloaded by default.