Fx3 issue

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
dach_3214351
Level 1
Level 1
5 sign-ins 5 replies posted 5 questions asked

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.

0 Likes
1 Solution
YatheeshD_36
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

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

View solution in original post

0 Likes
1 Reply
YatheeshD_36
Moderator
Moderator
Moderator
750 replies posted 500 replies posted 250 solutions authored

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

0 Likes