2013-04-24 07:49 AM
I am working with stm32F0 ADC & DMA peripherals and i have to convert 4 channels.The ADC is triggered by the Timer1.
My problem is that i obtain the result correct but there is a permutation between 2 channels(the second & the 4th).So is any one have an idea to help me resolve the problem.
thanks #forum-says-no2013-04-29 02:42 AM
I am still waiting for your answer !
2013-04-29 07:28 AM
I am still waiting for your answer !
On forums no answer means you've failed to attract interest to your post, or no one currently here has your specific issue, or has any useful comment. You might have to keep waiting. Your problem is compounded by the lack of a complete, free standing, example. I have better things to do than try to paste your code into a project, and add all the surrounding code. A clear description of the test case, the expected results, and observed results would also help. It's scanning backward, does that impact your expectations?
2013-04-29 09:08 AM
First i think that my post is clear and i have explained the problem well , second the scan direction has no relation to my problem, third probably there is a problem in the stm32F0 DMA and if you want you can try the example provided by ST to this core(ADC DMA example).
Finally i didn't ask any one to wast his ''precious'' time to ''paste my code into a project'',i was just looking for someone who has faced the same problem before.
and thank you Clive1 very match for your attention.
2013-04-29 02:10 PM
Doing a quick validation on a STM32F0-Discovery, it looks to me like a TIM1 paced ADC of 4 Channels using DMA appears to generate consistent results for all 4 channels, across a large circular buffer.
One potential road block would be if the TIM pacing exceeds the conversion rate of the ADC.2013-04-30 12:18 AM
I think that the TIM1 has no effect to our problem ,the same problem exist in the continuous mode.
2013-04-30 06:01 AM
esraf posted a similar, but not identical, problem on this forum 1/2/2013. Martin D replied that when the F0 ADC is calibrated, DMA advanced one position forward in the memory buffer. Go read esraf's post and see if that helps in understanding. And check the errata for your processor version to see if this is mentioned.
Cheers, Hal2013-04-30 06:22 AM
can you give me the link of israf's post.
2013-04-30 07:02 AM
Thank you very match ,the problem was resolved.Just the calibration must be done before the DMA initialization to avoid the DMA memory increment.