USB low-full-high speed peripherals Forum Discussions
text.format{('custom.tabs.no.results')}
1)Hardware enviroment
Our board use CY7C68013A as synchronouse slave fifo, and a fpga as master.
CY7C68013A's CLKOUT at 12MHz, and FPGA's PLL use as input, output 40Mhz as CY7C68013A's IFCLK.
EEPROM is blank.
2)firmware and modification
use Cypress Suite USB 3.4.7\Firmware\Bulkloop example, and only modify BulkLoop.c as follow:
// CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ;
// CPUCS = (CPUCS & ~bmCLKSPD) |bmCLKSPD0; //24MHz
CPUCS = CPUCS & ~bmCLKSPD ; //12MHz CLKOUT
// set the slave FIFO interface to 48MHz
//IFCONFIG |= 0x40;
IFCONFIG = 0x03; //slave fifo, sync, external
3)host pc
windows 7 32bit.
Cypress Suite USB 3.4.7
CY3684_EZ-USB_FX2LP_DVK
1)Hardware enviroment
Our board use CY7C68013A as synchronouse slave fifo, and a fpga as master.
CY7C68013A's CLKOUT at 12MHz, and FPGA's PLL use as input, output 40Mhz as CY7C68013A's IFCLK.
EEPROM is blank.
2)firmware and modification
use Cypress Suite USB 3.4.7\Firmware\Bulkloop example, and only modify BulkLoop.c as follow:
// CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ;
// CPUCS = (CPUCS & ~bmCLKSPD) |bmCLKSPD0; //24MHz
CPUCS = CPUCS & ~bmCLKSPD ; //12MHz CLKOUT
// set the slave FIFO interface to 48MHz
//IFCONFIG |= 0x40;
IFCONFIG = 0x03; //slave fifo, sync, external
3)host pc
windows 7 32bit.
Cypress Suite USB 3.4.7
CY3684_EZ-USB_FX2LP_DVK
1)Hardware enviroment
Our board use CY7C68013A as synchronouse slave fifo, and a fpga as master.
CY7C68013A's CLKOUT at 12MHz, and FPGA's PLL use as input, output 40Mhz as CY7C68013A's IFCLK.
EEPROM is blank.
2)firmware and modification
use Cypress Suite USB 3.4.7\Firmware\Bulkloop example, and only modify BulkLoop.c as follow:
// CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ;
// CPUCS = (CPUCS & ~bmCLKSPD) |bmCLKSPD0; //24MHz
CPUCS = CPUCS & ~bmCLKSPD ; //12MHz CLKOUT
// set the slave FIFO interface to 48MHz
//IFCONFIG |= 0x40;
IFCONFIG = 0x03; //slave fifo, sync, external
3)host pc
windows 7 32bit.
Cypress Suite USB 3.4.7
CY3684_EZ-USB_FX2LP_DVK
I was wondering if it would be possible to parse a script (.spt) file, and if so, how to go about doing it.
We need to load firmware through non-Windows based methods. Unfortunately we have, over the years, lost track of the original .hex file(s) that were used to create a script file.
Thank you for your help.
- JeT
Show Lesshi
if i use wordwide =1 in slavefifo mode, what am i do for read in windwos application program?
i usually use like below in wordwide=0,
if (USBDevice->BulkInEndPt)
USBDevice->BulkInEndPt->XferData(buf, length);
buf have [512] array and length is 512.
but, if i use wordwide =1, what am i setting value for buf array count and length value ?
Show Lesshi
In Fx2lp, if i use SLAVEFIFO mode,
What is different (bandwidth / speed )point in wordwide=1 and wordwide=0?
i know wordwide=1 is [15:0] 16bit mode. but i dont know.
if i use wordwide =1 in slavefifo mode, is bps (bits per second) is almost same in wordwide=0?
Then, wordwide=1 have actually total high bandwidth and fast bps than wordwide=0. ins't it ?
Show LessHi!
I found strange behavior of library CyAPI.lib.
My goal is further develop the program written in c++ that quickly transfers data through USB. I use CY7C68013A in slave mode. I filled transmitted from PC buffer by counter 1,2,3 ... and controls the oscilloscope is synchronized "BUFFER
EMPTY" and show FD bus on the screen. Transmission was fixated and was conducted with the greatest possible speed. I write Test programm on c#. it use CyUsb.dll and works great.I could see the counter on the oscilloscope screen.But when I tried to use this same test in c++ program, I found transmission failures.
not working variant:
OutEndpt->XferData(&zgl[0], l);
not working variant:
UCHAR *outContext = USBDevice->BulkOutEndPt->BeginDataXfer(buffer, length,&outOvLap);
USBDevice->BulkOutEndPt->WaitForXfer(&outOvLap,100);
USBDevice->BulkOutEndPt->FinishDataXfer(buffer, length, &outOvLap,outContext);
not working variant:
DeviceIoControl (hDevice,IOCTL_ADAPT_SEND_NON_EP0_DIRECT,
pXmitBuf, iXmitBufSize,buf, bufLen,&dwReturnBytes, ov);
working variant:
DeviceIoControl (hDevice,IOCTL_ADAPT_SEND_NON_EP0_DIRECT,
pXmitBuf, iXmitBufSize,&zgl[0], xfer,
&l, (LPOVERLAPPED)NULL);
But this variant does not use overlapping. I assume that the signal of the completion occurs before completion of the transaction in CyAPI.lib.
is there a way to use overlapping in CyAPI.lib?
I use vs2010, Windows XP SP3 on test PC. windows7 on testing PC, remote debuggin by tcp.ip.
Hi,
I am writing an application which need to manage two same USB devices and I am using cypress cy7c68013A as the controller in the device. How can I manage to control these two devices in my application. Do I need to generate two independent instances using CCyUSBDevice for these two device?
Thanks,
Martin
Show LessHi,
We are implementing new firmware in our FX2 chip. Part of the data flow requires access to the Slave FIFO from both external logic and the firmware. Using the EZ-USB TRM Revision D reference and following Section 9.3.8 I've been able to edit the data in the FIFO that was written initially by external logic (our FPGA). However, in assembling the IN packet to the host in the FIFO, we'd like to write header data to the FIFO *before* the external logic writes (and hopefully appends) the FPGA data. Currently, I find that the external logic/FPGA always overwrites the header data written to the FIFO by the firmware. Is there a way to control the FX2 internal FIFO pointer that tracks the writing of FIFO data by external logic, such that I could advance it the header length through firmware before the FPGA-based Slave FIFO write?
Thanks!!
Scott
Show LessWe use Cypress USB controllers for an our own product that should work under Windows Vista/7 64-bit. As I discovered in this forum we need a signed driver for x64 OS from Vista on. Now I would like to know the step I need to sign the driver. I would like to sign the driver because (if I'm not wrong) the cost is not too high (according to what I found here the certificate costs 99$).
I learned from the Microsoft guide on kernel-mode code signing walkthrough how to: 1) obtain a Software Publisher Certificate (SPC) from a commercial CA (Certificate Autorithy); 2) create a .CAT file starting from the driver file (.SYS) and the driver setup information file (.INF); 3) use the SPC to sign the CAT file in order to be able to use the driver under Windows Vista/7 64-bit.
Installing Cypress USB Generic Driver (3.4.6) I got the cyusb.sys and cyusb.inf files (under C:\Program Files\Cypress\Cypress Suite USB 3.4.6\Driver\wlh). These work fine for our product (for the moment only disabling the driver signature enforcement).
Now I feel to miss some information on the steps I need to have our own signed driver that will work with our XXX product so that once plugged in our product to a computer that has the driver installed, the product is automatically recognized as the XXX product.
First of all I guess I have to change on the USB controller and on the cyusb.inf the VID and the PID, isn't it? I guess these values have to be provided by Microsoft and I cannot use any values, isn't it? In this case how do I get them from Microsoft? Then if I do not modify the cyusb.sys driver do I need to follow the procedure that Cypress indicates for having the WHQL certificate? If I do not need this WHQL signing procedure, should I simply follow the instructions on the kernel-mode code signing walkthrough provided my Microsoft?
Please details as much as possible the steps needed for different scenarios.
Show Less