- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I have been following steps as RashiV_61 mention in my last discussion (https://community.cypress.com/message/227908?et=watches.email.thread#227908 )
and when i change the endpoint type from "CY_U3P_USB_EP_BULK" to "CY_U3P_USB_EP_ISO" i got error massage after programming board i got error from windows (unknown device (Invalid Configuration Descriptor))
I use SyncADMux project from GPIF Desginder and as per firmware I use is AN65974.
I attached project file (file that has been changed are cyfxslfifousbdscr.c - to change descriptors and cyfxslfifosync.c - after changing this file (the first file was left as it was in example) I did not encounter this error)
Solved! Go to Solution.
- Tags:
- ez-usb fx3
- usb 3.0
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
This error as mentioned in your response occurs when the configuration descriptor is invalid (or some mistakes are made in cyfxslfifousbdscr.c file). Please refer to the USB 3.0 specification which can be found in the following link:
https://www.usb3.com/whitepapers/USB%203%200%20(11132008)-final.pdf
You need to modify the Endpoint descriptors and endpoint companion descriptors accordingly for Isochronous endpoints by referring from section 9.6.6 of the above document. Please make the modifications and let us know if you still face the error.
Best Regards,
Jayakrishna
Jayakrishna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
This error as mentioned in your response occurs when the configuration descriptor is invalid (or some mistakes are made in cyfxslfifousbdscr.c file). Please refer to the USB 3.0 specification which can be found in the following link:
https://www.usb3.com/whitepapers/USB%203%200%20(11132008)-final.pdf
You need to modify the Endpoint descriptors and endpoint companion descriptors accordingly for Isochronous endpoints by referring from section 9.6.6 of the above document. Please make the modifications and let us know if you still face the error.
Best Regards,
Jayakrishna
Jayakrishna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
That's works but for some reason when I try to send data using USB Control Center i got massage Zero-length data transfer completed (I am trying to send text "ABCD" which is 4 bytes lengh)
Regards,
Mateusz
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
According to my understanding, your enumeration issue is solved. Please correct me if Iam wrong.
Regarding your question, please share a snapshot of the control center when you see this behaviour so that I can understand the problem better.
Best Regards,
Jayakrishna
Jayakrishna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
there is screenshoot you asked
the the enumeration issue is solved
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I tested this at my end and found that the data transfer was successful. The snapshot of the same is given below:
Please try using the following firmware. This is the project that you have shared in your first response. I have made the edits to enumerate it with isochronous endpoints only.
Best Regards,
Jayakrishna
Jayakrishna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
could you tell me what was the issue and its same when I try to send data IN
Regards,
Mateusz
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Please let me know what was the value that you set for servicing interval field of endpoints in he descriptors. The spec allows this value to be set in between 1 and 16. I set it to the minimum value that is 1. Please let me know if the OUT endpoint is working fine now?
Please let me know what is the observation when you are trying to do an IN transfer. You can also share a snapshot of the control center application when you are performing IN transfer.
Best Regards,
Jayakrishna
Jayakrishna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I understood that there is a DMA channel between P Port and the USB Socket associated with the endpoint 0x81. Please let me know if you are getting PROD_EVENTS for this channel. PROD_EVENTS are obtained when a producer socket fills a DMA buffer associated with a channel. This can be checked by using the API CyU3PDeviceReset(CyFalse);. Please use this API inside the if block that checks for CY_U3P_DMA_CB_PROD_EVENT in the function CyFxSlFifoPtoUDmaCallback(). If PROD_EVENTS are received, the device will re-enumerate as Bootloader Device. Otherwise it will remain as StreamerExample Device itself. Please try this and let me know if you are receiving PROD_EVENTS.
Best Regards,
Jayakrishna
Jayakrishna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
after editing function (as shown in screen below) it stays as streamer example
As per DMA channels There are two DMA channel created in the default firmware PIB > USB (write to FX3) and USB >PIB (read from FX3)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
This means that FX3 is not receiving any buffers from the external master. Please let me know what is the source of data to PIB of FX3? Is it an FPGA? We need to evaluate the interface between the external master and GPIF II block of FX3 to understand why no buffers are received by FX3.
Best Regards,
Jayakrishna
Jayakrishna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The source of data is FPGA (connected via EEPROM)