CAN MO and GPDMA

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

cross mob
Not applicable
Hi,

I would use GPDMA for storing subsequently CAN message data and ID from a single Message Object to memory.
My aim is to transfer 16 or more messages to memory and then to get a DMA interrupt to manage messages.
I have tried to do this modifying CAN001_Example1 with DMA003 Apps.
753.attach
But I have been able to catch just one message (CAN LM02) using the following DMA App configuration
754.attach
and setting source as follow

MsgNo = (uint8_t)(CAN001_Handle0.FirstMOMapping + (2-1U));
CAN_MOxRegs = GET_MO_OFFSET(MsgNo);

DMA003_Handle0.ChConfig.SrcAddress = (uint32_t)&(CAN_MOxRegs->MODATAL);


Thanks in advance
Aniello
0 Likes
4 Replies
Not applicable
Hi,
I have the exact same need. I am using the XMC4400 with the DAVE IDE.

I assume this is possible, since the Reference Manual states:
The GPDMA module enables hardware or software controlled data transfers between all
microcontroller modules with the exclusion of those modules which provide built-in DMA
functionality (USB and Ethernet).


Question to Infineon: Can you provide any example or guidelines in how to achieve DMA-driven reception of CAN messages?
Question to Aniello: Have you achieved any progress?

Thanks,
Luis
0 Likes
Travis
Employee
Employee
First solution authored Welcome! 500 replies posted
Hi Guys,

I will try to get one example up.

Best Regards
Travis
0 Likes
Travis
Employee
Employee
First solution authored Welcome! 500 replies posted
Travis wrote:
Hi Guys,

I will try to get one example up.

Best Regards
Travis


Hi Guys,

I experience the same problem. However just for a temporary workaround can you set the

1. Block Size = 2
2. Single Transfer Width = 32

For this configuration I can only get a 32 bit data transfer instead of x2 32 bit data. Hopefully the data length meets your requirement.

I shall report this issue to the App owner.

BR
Travis
0 Likes
Travis
Employee
Employee
First solution authored Welcome! 500 replies posted
Hi Aneillo,

I hope it is not too late to assist you on this case.

Recently I discovered that the reload for the source and destination is not taken care by the apps. Hence you can only see the DMA transfer to happen only once. Please ensure that you have the below mentioned bit set if you want to repeat the transfer.

921.attach


Best Regards
Travis
0 Likes