- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have DMA creatoin architecture as below:
case 1 case 2
Producer UIB (CY_U3P_UIB_SOCKET_PROD_2) CPU_PROD
| |
| |
| |
Consumer CPU_CONS UIB(CY_U3P_UIB_SOCKET_CONS_6)PIB(SOCKET 1)
case 3
Producer CPU_PROD
|
|
|
Consumer PIB(SOCKET 1)
case 4
Producer PIB(SOCKET 0)
|
|
|
Consumer UIB(CY_U3P_UIB_SOCKET_CONS_6)PIB(SOCKET 1)
for i currently desigin to use case 1 to receive endpoint 2 data to executive case 2 or case3 or case 4.
so i need to destroy case 2 or case 3 or case 4 to create another case.
but destory dma and create new case need to take a long time.
how can use multichannel DMA create for my case or any exampleas can reference.
thanks.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Case 1. can be an independent channel where the data is received from UIB (CY_U3P_UIB_SOCKET_PROD_2) socket and the CPU socket is the consumer.
Case 2 (CPU producer and PIB consumer) and Case 3 (CPU producer and UIB&PIB consumer) can be combined to a one DMA mulichannel (one to many). Where CPU socket is the producer and the PIB(SOCKET 1) and UIB(CY_U3P_UIB_SOCKET_CONS_6) are consumers.
Case 4 is one to many DMA channel where PIB(SOCKET 0) is the producer and UIB (CY_U3P_UIB_SOCKET_CONS_6) and PIB(SOCKET 1) are consumers.
Please note that when you want to initialize and use channel in Case 4, channel in Case 2/3 combined needs to be destroyed and vice versa as it makes use of a common socket PIB(SOCKET 1).
From the FX3 SDK:
For a one to many DMA channel example which involves a single producer socket and multiple consumer socket, please refer to USBBulkLoopAutoOneToMany or USBBulkLoopManualOneToMany.
For creating a CPU producer socket and USB consumer socket or vice versa, refer to USBBulkSourceSink Example.
Thanks,
Yatheesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Case 1. can be an independent channel where the data is received from UIB (CY_U3P_UIB_SOCKET_PROD_2) socket and the CPU socket is the consumer.
Case 2 (CPU producer and PIB consumer) and Case 3 (CPU producer and UIB&PIB consumer) can be combined to a one DMA mulichannel (one to many). Where CPU socket is the producer and the PIB(SOCKET 1) and UIB(CY_U3P_UIB_SOCKET_CONS_6) are consumers.
Case 4 is one to many DMA channel where PIB(SOCKET 0) is the producer and UIB (CY_U3P_UIB_SOCKET_CONS_6) and PIB(SOCKET 1) are consumers.
Please note that when you want to initialize and use channel in Case 4, channel in Case 2/3 combined needs to be destroyed and vice versa as it makes use of a common socket PIB(SOCKET 1).
From the FX3 SDK:
For a one to many DMA channel example which involves a single producer socket and multiple consumer socket, please refer to USBBulkLoopAutoOneToMany or USBBulkLoopManualOneToMany.
For creating a CPU producer socket and USB consumer socket or vice versa, refer to USBBulkSourceSink Example.
Thanks,
Yatheesh