cancel
Showing results for 
Search instead for 
Did you mean: 

DMA Transfer sporadically not done

kay2
Associate II
Posted on February 22, 2011 at 12:21

DMA Transfer sporadically not done

7 REPLIES 7
kay2
Associate II
Posted on May 17, 2011 at 14:25

Now i have disabled circular mode and set back DMA_Channel1->CNDTR manually in ADC_IRQHandler- ISR (interrupt from ADC1, EOC).

I observe DMA_Channel1->CNDTR in the isr and sometimes (very seldom) it is NOT 0, but EOC ist set! So it seems to me as if the DMA request does not reach its target sometimes.

A silicone bug?

disirio2
Senior
Posted on May 17, 2011 at 14:25

Hi,

Probably you should try to raise the priority of the DMA channel associated to the ADC and verify if this makes any difference.

Giovanni

---

http://www.chibios.org/

kay2
Associate II
Posted on May 17, 2011 at 14:25

I already did it, the ADC-DMA has the maximum Priority 11b, all other DMAs have the Prio. 10b

disirio2
Senior
Posted on May 17, 2011 at 14:25

Is the ADC operating within its maximum frequency? if I remember well it is 14MHz.

You may also try to reduce the ADC clock or increase the sampling time on your channels.

Giovanni

http://www.chibios.org/

disirio2
Senior
Posted on May 17, 2011 at 14:25

Double post, sorry.

kay2
Associate II
Posted on May 17, 2011 at 14:25

Hi, i have no Solution till now, only a workaround (i do not use the circular mode any longer and throw away the memory-results when i notice the error -> DMA count not 0 when EOC is set). What do you mean, ''the failure continues''?

tcoen2
Associate
Posted on May 17, 2011 at 14:25

Hi flasher2,

I am using a very similar setup and experiencing the same problem. The DMA fails about every 3 to 6 hours. Once it fails, it continues to fail until a reset. I have not been successful in trapping a failure in the debugger.

Have you made any progress on this? The only thing I have determined is that it gets worse if I change the ADC sample time from ADC_SampleTime_28Cycles5 to ADC_SampleTime_239Cycles5.

Regards,

Tyler