Detect EEPROm with vend_ax Firmware in FX2LP | Cypress Semiconductor
Detect EEPROm with vend_ax Firmware in FX2LP
I wrote a tool for programming the large EEPROM connected to FX2LP via WinUSB. It works fine but I cannot correctly detect the EEPROM size using the 0xA5 vendor request.
I stop the CPU by writing 0x01 to 0xE600 via the 0xA0 request. After this I download the complete vend_ax in one block to the ram starting at 0x0000. After sending 0x00 to the 0xE600 the vend_ax is running and responding on the vendor requests. I can program and read the connected EEPROM. But the I2C Type request 0xA5 always reflect the EEPROM state at power-up. For firmware Update, we disable the 24C64 EEPROM by pulling down the A0 line to ground. Even if I remove the jumper before or after downloading and starting the vend_ax firmware, the A5 request always gives me 0x00. If the jumper is removed at power-up, the A5 gives me the correct 0x01. If I remove the EEPROM detection all works great, buts we want to go the safe way...
What are we doing wrong? I used the FXEeprom and fxload-libusb code together with the vend_ax application note for understanding the 2nd stage bootloader function. I use the vend_ax.hex from the fxload-libusb project. With the extracted vend_ax.hex from the source of FXEeprom Example the behavior is the same (but the programming itself is much slower...).