I'm still a neophyte at this myself. What board are you using and how is it plugged in? I found that at least the eval board I'm using does not always like being plugged into a hub. I have seen the PID == 0x1003 when I do this. It will sometimes initialize as low speed too.
I found that the board will initialize better when plugged directly into the PC, though sometimes I still have problems getting it to initialize properly. I assumed it might be the eval board I'm using which is an inexpensive board from China (Delada brand). Sometimes I still have to plug it in and unplug it a few times to get it to work.
I've been assuming it's the board and not the microcontroller or driver that is the problem, though I'm not sure. It will be a few weeks before I have prototype hardware from my customer. I wasn't going to try tracking down the issue until I had eliminated a few variables.
OSR, who is one of the best resources for Windows driver development, produces a test board using the CY7C68013A as a platform for developing USB device drivers. They recommend against using Ezusbdrv.sys which was the old driver for the FX family of microcontrollers. They say they have seen a lot of problems with ezusbdrv.sys. I don't know if there is any overlap between that driver and CyUSB.sys and if the instability issues with ezusbdrv.sys have been carried over.
I'm using this
A few days ago I could use to properly CYCONSOLE me correctly recognized the device and could also perform transfers.
The problem arose when I loaded the hex file on the application CYSTREAM, and let me know how can I remove it .... The Cypress offers some solution or should I go to the brain only technology?
The only reason for this could be either you have burned the firmware into eeprom or scripting has been implemented.
FX2LP can renumerate as:
1. It checks for the eeprom first. if it is there it checks whether 1st byte is 0xc0 or 0xc2 if not it enumerates as default device with pid 8613.
2. if it finds a 0xc2 it knows that eeprom is large and loads the firmware into its internal ram from eeprom.I believe this is the most likely case so try writing some value as 1st byte of eeprom (except 0xc0 or 0xc2). For this you can use cyconsole after loading vend_ax example.
3. if it finds a 0xc0 it will enumerate as per the vid pid provided into eeprom.Also if scripting is implemented, the host driver will load a new firmware into device and it will renumerate.
If you can attach some documentation provided with the board i will be able to help more.
I solved using this program
and writing in the first byte in eeprom 0x01 using the-c option
I'm looking for a way to load a firmware (hex files) via my user application and not with using only CYCONSOLE.
because i need to configure the device every time i connect it to the pc
Now I have a major problem: after disabling the EEPROM at the hardware level, by connecting the device to pc not longer able to successfully install the driver CyUSB, Windows 7 will return the error code 43, what can it be?
If you need to write a host application to load firmware to the device, there is already one available in VC++ here : "http://www.cypress.com/?rID=40317".
For the code 43 error here is a information link:"http://support.microsoft.com/kb/310123#".
Also I would like to point out that as you were using scripting, you cannot disable eeprom because you need to use small eeprom to store your vid pid and 1st byte should be 0xc0.
If you are not interested in using the scripting option and always want to load the firmware using your host application then you may disable the eeprom.
Yes i just read the application note about firmware download using cyconsole scripting capabilities. do you know if there's an example project about streaming and saving the receveid byte on a file? i've found only streamer
No you wont find a example which does exactly this but you can modify streamer as per your needs.