GPIF to USB DMA Manual channel don't work

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

cross mob
Anonymous
Not applicable

Hi,

     I am using GPIF to transfer data to USB.

     Now if i config the dma channel as auto mode, the channel work well. But when i config the dma channel as manual mode, add the prob notification and callback. I cant see the callback has been called.

     The size of dma is 15KB and the count is 8 .

     Anyone can give me some ideas the reason?

Thanks a lot!

0 Likes
1 Solution
Anonymous
Not applicable

I have solved this problem.
The reason is that I only load the GPIF configuration, but did not initialize the PIB configuration.

But I still don't know why I can work without initializing the PIB in Auto mode, that confuses my judgment.

View solution in original post

0 Likes
3 Replies
abhinavg_21
Moderator
Moderator
Moderator
50 likes received 25 likes received 10 likes received

Hi,

Which firmware example you are referring? Please note that you have to register DmaCallback in DMA channel config. You can refer to C:\Users\abga\workspace\UartLpDmaMode firmware example.

Thanks & regards

Abhinav

0 Likes
Anonymous
Not applicable

Hi, abga

     I am referring USBBulkLoopManual, and I just modify the dmaCfg as:

dmaCfg.notification=CY_U3P_DMA_CB_PROD_EVENT;

dmaCfg.cb = mycallback;

and modify the CY_U3P_DMA_TYPE_AUTO into CY_U3P_DMA_TYPE_MANUAL.

then I  add my mycallback function that print debug message at first step.

Are there any other steps to registe the callback?

0 Likes
Anonymous
Not applicable

I have solved this problem.
The reason is that I only load the GPIF configuration, but did not initialize the PIB configuration.

But I still don't know why I can work without initializing the PIB in Auto mode, that confuses my judgment.

0 Likes