Hi Forum
I use adc with dma on different stm32-mcus.
i try to sample 3 channels in continous mode with a long buffer to
filter later.
this all works as long as there is no additional interrupt.
i set up the system with highest priority for dma(0), but lowesd for
I2c(3) in NVIC.
What happens:
the order of the adc values in Memory changes for no reason.
1 | Value 1 -> Battery Voltage -> adcRawMemory[0]
|
2 | Value 2 -> External Poti -> adcRawMemory[1]
|
3 | Value 3 -> Temperature -> adcRawMemory[2]
|
4 | Value 1 -> Battery Voltage -> adcRawMemory[3]
|
5 | Value 2 -> External Poti -> adcRawMemory[4]
|
6 | Value 3 -> Temperature -> adcRawMemory[5]
|
after some intterupts on i2c the order changes:
1 | Value 1 -> Battery Voltage -> adcRawMemory[1]
|
2 | Value 2 -> External Poti -> adcRawMemory[2]
|
3 | Value 3 -> Temperature -> adcRawMemory[3]
|
4 | Value 1 -> Battery Voltage -> adcRawMemory[4]
|
5 | Value 2 -> External Poti -> adcRawMemory[5]
|
6 | Value 3 -> Temperature -> adcRawMemory[6]
|
I also see this behavior with the iwd activated...
any one has some fundametal hints to this problem?
Is there any syncronisation issue in the stm32 core that needs to be
addressd when using ADC with DMA?
Rebell