- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In our system FX3-CYUSB3014 + SDK 1.3.3 we use the following transfers at the same time:
BULK-OUT: to write data from the PC to the device-TFT-display with DMA
BULK-IN: to read data from a camera to the PC with DMA
CONTROL-GET: to read cyclical a touchpad on our device
If the connection is USB2.0 we found the following issue:
(analysis with an USB bus analyzer)
- The system is running well for a while
- suddenly a CONTROL-GET fails with "Turnaround Timeout Error" and "BAD CRC"
- The PC makes a second try to read the data and get the data with correct CRC but with the first 4 bytes wrong
- After the first occurrence of this error all of the following transfers CONTROL-GET and BULK-IN!!! have 4 wrong bytes at the start of each data record
The BULK-OUT to the TFT is further running well
To reset the error we have to restart the complete system
questions:
- any idea what happens or how to further investigate the problem?
- it seems the error is not in the firmware but in the hardware (USB20-SIE, USB20-TP) because it occurs in CONTROL-GET (firmware) and BULK-IN (hardware-DMA) at the same time in different pipes (EP0 and EP3). Is there a possibility to reset the SIE and/or the TP with out reset the entire system
- it is possible to detect by the firmware such a hardware error and how to react correctly. At the moment I send data and do not detect the problem in the firmware, only on the PC side
The error was observed until now only with USB2.0 (not USB3.0)
The error was observed only on some PC's (WIN10)
Thanks for any help
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Did you try your application with any Cypress's DVK (CYUSB3KIT-001/003)? If not, is it possible for you to try with any of the DVK and update the same? did you perform any compliance test on the custom board?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It's a costumer board, and it is difficult to bring it on a DVK, because the error only occurs with our special application which requires our complete hardware (FPGA, sensor...)
With help of the CYPRESS technical support we found that if the error appears there is an USB-UNDERRUN-event on EP0-IN (0x80). It seems the error is only on USB2.0 and only at some special (slower??) laptops
We can detect the error in the USBevent Callback and handle this in the main thread loop as follows:
- Set NAK on EP0
- Flush EP0
- Reset EP0
- Reset Endpoint Memories
- Set no NAK on EP0
After that following communication is o.k.