cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F4x DMA question

llombardini
Associate II
Posted on November 16, 2012 at 14:37

In the reference manual at paragraph 9.3.2 (pg 215) is described that the base address for the transfert is stored in DMA_SxPAR o DMA_SxM0AR register.

Then in paragraph 9.3.7 (pg 221) is described the possibility of automatically increment memory and peripheral pointer.

The question is:

How is done this pointer increment?

The pointer increment is done incrementing the base address stored in  DMA_SxPAR o DMA_SxM0AR or in different mode. In this case which is the register that is incremented when the pointer is incremented?

Thanks

Luca
4 REPLIES 4
Posted on November 16, 2012 at 15:20

  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Enable;

  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;

  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;

  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;

Which register increment, and by what.

If the register level mechanics are critical review stm32f4xx_dma.c / .h

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on November 19, 2012 at 09:40

Which reference manual are you talking about?

In both versions of ST32F4xx reference manual, RM0090, the DMA is described in chapter 8. The pointer incrementation is then described in chapter 8.3.7 (I don 't say it's concise nor exhaustive).

JW

llombardini
Associate II
Posted on November 19, 2012 at 10:38

If you go to the ST website and download the last reference manual (rev 3) you'll find that the DMA is described in chapter 9.

Thanks,

Posted on November 19, 2012 at 11:59

Wow, wow, wow! Rev 3, how fast! :)

Oh, new devices? Hear, hear...

Okay, so chapter 9 - as the rest of the manual, the description here is sloppy, too. If I remember correctly from what I found out by experimenting, the registers as they are exposed (visible from the processor) are incremented, except that there must be some shadow register which is used to reload the exposed registers when circular mode is engaged.

JW