XMC4500 DMA and 16bit transfer of captured timer value doesn't work

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

cross mob
User10215
Level 4
Level 4
First like received
Hi everybody,

I have a XMC4500 relaxKit and I use the ERU to trigger a capture of CCU42.CC40 when a button on the board is pressed. Debugging shows that this works fine and the timer value at button-press gets captured into CCU42_CC40->CV[1].
Now I want to transfer the captured value into an array in RAM using the DMA. My configurations of the DMA are:

- source address &CCU42_CC40->CV[1]
- destination and source transfer width of 16bit because I only want to transfer the captured timer-value and not the rest of the capture-register
- destination address count mode incremental
- source address count mode no change
- source and destination burst length of 1
- block size of 1
- transfer type multi-block with reloading source address and contiguous destination address

However, this setup doesn't work since I can't see any values arriving at the destination array. Only if I change at least the source transfer width to 32bits I can see values arriving in the destination array. But each time the whole content of the capture-register is copied to the destination array.

How can I achieve a 16bit transfer with the DMA so that I only get the captured timer value in the destination array?

Regards,
Niclas
0 Replies