MD1_ADC测试到FIFO错位问题
-
问题说明:
- 应用ADC FIFO时,ADC序列未转换完成也要清除FIFO的数据,否则会影响下一次的数据获取;
问题分析
-
芯片:MD1
-
如果FOC运算时间较短,可能会导致软件组ADC未能全部转换完成,为保证FOC的时效性,软件不会对FIFO进行取值;
-
虽然ADC组没有整体转换完成,但可能已经转换了个别通道,如果不对已转换过的ADC通道进行处理,理论上后续再取值时,会出现FIFO数据错位情况;
-
通过上述优化,反复测试未再复现FIFO错位的问题;方案有效。
特别注意
-
在排查问题时,尝试重新开关ADC外设也解决不了问题,必须要清除FIFO才OK;
-
FOC应用中,ADC中断优先级一定要最高,ADC中断最好不要被轻易打断;(曾遇到客户移植恒润Autosar自动生成的CAN报文软件后,导致ADC FIFO值先错位,接着FIFO值不更新,后来排查到CAN报文软件内有开关全局中断,手动将相关指令屏蔽后,反复测试ADC正常)
1/1
发帖前请查看
帮助没办法联网的电脑使用YCT
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...