Problems using Cypress API for Xylo-LM

Saxo/-L & Xylo/-EM/-L/-LM boards

Problems using Cypress API for Xylo-LM

Postby RomanoGmbH » Wed Jul 22, 2009 10:00 am

Dear all,

I have a problem regarding the USB communication to the Xylo board.
I installed the driver which are provided by KNJN and used the FPGAconf app and also one of the test tools of KNJN. All works fine.

But now the problem start by using the API from Cypress.
I downloaded the Cypress Suite USB 3.4.1 and I'm not able to find the Xylo board with every demo programm (and also the USB Control Center of Cypress) doesn't find the board.

Is there any help you can provide to us to solve this problem?

Regards
Gerd Blake
RomanoGmbH
 
Posts: 1
Joined: Wed Jul 22, 2009 9:49 am

Postby fpga4fun » Sat Jul 25, 2009 10:04 pm

That's because KNJN boards use a GUID different from Cypress (even though the driver is the same).
Looks at the .inf file of both distributions to see that.
fpga4fun
Site Admin
 
Posts: 837
Joined: Thu Sep 18, 2003 6:47 am

Re: Problems using Cypress API for Xylo-LM

Postby iammegatron » Thu Feb 04, 2010 5:09 pm

I have the same problem with saxo-L board (FX2 USB), using Cypress CyUSB.dll (.net version).

After the board is connected and driver loaded (with KNJN supplied .inf file), I try to find the device using C# call:

devs = new USBDeviceList(CyConst.DEVICES_CYUSB);

there is no device found in the list.

Am I missing something? Please help.



P.S. I followed steps in this post. It's still not working.
viewtopic.php?t=904






RomanoGmbH wrote:Dear all,

I have a problem regarding the USB communication to the Xylo board.
I installed the driver which are provided by KNJN and used the FPGAconf app and also one of the test tools of KNJN. All works fine.

But now the problem start by using the API from Cypress.
I downloaded the Cypress Suite USB 3.4.1 and I'm not able to find the Xylo board with every demo programm (and also the USB Control Center of Cypress) doesn't find the board.

Is there any help you can provide to us to solve this problem?

Regards
Gerd Blake
iammegatron
 
Posts: 4
Joined: Thu Feb 04, 2010 4:56 pm

Postby fpga4fun » Thu Feb 04, 2010 5:17 pm

The problem is that the GUID used by KNJN for the CyUSB driver is different from the one used by Cypress.

Check the CyUSB.inf file from both the KNJN and Cypress packages to see the GUID used.
fpga4fun
Site Admin
 
Posts: 837
Joined: Thu Sep 18, 2003 6:47 am

Postby iammegatron » Thu Feb 04, 2010 9:33 pm

fpga4fun wrote:The problem is that the GUID used by KNJN for the CyUSB driver is different from the one used by Cypress.

Check the CyUSB.inf file from both the KNJN and Cypress packages to see the GUID used.



While using CyAPI.lib (the C/C++ language interface), there is the function call: CCyUSBDevice(_,_), where GUID can be specified. (As can be seen in the example file supplied by KNJN)

But for CyUSB.dll (.NET library), One can use (correct me if I'm wrong):

dev = new USBDeviceList(CyConst.DEVICES_CYUSB)

to return a list of USB devices using the CyUSB.sys device driver.

My question is that why my Saxo-L board doesn't show up in that list?
iammegatron
 
Posts: 4
Joined: Thu Feb 04, 2010 4:56 pm

Postby iammegatron » Fri Feb 05, 2010 12:11 am

Finally, I found the trick after searching the web for a whole day.

Here it is:
http://www.cypress.com/?id=4&rID=35281

Let me post my cyusb.inf file, in case someone meet the same trouble
=================

; Installation INF for the Cypress Generic USB Driver for Windows XP
; Processor support for x86 based platforms.
;
; (c) Copyright 2009 Cypress Semiconductor Corporation
;

[Version]
Signature="$WINDOWS NT$"
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
provider=%CYUSB_Provider%
CatalogFile=CYUSB.cat
DriverVer=06/05/2009,3.4.1.20

[SourceDisksNames]
1=%CYUSB_Install%,,,

[SourceDisksFiles]
CYUSB.sys = 1

[DestinationDirs]
CYUSB.Files.Ext = 10,System32\Drivers

[ControlFlags]
ExcludeFromSelect = *

[Manufacturer]
%CYUSB_Provider%=DeviceList

[DeviceList]
"CyUSB driver - FPGA board PID=8613 - KNJN LLC fpga4fun.com" = CyUSB, USB\VID_04B4&PID_8613
;"CyUSB driver - FPGA board PID=8613 - KNJN LLC fpga4fun.com" = CyUSB, USB\VID_04B4&PID_8613
;"CyUSB driver - FPGA board PID=8614 - KNJN LLC fpga4fun.com" = CyUSB, USB\VID_04B4&PID_8614
;"CyUSB driver - FPGA board PID=8615 - KNJN LLC fpga4fun.com" = CyUSB, USB\VID_04B4&PID_8615
;"CyUSB driver - FPGA board PID=8616 - KNJN LLC fpga4fun.com" = CyUSB, USB\VID_04B4&PID_8616
;"CyUSB driver - FPGA board PID=8617 - KNJN LLC fpga4fun.com" = CyUSB, USB\VID_04B4&PID_8617
;"CyUSB driver - FPGA board PID=8618 - KNJN LLC fpga4fun.com" = CyUSB, USB\VID_04B4&PID_8618
;"CyUSB driver - FPGA board PID=8619 - KNJN LLC fpga4fun.com" = CyUSB, USB\VID_04B4&PID_8619


;for all platforms
[Device]
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX


;for windows 2000 non intel platforms
[Device.NT]
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX


;for x86 platforms
[Device.NTx86]
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX


;for x64 platforms
[Device.NTamd64]
;%VID_XXXX&PID_XXXX.DeviceDesc%=CyUsb, USB\VID_XXXX&PID_XXXX


[CYUSB]
CopyFiles=CYUSB.Files.Ext
AddReg=CyUsb.AddReg

[CYUSB.HW]
AddReg=CYUSB.AddReg.Guid

[CYUSB.Services]
Addservice = CYUSB,2,CYUSB.AddService

[CYUSB.NT]
CopyFiles=CYUSB.Files.Ext
AddReg=CyUsb.AddReg

[CYUSB.NT.HW]
AddReg=CYUSB.AddReg.Guid

[CYUSB.NT.Services]
Addservice = CYUSB,2,CYUSB.AddService


[CYUSB.NTx86]
CopyFiles=CYUSB.Files.Ext
AddReg=CyUsb.AddReg

[CYUSB.NTx86.HW]
AddReg=CYUSB.AddReg.Guid

[CYUSB.NTx86.Services]
Addservice = CYUSB,2,CYUSB.AddService

[CYUSB.NTamd64]
CopyFiles=CYUSB.Files.Ext
AddReg=CyUsb.AddReg

[CYUSB.NTamd64.HW]
AddReg=CYUSB.AddReg.Guid

[CYUSB.NTamd64.Services]
Addservice = CYUSB,2,CYUSB.AddService


[CYUSB.AddReg]
; Deprecating - do not use in new apps to identify a CYUSB driver
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,CYUSB.sys
; You may optionally include a check for DriverBase in your application to check for a CYUSB driver
HKR,,DriverBase,,CYUSB.sys
HKR,"Parameters","MaximumTransferSize",0x10001,4096
HKR,"Parameters","DebugLevel",0x10001,2
HKR,,FriendlyName,,%CYUSB_Description%

[CYUSB.AddService]
DisplayName = %CYUSB_Description%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\System32\Drivers\CYUSB.sys
AddReg = CYUSB.AddReg
LoadOrderGroup = Base

[CYUSB.Files.Ext]
CYUSB.sys

[CYUSB.AddReg.Guid]
HKR,,DriverGUID,,%CYUSB.GUID%

[Strings]
;CYUSB_Provider = "Cypress"
CYUSB_Provider = "KNJN LLC"
CYUSB_Company = "Cypress Semiconductor Corporation"
CYUSB_Description = "Cypress Generic USB Driver"
CYUSB_DisplayName = "Cypress USB Generic"
CYUSB_Install = "Cypress CYUSB Driver Installation Disk"
VID_04B4&PID_8613.DeviceDesc="Cypress USB Generic Driver (3.4.1.20)"
CYUSB.GUID="{0EFA2C93-0C7B-454F-9403-D638F6C37E65}"
CYUSB_Unused = "."


=====================





iammegatron wrote:
fpga4fun wrote:The problem is that the GUID used by KNJN for the CyUSB driver is different from the one used by Cypress.

Check the CyUSB.inf file from both the KNJN and Cypress packages to see the GUID used.



While using CyAPI.lib (the C/C++ language interface), there is the function call: CCyUSBDevice(_,_), where GUID can be specified. (As can be seen in the example file supplied by KNJN)

But for CyUSB.dll (.NET library), One can use (correct me if I'm wrong):

dev = new USBDeviceList(CyConst.DEVICES_CYUSB)

to return a list of USB devices using the CyUSB.sys device driver.

My question is that why my Saxo-L board doesn't show up in that list?
iammegatron
 
Posts: 4
Joined: Thu Feb 04, 2010 4:56 pm


Return to FX2 FPGA boards