USB low-full-high speed peripherals Forum Discussions
text.format{('custom.tabs.no.results')}
hi
this is my first time with the USB controller.i am implementing a design in which i have to read data from the FIFO placed in the FPGA and send data to the PC through USB controller
i need to know a few things regarding the data rate that is achiveable on the USB interface. acc to datasheet there are two data rates achiveable
1. Full Speed 12Mbps
2. High speed 48Mbps
i want to know are these data rates are actually achived? if not what throughput is that i get on the interface between the USB controller and the PC?
can anyone help me on this??
Regards
Usama Aslam
Show LessDear sir,
We choose CY7C68013A to implement our project. And the firmware is based on BulkLoop. Of course, we have added the needed code what will help us. But the problem is that: while we burning the iic file(C2 load) into our lardge eeprom(24C128), the CyConsole can not recognise our board. So, we cut some code and retry the front steps, Oh....it can recognise our board!
We have no idea about it! Why? The CY7C68013A restrict the code size ? But, the <EZ-USB TRM> has specified that it has 16KB internal RAM which is Program&Data(We set EA=0).
So, help me please! Thanks so much!
Josh Wei
Show LessHow can I tell that the CY7C68013 is enumerated? I need to send notification to the hardware (via firmware) that the USB cable has been unplugged.
Show LessDear Sir.
We choose CY7C64356 and use the BootLdrUSBFS module to implement our project.
BootLdrUSBFS module has bootloader and application parts.
We have two targets.
A. Device has 2 USB interfaces and bootloader functionality.
This 2 USB interfaces are used to control 2 device.
B. Device has 3 USB interfaces and bootloader functionality.
This third USB interface is used to control another device.
First we have finished the part A. It works well.
And then we use part A to add another interface.
We use bootloader tool to update the firmware of CY7C64356 from part A to part B.
We found a situation.
After bootloader tool is finished, the CY7C64356 will auto reset continually.
We make some experiments.
We use PSoC Programmer and Mini-Prog tool to make the samples like (1) and (2).
(1) The firmware of CY7C64356 is part A.
(2) The firmware of CY7C64356 is part B.
(3) Use booloader tool to update the firmware of CY7C64356 from part A to part B.
And then on, we use PSoC Programmer and Mini-Prog tool to read the firmware of CY7C64356 from above samples.
We found there are some differences.
About the bootloader code part.
(2) and (3) is not equal.
(1) and (3) is equal.
About the application code part.
(1) and (3) is not equal.
(2) and (3) is equal.
We survey the .mp file and found some thing.
There are functions and global variables are allocated into the bootloader part, like BootLdrUSBFS_Start, BootLdrUSBFS_LoadInEP, BootLdrUSBFS_IdleReload, BootLdrUSBFS_Protocol, etc.
Can we fiexd the bootloader code in our firmware? or other suggections. Thanks so much.
Show LessSomeone has made his own board ?? So he can share his schematics as guide for make my own ??
My senior engineer who was responsible for completing the C code for the CY7C68013A to interface between an AD ADAU1442 DSP to a Windows XP system and then to Android has fallen ill (long term). So, I have to take over and start again. Is there C code for this Cypress controller that I can download? Are there any application notes/examples for using the Cypres USB peripheral controller to talk to an Analog Devices' audio DSP Sigma Studio development software? Anyone want a contract to get this done? Schematic of CY7C68013A on the DSP board is attached.
Show LessHi Cypress team,
I implemented the firmware code to do a single read write transaction by using GPIF internal master. But the waveforms designed using GPIF designer seems not re-generate while executing the code flow. Used CRO to probe the CS# and WR# signals. Verified the code flow through Serial port given by the Cypress. I have tested the sample code provided by the cypress also (for single read write transact). This also failed produce the waveforms designed by gpif designer utility. I have attached the zip file for the sample source given by cypress (Copy of FX2_to_extsyncFIFO GPIF Single Transactions.zip). and Implemented code by us (SingleReadWriteGPIF.zip). Please help me on this.
Thanks.
Karthick PH
Show LessHello everybody, I'm a French student and I would know if it was possible to have free samples of CY7C68xxx.
I saw a "request samples" link but I didn't find what I wanted. I thought It was possible, perhaps, but how to?
I thank you for your help. Loïc
Show LessNow that the firmware is working, I'm focusing on the application side. The application I'm adapting to USB was written in C (originally written for Windows 2.0 and only recently ported to 32 bit Windows and VC 2005).
The system currently runs with one ISA card in a PC and a daisy chain cable running between multiple external chassis (up to 5). With USB, there will be a USB card in each chassis and I need to keep track of which card is which. At initialization I run a scan to detect the hardware in each chassis and then that is stored in an array in memory that is cross referenced to which USB device has which hardware.
I'm looking at the documentation for CyAPI and the cydesc sample. I see that getting the descriptor and a CCyUSBConfig object are fairly easy, but it looks like they don't tell me anything unique about a given instance of a device. The only thing I can see that is unique is the index used by Open(). Will this index stay the same even if the user plugs in or removes another device that uses CyUSB.sys? I'm not concerned with the user plugging or unplugging our cards while in operation. If they did that for any reason, it would be cause to restart the application afterwards.
Since CyAPI sees all devices that use CyUSB.sys it is conceivable that the user might plug or unplug another device that uses the same driver while the system is in operation and I need to deal with that possibility. If that changes the indexes, then that will crash our system.
Is there something else unique to each instance that I can use to keep track of the devices?
Bill
Show LessI have an issue with a FX2LP USB device not restarting after my linux-libusb based application has been killed with Ctl-c during data transfer.
It seems that the USB bus is going away while power is still applied (My device is using external power supply).
Only powercycling the device by replugging powwer cable helps.
What is the right way to solve this issue?
I implemented a dirty trick in the FX2 firmware that seems to solve the problem:
I implemented a user command (VX_11) that calls all the rutines implemented in TD_Init() (see code bellow).
I then call this user command in the device opening phase (in the libusb driver).
void TD_Init(void) // Called once at startup
{
initialize_board();
}
void initialize_board(void) // Called once at startup
{
CPUCS = 0x10; // CLKSPD[1:0]=10, for 48MHz operation
IFCONFIG = 0xE3;
...
...
}
//user command:
BOOL DR_VendorCmnd(void)
{
...
...
case VX_11:
initialize_board();
break;
}
For some reason I don't quite understand, I need to send this user command twice otherwise the bus is still dead.
I am sure there is a better/clean way to solve this issue.
Note: The reset pin of the cypress chip is connected to VCC.
Thanks, malik cisse
Show Less