Bricked FX2 when trying to write VID PID into EEPROM using CyConsole | Cypress Semiconductor
Bricked FX2 when trying to write VID PID into EEPROM using CyConsole
I tried to change the defauld VID PID by writing new VID PID to an external small 128 bit EEPROM 24AA00SN with CyConsole, but I ended up 'bricking'[ my board, which means there is no response when I connected to USB port. I can not see the device listed in either device manager in Windows or lsusb in Linux. I also checked the syslog in linux and there is no conncection information about the FX2 device. I know my FX2 was "bricked" or dead. Below is the steps I did,
1) Launch CyConsole , select the target Cypress device in the window with the USB devices
2) Click on Download button and select C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.0\Firmware\Vend_ax.hex
3) Change Req to 0xA2 and HEX bytes to account for the memory intent - in my case: C0 FE FF 42 00
, wValue=0 wIndex=0, length= 5.
4) Click on Vend Req and the EEPROM content should appear in the last of the terminal window e.g.:
Toggle 8051 Reset (00)
Vendor Request (A2) 5 bytes: wValue=0 wIndex=0
0000 C0 FE FF 42 00
5) Power off the device and power on, connect again to the usb port.
Then I found my FX2 device dead. I searched on the web and found this page:
As described in the page, the possible reasons are,
- The firmware is not handling USB (config) requests and hence does not enumerate at the host computer because -either- RENUM is set to 0 and the VID,PID codes in the EEPROM are invalid -or- RENUM is set to 1 and the firmware does not handle USB requests.
- The DISCON bit is set in the EEPROM config byte and the firmware is defective and/or not enabling the USB.
- The firmware is disabling the USB (DISCON=1) and not enabling it again.
As I can not see anything in syslog, it seems that it was not because of invalid VID PID, more likely the DISCON bit in EEPROM being set to 1.If it is the case I feel very confused, as I did not set this bit at all when I tried to write EEPROM. If this bit is indeed set to 1, will the internal logic read this bit first and change the DISCON bit of register USBCS (USBCS.3) and therefore leave the FX2 device "unconnected" forever?
I also compared my steps with the steps stated in the following page:
It says in step 18,
On the CyConsole – EZUSB Interface’s Vend Req Toolbar, use the following to fill in the required fields:
Compared to this, the differences in my step 3 are the "Index" and "Length", I did not set Index values, and I set the length to 5. Will this cause the device being "bricked"?
Anyone with the similar problem?