USB low-full-high speed peripherals Forum Discussions
Hi All
I am creating an application to stream video data over the EZ USB FX2LP and display it on the PC. I have implemented an MPEG reader using cypress ez usb firmware example AN58069 . I am currently using the USB Control center and I have run into an issue where in if I do mutiple data transfers I miss a lot of data packets while I can do on complete data transfer successfully. I want to continuously writ data to a file and read that file using another application to display video and I am not sure how to do that as i will have to make mutiple read coomands in which case I will end up mising a lot of packets. So I was not sure how to perform continous reads on the slave fifo using a PC application. Any examples for this would be helful.
Show LessHello,
My application uses CY7C65211 GPIOs to perform JTAG emulation. It's using Cypress USB library and CySetGpioValue/CyGetGpioValue APIs from Windows command-line executable.
The maximum toggling GPIO speed I'm measuring is 4ms (or 250Hz). This is too high for my application, and I'm looking for ways to decrease this number to hundreds of usec.
I wasn't able to find GPIO toggling performance in the available documentation. Can anybody provide any pointers? Also, any suggestions how to increase GPIO toggling speed are welcome.
Thanks,
Evgeni
Show LessWe have been using FX2 CY7C68013A for over 10 years.
Recently, we discovered that on certain Dell servers, a feature of our product stopped working. This feature depended on EP1 OUT which was configured as a bulk endpoint with a max packet size of 64 bytes. On the failing machines, the bulk transfers on this endpoint were 512 bytes.
I noticed that before re-enumeration, the FX2 sets EP1 OUT as having a max packet size of 512. On the failing machines, our product after re-enumeration gets assigned the same USB address as it had before enumeration.
I have seen Claudio Reginelli's post, which *could* be explained by the same root cause: FX2LP CY7C68013A Hi Speed Bulk problem on latest generation laptops
Can anyone point me in the direction of where this bug might be?
Thanks,
-- Conor
Update: The issue appears to be caused by the Texas Instruments USB ports. Intel-based ports on the same machine do not exhibit the same problem.
The faulty ports are on a 3-port PCI card. The driver is tihub3.sys v1.12.18
Message was edited by: Conor McQuaid
Show LessHi
I have a question about FX3's IIC.
I want to set IIC speed to 1Mhz.
I try after setting as below but IIC speed is about 760 Khz.
1. Set VIO5 to 3.3 V.
2. Set CyU3PI2cSetConfig funciton with bitrate 1000000.
3. Set CyU3PSetI2cDriveStrength function with CY_U3P_DS_FULL_STRENGTH.
Is there need any other setting?
Show LessI successfuly write a 64KB eeprom, but after reset or reenumerate, it boots as default. Any ideas on where to look? I have replaced the eeprom already with a fresh new one. Cypress Control Panel writes to it, but it seems that at boot time, FX2LP won't recognize it.
Show LessWe are considering using the Cypress 68053 as a USB interface for our board. We want the board to come up in Linux as a ethernet interface (like our board was a USB/Ethernet dongle). Is there a way to have Linux recognize the 68053 as an Ethernet over USB device?
Thx,
Y-
Show LessDear all,
This is a puzzling question we can't figure out.
We use FX2LP family (CY7C68013A) since a long time (10 years) in BULK mode to transfer blocks of 2048 bytes in Hi Speed and I never had big problems while computers were evolving. During the last months I am having a lot of problems with laptops because it seems that transfer is often unsuccessful.
To be precise, I had the chance to observe this problem on two different pc ASUS with these specs: controller usb Intel xHCI, s.o. Windows 10, processor Intel i3
The data to transfer are took from a FIFO using the GPIF interface according to a typical mechanism of "clock and read, clock and read...".
The weird thing is that it GPIF waveform has a strange behavior (see attached files) when the transfer is unsuccessful. The attached file are the two waveforms of a same "flag output" that I use to trace when the GPIF starts reading (flag goes high) and when it finishes reading (flag goes low). As you can see when the transfer is unsuccessful there is a longer reading cycle in the middle (sometimes are more than one).
Additional information about the driver: we have used WinDriver (Jungo) for many years and now we tried WinUSB (Microsoft).
Here is the configuration of the endpoints. I have tried to configure them also both 512x4 and both 1024x2 but same result.
;; Endpoint Descriptor
db DSCR_ENDPNT_LEN ;; Length of this descriptor = 7 bytes
db DSCR_ENDPNT ;; Descriptor type = Endpoint
db 01H ;; Endpoint number, and direction (01H = EP1, out)
db ET_BULK ;; Endpoint type
db 40H ;; Maximun packet size (LSB)
db 00H ;; Max packect size (MSB) --> 64 bytes
db 00H ;; Polling interval (in # of frames. Ignored for Bulk and Control EPs)
;; Endpoint Descriptor
db DSCR_ENDPNT_LEN ;; Length of this descriptor = 7 bytes
db DSCR_ENDPNT ;; Descriptor type = Endpoint
db 81H ;; Endpoint number, and direction (81H = EP1, in)
db ET_BULK ;; Endpoint type
db 40H ;; Maximun packet size (LSB)
db 00H ;; Max packect size (MSB) --> 64 bytes
db 00H ;; Polling interval (in # of frames. Ignored for Bulk and Control EPs)
SYNCDELAY;
EP2CFG = 0xAA; // b7=1 (valid)
// b6=0 (dir OUT: PC -> Periph)
// b5=1 (BULK)
// b4=0 (BULK)
// b3=1 (size 1024)
// b2=0
// b1=1 (buffering 2x)
// b0=0 (buffering 2x)
SYNCDELAY;
EP6CFG = 0xE0; // b7=1 (valid)
// b6=1 (dir IN: PC <- Periph)
// b5=1 (BULK)
// b4=0 (BULK)
// b3=0 (size 512)
// b2=0
// b1=0 (buffering 4x)
// b0=0 (buffering 4x)
Thank you
Show LessHI everyone, I want to ask off for a problem.Under the android 5.1.1 use cypress 6801 chips, communication mainly use cyusb lib library, but the device communication always cyusb_bulk_transfer function returns -7 when the status value. I want to consult everybody, this is what causes. thank you !
Show LessIf the master wants to send a stream of data whose length is not a multiple of 512, the last packet is not be automatically committed to USB because it is smaller than 512 bytes. To commit that last packet, the master can do one of two things: It can pad the packet with dummy data in order to make it exactly 512 bytes long, or it can write the short packet to the FIFO, then pulse the PKTEND pin.
But how to pad the packet with dummy data.
Show Less
Hi All,
Please find the beta release of the Eclipse based tool chain for FX2LP on Linux 32-bit platform, in the link provided below:
https://www.dropbox.com/s/z15tjhnjthc53n3/EZ-USBSuite_x86.zip
It would be great if you can provide your feedback on this tool chain. We will address that in official release to serve customers like you better.
Thanks,
Sai Krishna.
Show Less