I am zhangyj, I have developed a project, that using CY7C68013A in slaveFIFO mode. Now I want to download the firmware to EEPROM,
I have created the IIC file by hex2bix, and download it to EEPROM.
USB device can be detected, and enumerate two times, but the firmware can not work, if I use USB cable download the firmware to 68013 directly, it will work.
Anyone can help me, thanks!
hex2bix -i -o abc.iic hxd_usb_load.hex -f 0xC2
The hxd_usb_load.hex is the firmware that can work if download from usb.
I also try the command:
hex2bix -i -o abc.iic hxd_usb_load.hex -f 0xC2 -v 0x0547 -p 0x1002,
The results are same, iic file can not work after downlaod to EEPROm(24LC64, pin0 pull-up).
Have you checked with any working iic file?. Download any working iic(Eg, bulkloop.iic available with DVK) file and see whether it works. What is the VID/PID being displayed? Does it match with the VID/PID in firmware?
Hi Guofeng Xue,
You are saying that FX2LP is not booting from the EEPROM that is there on your board. I am assuming that you are seeing this with your custom board.
Please let me know if you are able to programm the EEPROM successfully. Also let me know the EEPROM part number that you are using. Also, share the schematics and hex file, if possible.
Thanks for your reply. The hex adn iic files are in the attach file. The command used to generate iic file, is like this:
C:\Cypress\USB\Bin\Hex2bix.exe -i -o tcxmaster.iic tcxmaster.hex -f 0xc2 -v 0x1234 -p 0x5678
also, I tried another way, in the follows, but the results are the same.
C:\Cypress\USB\Bin\Hex2bix.exe -i -f 0xc2 -v 0x1234 -p 0x5678 -c 0x40 tcxmaster.hex
Thank you very much.
Have you tried programming your board with the .iic file that I have attached.
Please let me know the result after you test it at your end.
Yeah, I have tried to use the file you gave. but the result is the same. PC can recognize the device, read the VID and PID, but they can not communicate with each other.
By the way, in the file you give to me, i find that th second and third byte data are not 0x34 and 0x12. If the iic file is generated the mmand of hex2bix.exe the second and third byte data should be the VID. Why? Thanks for your reply and happy to discus with you.
I tested till FX2LP enumerates with the code present in the EEPROM.
What am I supposed to try on that after enumeration. please let me know so that I can try the same at my end.
1. Open the cy console use lg eeprom to download iic file into the target eeprom in the device.
2. turn off the device and then turn on it.
3. get the vid and pid using cy console.
4. click the "bulk trans" button on the cy console interface. if the conmunication is successfull, the transfored data will be printed on the console, if not. it will print the "trans... failed"
Bulk transfers are failing even if I download the firmware into FX2LP's RAM through USB.
Same is the case when FX2LP boots from the connected EEPROM.
what is the behaviour that you are obsering at your end. Is there an issue with booting from EEPROM or with doing bulk transfers?.
Please let me know.
it can boot from eeprom, because we can get the vid and pid correctly, but it can not comunicate after booting from eeprom such as bulk transfer.
I am seeing the BULK transfers getting failed in both cases. Please have a look at the attached image showing the Bulk transfers getting failed even after downloading your hex file into FX2LP's RAM.
Do one thing. Share your firmware project source code. I will take a look at it by adding some debug messages.
You can also try adding some debug messages (gets printed on UART), if you have that facility on your board.
I can not do any bulk transfers even with the firmware that you sent me. I will update you once I have any findings.
Please try to change the vid and pid in dscr.a51 file. Rebuild them after the changing ,and then try the bulk transfer in the cy console. i think .hex file will work well.
;; dw 0b404H ;; Vendor ID
;; dw 1386H ;; Product ID (Sample Device)
dw 07360H ;; Vendor ID
dw 0210H ;; Product ID (Sample Device)
dw 0b404H ;; Vendor ID
dw 1386H ;; Product ID (Sample Device)
;; dw 07360H ;; Vendor ID
;; dw 0210H ;; Product ID (Sample Device)
Finally，I solve the problem. The key point is that 68013's configuration needs IFCLK. In the firmware I designed, it use external IFCLK, which drive from Xilinx FPGA. After power on, 68013 reads firmware from eeprom, and configure itself, but xilnx fpga's initiation is slower than 68013, so it cannot drive IFCLK to 68013. So 68013 cannot be configured correctly . After changing the fpga and give a reset to 68013, it works well.