adding extra DMA to design

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

cross mob
E_521156
Level 4
Level 4
100 sign-ins 50 replies posted 50 sign-ins

Hi,
In USBToGPIF example, I want to add an extra memory between USB and GPIF instead of increase the existed memory.
In this example,  there is a CY_U3P_DMA_TYPE_AUTO( prod=CY_U3P_UIB_SOCKET_PROD_1 , cons=CY_U3P_PIB_SOCKET_0). I added a DMA before that and change this DMA as well. Now, I have 2 DMA back to back like:
first DMA:   CY_U3P_DMA_TYPE_AUTO,  prod = CY_U3P_UIB_SOCKET_PROD_1  , cons = CY_U3P_CPU_SOCKET_CONS,                                 notification = CY_U3P_DMA_CB_PROD_EVENT,  cb = DmaCallback

second DMA:   CY_U3P_DMA_TYPE_AUTO,  prod = CY_U3P_CPU_SOCKET_PROD,  cons = CY_U3P_PIB_SOCKET_0,
                             notification = 0,  cb = 0

I copy the data from the  fist to second DMA in DmaCallback., But when I add this extra DMA to my design, it doesn't work. and I lose the EP in CC.
What is the right way to add an extra memory between USB and GPIF?
Thanks


0 Likes
1 Solution
AliAsgar
Moderator
Moderator
Moderator
1000 replies posted 250 solutions authored 750 replies posted

Hello,

DMA channels cannot be configured as AUTO channels, if one of the sockets is CPU.
Please make the channel as a MANUAL_IN channel, when CPU is consumer socket and make the channel as MANUAL_OUT, when CPU is the producer socket.

Best Regards,
AliAsgar

View solution in original post

0 Likes
8 Replies