Not applicable
Aug 04, 2014
11:59 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aug 04, 2014
11:59 PM
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.
But I have been able to catch just one message (CAN LM02) using the following DMA App configuration
and setting source as follow
Thanks in advance
Aniello
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.
But I have been able to catch just one message (CAN LM02) using the following DMA App configuration
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
4 Replies
Not applicable
Aug 08, 2014
09:34 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aug 08, 2014
09:34 AM
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
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
Aug 10, 2014
07:21 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aug 10, 2014
07:21 PM
Hi Guys,
I will try to get one example up.
Best Regards
Travis
I will try to get one example up.
Best Regards
Travis
Aug 12, 2014
08:08 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aug 12, 2014
08:08 PM
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
Oct 24, 2014
01:26 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oct 24, 2014
01:26 AM
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.
Best Regards
Travis
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.
Best Regards
Travis