Reply by nappy May 22, 20062006-05-22
> I'd suggest contacting Cypress Tech Support about obtaining such a driver. > If they say no such driver is available, then it's pretty much though > luck. The development kit does provide all necessary documentation for > writing such a driver, though. Writing one and putting it for public > distribution would be a blessing for many FX users, I'm sure. >
Thank you for your posts. There is no such document in the development kit but I get the general idea.
> Regards, > Antti Keskinen >
Reply by nappy May 20, 20062006-05-20
Well... I have a nice neat method right now which is done in the app but it 
would be good to know how to do this..

Thanks for the posts.


"Max" <nospam@hotmail.com> wrote in message 
news:OCwbg.16920$zn1.9939@clgrps13...
>> Great! hey.. where do I learn about compiling into a sys file to load >> the firmware from the inf? > > check out the Cypress App note AN041 "EZ loader custom USB Firmware > Loader Driver" > Basically, you > 1) compile to hex > 2) use hex2bin to create a text file > 3) cut and paste into the firmware.c file that is part of the system files > that you will compile > 4) use the Windows DDK to compile to a system file > 5) Define the inf to load the system file > > You do need the Windows DDK but if you don't have it, don't buy it. You > can > actually download it as part of another (free) Windows package. I can't > recall off the top of > my head but I could search for it if you need to know. > M > >
Reply by Max May 20, 20062006-05-20
>> Great! hey.. where do I learn about compiling into a sys file to load >> the firmware from the inf? >> > > Open the INF file itself, and browse through it. You should find an entry > there that says the actual filename of the firmware. Just search for *.sys > inside the file. Then rename your compiled firmware file to this name, and > move it to C:\Windows\Win32 (or wherever your Win32 directory is). It > should > now load itself into the device when it's connected to the USB bus. > > It might also be that the CyUSB.sys is the 'firmware loader driver'. I > would > have to check the INF and SYS files myself to be sure of this, and see > what > they do.
Apparently there is a way that you can load CyUSB.sys and then define a script (that is called from within the inf) that loads your firmware. I haven't tried it but it is mentioned in the CyUSB.chm help files. M
Reply by Max May 20, 20062006-05-20
> Great! hey.. where do I learn about compiling into a sys file to load > the firmware from the inf?
check out the Cypress App note AN041 "EZ loader custom USB Firmware Loader Driver" Basically, you 1) compile to hex 2) use hex2bin to create a text file 3) cut and paste into the firmware.c file that is part of the system files that you will compile 4) use the Windows DDK to compile to a system file 5) Define the inf to load the system file You do need the Windows DDK but if you don't have it, don't buy it. You can actually download it as part of another (free) Windows package. I can't recall off the top of my head but I could search for it if you need to know. M
Reply by Antti Keskinen May 19, 20062006-05-19
"nappy" <gospam@yourself.com> wrote in message 
news:EUqbg.29210$4L1.15942@newssvr11.news.prodigy.com...
> > Great! hey.. where do I learn about compiling into a sys file to load > the firmware from the inf? >
Open the INF file itself, and browse through it. You should find an entry there that says the actual filename of the firmware. Just search for *.sys inside the file. Then rename your compiled firmware file to this name, and move it to C:\Windows\Win32 (or wherever your Win32 directory is). It should now load itself into the device when it's connected to the USB bus. It might also be that the CyUSB.sys is the 'firmware loader driver'. I would have to check the INF and SYS files myself to be sure of this, and see what they do. Regards, Antti Keskinen
Reply by nappy May 19, 20062006-05-19
"Max" <nospam@hotmail.com> wrote in message 
news:5Jqbg.25141$Qq.16874@clgrps12...
> I've converted my app over to use cyAPI.sys (and therefore CyUSB.sys) > and everything is working good. My inf has two sections, the first part > loads my firmware (compiled into a sys file) and the second part calls > the CyUSB.sys file. My standby mode is now working, Yippee! > Thanks for the discussion. > M >
Great! hey.. where do I learn about compiling into a sys file to load the firmware from the inf? Glad you got it working.
> > > >> "Antti Keskinen" <antti.keskinen@ee.tpu.fi> wrote in message >> news:e4l5ge$kmk$1@news.cc.tut.fi... >>> Hey ! >>> >>> From CY7C64713 technical document, page 3, chapter 4.6, it's stated: >>> >>> "When first plugged in into USB, the FX1 enumerates automatically and >>> downloads firmware and USB descriptor tables over the USB cable. Next, >>> the FX1 enumerates again, this time as a device defined by the >>> downloaded information." >>> >>> This functionality requires a driver in the Windows end, with a registry >>> entry that specifies the name of the firmware file. Efficiently just >>> like I explained in my previous post. It's a common behaviour model that >>> many USB chip manufacturers use. >> >> I was curious if there was already an existing dll model available to do >> that as I saw no mention in the development docs I have. ( working with >> the FX2). I built that functionality into my app. >> >> Great posts by the way. >> >> >> >> >> >> >> >> >> >> >> >> >>> >>> Furthermore, in chapter 4.5: >>> >>> "... EEPROM whose first byte is either 0xC0 or 0xC2. If found, it uses >>> the VID/PID/DID values in the EEPROM in place of the internally stored >>> values (0xC0) or it boot-loads the EEPROM contents into internal RAM >>> (0xC2)." >>> >>> And here you can either load the entire replacement firmware (0xC2) or >>> just the VID/PID/DID values (0xC0) upon power-up. The VID/PID/DID option >>> was new to me, haven't seen it before. >>> >>> "nappy" <gospam@yourself.com> wrote in message >>> news:aRlbg.29101$4L1.12256@newssvr11.news.prodigy.com... >>>> >>>> Where is this Cypress provided firmware loader driver? It isn't part >>>> of my Cypress development setup. >>>> >>> >>> I don't know, honestly. I wrote my post based on the experience I have >>> from Texas Instrument's devices and others. Many developers use this >>> technique, and I'm sure Cypress does as well. If not in their public >>> development kit, then at least in their internal one. Developing a >>> complete firmware from scratch without any type of quick debugging >>> method is rather cumbersome. >>> >>> I'd suggest contacting Cypress Tech Support about obtaining such a >>> driver. If they say no such driver is available, then it's pretty much >>> though luck. The development kit does provide all necessary >>> documentation for writing such a driver, though. Writing one and putting >>> it for public distribution would be a blessing for many FX users, I'm >>> sure. >>> >>> Regards, >>> Antti Keskinen >>> >>> >> >> >> > > >
Reply by Max May 19, 20062006-05-19
I've converted my app over to use cyAPI.sys (and therefore CyUSB.sys)
and everything is working good.  My inf has two sections, the first part
loads my firmware (compiled into a sys file) and the second part calls
the CyUSB.sys file.  My standby mode is now working, Yippee!
Thanks for the discussion.
M




> "Antti Keskinen" <antti.keskinen@ee.tpu.fi> wrote in message > news:e4l5ge$kmk$1@news.cc.tut.fi... >> Hey ! >> >> From CY7C64713 technical document, page 3, chapter 4.6, it's stated: >> >> "When first plugged in into USB, the FX1 enumerates automatically and >> downloads firmware and USB descriptor tables over the USB cable. Next, >> the FX1 enumerates again, this time as a device defined by the downloaded >> information." >> >> This functionality requires a driver in the Windows end, with a registry >> entry that specifies the name of the firmware file. Efficiently just like >> I explained in my previous post. It's a common behaviour model that many >> USB chip manufacturers use. > > I was curious if there was already an existing dll model available to do > that as I saw no mention in the development docs I have. ( working with > the FX2). I built that functionality into my app. > > Great posts by the way. > > > > > > > > > > > > >> >> Furthermore, in chapter 4.5: >> >> "... EEPROM whose first byte is either 0xC0 or 0xC2. If found, it uses >> the VID/PID/DID values in the EEPROM in place of the internally stored >> values (0xC0) or it boot-loads the EEPROM contents into internal RAM >> (0xC2)." >> >> And here you can either load the entire replacement firmware (0xC2) or >> just the VID/PID/DID values (0xC0) upon power-up. The VID/PID/DID option >> was new to me, haven't seen it before. >> >> "nappy" <gospam@yourself.com> wrote in message >> news:aRlbg.29101$4L1.12256@newssvr11.news.prodigy.com... >>> >>> Where is this Cypress provided firmware loader driver? It isn't part of >>> my Cypress development setup. >>> >> >> I don't know, honestly. I wrote my post based on the experience I have >> from Texas Instrument's devices and others. Many developers use this >> technique, and I'm sure Cypress does as well. If not in their public >> development kit, then at least in their internal one. Developing a >> complete firmware from scratch without any type of quick debugging method >> is rather cumbersome. >> >> I'd suggest contacting Cypress Tech Support about obtaining such a >> driver. If they say no such driver is available, then it's pretty much >> though luck. The development kit does provide all necessary documentation >> for writing such a driver, though. Writing one and putting it for public >> distribution would be a blessing for many FX users, I'm sure. >> >> Regards, >> Antti Keskinen >> >> > > >
Reply by nappy May 19, 20062006-05-19
"Antti Keskinen" <antti.keskinen@ee.tpu.fi> wrote in message 
news:e4l5ge$kmk$1@news.cc.tut.fi...
> Hey ! > > From CY7C64713 technical document, page 3, chapter 4.6, it's stated: > > "When first plugged in into USB, the FX1 enumerates automatically and > downloads firmware and USB descriptor tables over the USB cable. Next, the > FX1 enumerates again, this time as a device defined by the downloaded > information." > > This functionality requires a driver in the Windows end, with a registry > entry that specifies the name of the firmware file. Efficiently just like > I explained in my previous post. It's a common behaviour model that many > USB chip manufacturers use.
I was curious if there was already an existing dll model available to do that as I saw no mention in the development docs I have. ( working with the FX2). I built that functionality into my app. Great posts by the way.
> > Furthermore, in chapter 4.5: > > "... EEPROM whose first byte is either 0xC0 or 0xC2. If found, it uses the > VID/PID/DID values in the EEPROM in place of the internally stored values > (0xC0) or it boot-loads the EEPROM contents into internal RAM (0xC2)." > > And here you can either load the entire replacement firmware (0xC2) or > just the VID/PID/DID values (0xC0) upon power-up. The VID/PID/DID option > was new to me, haven't seen it before. > > "nappy" <gospam@yourself.com> wrote in message > news:aRlbg.29101$4L1.12256@newssvr11.news.prodigy.com... >> >> Where is this Cypress provided firmware loader driver? It isn't part of >> my Cypress development setup. >> > > I don't know, honestly. I wrote my post based on the experience I have > from Texas Instrument's devices and others. Many developers use this > technique, and I'm sure Cypress does as well. If not in their public > development kit, then at least in their internal one. Developing a > complete firmware from scratch without any type of quick debugging method > is rather cumbersome. > > I'd suggest contacting Cypress Tech Support about obtaining such a driver. > If they say no such driver is available, then it's pretty much though > luck. The development kit does provide all necessary documentation for > writing such a driver, though. Writing one and putting it for public > distribution would be a blessing for many FX users, I'm sure. > > Regards, > Antti Keskinen > >
Reply by Antti Keskinen May 19, 20062006-05-19
Hey !

From CY7C64713 technical document, page 3, chapter 4.6, it's stated:

"When first plugged in into USB, the FX1 enumerates automatically and 
downloads firmware and USB descriptor tables over the USB cable. Next, the 
FX1 enumerates again, this time as a device defined by the downloaded 
information."

This functionality requires a driver in the Windows end, with a registry 
entry that specifies the name of the firmware file. Efficiently just like I 
explained in my previous post. It's a common behaviour model that many USB 
chip manufacturers use.

Furthermore, in chapter 4.5:

"... EEPROM whose first byte is either 0xC0 or 0xC2. If found, it uses the 
VID/PID/DID values in the EEPROM in place of the internally stored values 
(0xC0) or it boot-loads the EEPROM contents into internal RAM (0xC2)."

And here you can either load the entire replacement firmware (0xC2) or just 
the VID/PID/DID values (0xC0) upon power-up. The VID/PID/DID option was new 
to me, haven't seen it before.

"nappy" <gospam@yourself.com> wrote in message 
news:aRlbg.29101$4L1.12256@newssvr11.news.prodigy.com...
> > Where is this Cypress provided firmware loader driver? It isn't part of > my Cypress development setup. >
I don't know, honestly. I wrote my post based on the experience I have from Texas Instrument's devices and others. Many developers use this technique, and I'm sure Cypress does as well. If not in their public development kit, then at least in their internal one. Developing a complete firmware from scratch without any type of quick debugging method is rather cumbersome. I'd suggest contacting Cypress Tech Support about obtaining such a driver. If they say no such driver is available, then it's pretty much though luck. The development kit does provide all necessary documentation for writing such a driver, though. Writing one and putting it for public distribution would be a blessing for many FX users, I'm sure. Regards, Antti Keskinen
Reply by nappy May 19, 20062006-05-19
"Antti Keskinen" <antti.keskinen@ee.tpu.fi> wrote in message 
news:e4k3t7$314s$1@news.cc.tut.fi...

> So, FX is plugged in, boots with the default firmware, and identifies as > such. Windows detects this and uses the registry information to load the > Cypress-provided 'firmware loader driver'.
Where is this Cypress provided firmware loader driver? It isn't part of my Cypress development setup. Also not that the FX EEprom can be set to deliver your custom VID/PID to the host rather than the Cypress VID on powerup.