Upload EEPROM FX2LP issues

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
PaRa_4555216
Level 1
Level 1

Hi, using Cypress FX2LP, we are currently storing our MCU firmware in the EEPROM, what I will call the 'main' firmware.   We have a second/alternate MCU firmware program, whose sole purpose is to function as a JTAG bridge to upload the firmware for an FPGA downstream.  This allows us to upload the FPGA firmware without needing physical JTAG. 

This alternate firmware is considered a separate device on the system.  The .sys driver is identical, merely a copy of the first, with a slightly modified .inf.   We are currently using the latest driver for both (CyUSB3.sys)  

Initially, they used the same PIDs.   However we switched to have the alternate firmware use a different PID to more easily identify it as a separate device.   

There are a few issues

1) When switching between the main firmware and the alternate firmware, a hard reboot is required.   However, when switching from the alternate firmware to the main firmware, this does not appear necessary.  Windows immediately recognizes the new device in device manager, and a visual indicator we have on the board changes.

2) When switching to the alternate firmware, sometimes it requires more than one power cycle.   Windows will issue a message of 'USB Device Not Recognized'

3) Also when switching from the alternate firmware to the main firmware, I cannot lock the EEPROM after the write is finished, because the device handle is invalid.  I suppose this makes sense because the main firmware somehow triggers an immediate device reboot.

4) Uploading the main firmware will sometimes just fail.   Thankfully a hard power cycle or two seems to clear things so the device is not bricked and I have always been able to get back to the main firmware.

I am not familiar with the intricate details of the firmware, but could it be the firmware(s)  or could there be an other issue?

Thanks for any help.

0 Likes
1 Solution

Hi,

It appears it was a timing issue.  After EEPROM update, the power needs to off be for about five(5) seconds. After power on, my script waits about five(5) seconds for the device to refresh.    This isn't such a burden to our application so this our solution.   My script has run successfully almost 100 times now. 

View solution in original post

0 Likes
2 Replies
Sananya_14
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

Hi,

-Please clarify how you are currently switching to the alternate firmware from the main firmware. Are you using a script file?

-For the error seen when using the alternate firmware, could you please share the firmware source?

-Please confirm if you mean the EEPROM boot up fails to enumerate the device with the main firmware or it is some other issue?

Best Regards,

Sananya

0 Likes

Hi,

It appears it was a timing issue.  After EEPROM update, the power needs to off be for about five(5) seconds. After power on, my script waits about five(5) seconds for the device to refresh.    This isn't such a burden to our application so this our solution.   My script has run successfully almost 100 times now. 

0 Likes