cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H7xx ADC in scan mode with continue DMA doesn't works when dcache was enabled

OGhis
Associate III

Hi,

I use the nucleo board "Nucleo-H743ZI2 and STMCube.

See attached file for setup. (Actual DCACHE option disabled)

I call the ADC as follow.

ALIGN_32BYTES( uint32_t Buffer[11]);
 
if (HAL_ADC_Start_DMA(&hadc3,  (uint32_t*)Buffer, 11) == HAL_OK) {
}
 

This works.

When i now enable the CPU DCache option in MxCube under Cortex_M7, i receive not more the data from the ADC.

How can i resolve this issue?

btw. i have also R32 (VREFP is open) removed from the nucleo board otherwise the VREFBUF can't be activated.

Regards

1 REPLY 1

DMA is outside the scope of the MCU, the cache doesn't snoop external traffic. You have to manage cache coherency yourself, either via the MMU settings for the memory regions used for the buffer(s), or explicitly with the DCache Clean/Invalidate by Address functions.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..