- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear 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
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
In the endpoint descriptors, the maximum packet size of the endpoints is reported as 64 bytes. But, the device endpoints are configured for 512 bytes and 1024 bytes. Please change the maximum packet size of the endpoint descriptors to be 512 bytes.
Also, update the driver to the latest version 1.2.3.20 which supports till Win 10 RS3. This driver can be obtained from the FX3 SDK.
http://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-software-development-kit
Best regards,
Srinath S
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am curious to see if your problem has similar symptoms to mine.
Are your faulty bulk transfers happening in 512 byte packets?
Does your device have the same USB bus address after re-enumeration as before?
See my post: CY7C68013A Bulk interrupt packet size
Thanks,
-- Conor
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
In the endpoint descriptors, the maximum packet size of the endpoints is reported as 64 bytes. But, the device endpoints are configured for 512 bytes and 1024 bytes. Please change the maximum packet size of the endpoint descriptors to be 512 bytes.
Also, update the driver to the latest version 1.2.3.20 which supports till Win 10 RS3. This driver can be obtained from the FX3 SDK.
http://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-software-development-kit
Best regards,
Srinath S