Download vend_ax (.hex) example to the board using Cyconsole. Now you can use 0xA9 vendor command to write to the EEPROM. In your case since you want to program just VID/PID, send the data in the C0 boot Load format specified in FX2LP TRM.
NX2LP Manufacturing utility is used to work with NX2LP-Flex/NX2LP or FX2LP emulating NX2LP-Flex not for writing VID/PID to EEPROM.
Thank you for your quick reply. I understand now, why I can not use the NX2LP Programmer Utility. I have download the Vend_ax (.hex) to the board and I can do all that, but I don't know where/how to enter the VID/PID?
I have also read the AN50963.pdf, page 3,- Programming small EEPROM -, that explains the same procedure with downloading Vend_ax (.hex) and.... I just don't understand the last part, where or how to enter VID/PID! Would you please explain it to me, as a new been could understand it.
In that application note (AN50963), In the programming small EEPROM section
You'll have to use A9 instead of A2 (since yours is a 32k EEPROM it would be connected as large EEPROM) then in that picture of CyConsole inside the red oval you can see a hex bytes field. Enter your VID/PID in the format shown in the programming small EEPROM section i.e. C0, VIDL, VIDH, PIDL, PIDH
Mistook the RAM for EEPROM.
If yours is a small EEPROM (EEPROM with all address lines A0, A1 and A2 tied to ground and used just for holding the VID/PID) then use A2 else you'll have to use A9 like I suggested above.
Thank you very much for your help, I find out how to do it now.
I have the same problem as described above, i.e:
1. i use Cypress and EZ-USB FX2LP and programmed as described in the AN50963.pdf , using evaluation board CY3687.
2. First i connect to the safe EEPROM and use the default VID/PID.
3. After the board enumarates im switching the DVK to small EEPROM.
4. Short pins 2-3 of JP7 to enable writes to small EEPROM-U8 (Write protect pins for small EEPROM).
5. Download Vend_Ac.hex to the RAM.
6. Send the command 0xA2 with value :0x00 index :0x00 and the format shown in the programming small EEPROM section: C0, VIDL, VIDH, PIDL, PIDH. (0xC0 0x04 0xB4 0x10 0x10)
7. Unpluged the device and then pluged it back.
Now i see the problem:
The device manager doesnt enumarate with the new VID/PID ( and the old - the USB not recognized at all ). The application (Cypress USB Console ) is stuck and i must burn the EEPROM again with the cypress default .iic file LP18_dvk.iic.
I need your help....
Forget the Vend-ex way of doing it.
Copy one of .iic files. (Lets say, bulkloop.iic provided with the sdk). Open with any hex editor.
Change the first 5 bytes to the required format (0xC0, VID, PID). Delete rest of the bytes.
Now you can use this iic file to program small eeprom. USB boot-> Enable small eeprom-> Cyconsole->Program->Small EEPROM->(Choose the iic file)
Let me know if you need more explanation.
Thanks for your quick response!!.
I tried to implement your recomendations and its doesnt work again, but when i change the format to C2 instead of C0 , it is worked (The board enumaration ).
i tried to understand the differnce , and why it is doesnt work, and i find out that there is a difference between FX2LP TRM & FX2LP18 TRM !!!
In FX2LP it is support the 'C0 load' ( Can see in paragraph 3.4.2) and in FX2LP18 it is not support the 'C0 load' ( There is any refer to 'C0 load' ), Your data sheets ( AN50963.pdf ) not refer at all for these difference and unfortunately i lost time to understand these differece!!!
So if im reback to my question , i want to implement "Automated Firmware Download from USB Using Script File from USB" as described in AN50963.pdf , i can do it with 'C2 load' ( i.e : (0xC2, VID, PID) format ) ? or there is other why to work with?
Were you planning to have an small EEPROM just to store C0 Load information and then use script method?
I went through the FX2LP18 TRM, there is no mention of C0 Load, but section 3.5 does mention c0 and c2 eeprom load methods.
It needs a little more clarification.
If c0 load is not supported I guess you will have to store the firmware in EEPROM and use c2 load method. Or use a dummy firmware in EEPROM with c2 load and then tie the spt file to the new VID/PID with which the device comes up (from dummy iic stored in eeprom).
Thanks for your response....
I find out cypress application note AN6076 "Differences Between EZ-USB FX2LP and MoBL-USB X2LP18" and in the section of "Boot-up Differences" , i read that FX2LP18 not support 'C0 load' and just 'C2 load' .
My question is :
Is the only way I can load my device is by burn the FW to the EEPROM ( ' c2 load' )???? ( This is not a good way for me and i can't use it! )
Or there is another method by .spt file to this ?
And if the answer is "yes" ( by .spt file) please guid me how to do this ( step by step) as a new user.
You can use the default VID/PID of cypress and use the script method. There is no need for EEPROM in this case. It is fine to use Cypress VID/PId as long as it is just for developoement phase.
We recommend you use your company's VID/PId in your final product. And for that since Fx2lp18 supports only C2 boot, you will have to use big enough EEPROM to store the entire firmware.
We do not recommend the using Cypress VID/PID in final product because once you develop a script for your product( with cypress VID/PID ) and bind it, any cypress device you or your customers will use, will get binded to your driver and script.
If you want to use C0 load method, you should consider going for FX2LP.
I saw from the “device manger” -> “Driver file details “ that the OS loaded my .spt ( bulkloop.spt )
file and cypress .sys file J.
Now I have another question:
These is mean that my project .hex file loaded to the RAM ?
I’m asking these question because if I try to send command from cypress CyConsole ( “Bulk Transfer” command ) I can’t do these…
But if i loaded directly ( bulkloop.hex ) to the RAM I can send “Bulk Transfer” command?
There are another steps that I missed? Can you explain me?
Please attach the .spt file here. We would like to try the same.