ADC采样漂移或不准问题排查方法
-
ADC采样漂移或不准问题排查方法
ADC采集是每个项目都需要用到的功能,很多项目应用因为一些条件不当造成类似采集不准、数据漂移等现象的结果,本文以YTM32B1ME05芯片举例说明通用分析方法。
硬件排查
采样电路排查
硬件设计上需要重点关注ADC采集外部引脚上电容匹配,很多用户硬件设计上没注意如下电容匹配条件,这个一定会影响ADC采集,这个参数查询确认具体参考每个芯片的DS中ADC Characteristics章节,如下图所示:
VREF电压排查
按照硬件设计指南,在保证VDD、VDDA、VREF等正确设计的情况下,ADC采集不受影响。
万一出现无法确定的情况,测量VDDA、VREF等工作电压辅助判断。软件排查
配置排查
ADC有个采样率的重要指标:
- MD/ME芯片ADC采样率 <= 2M;
- LE/MC芯片ADC采样率 <= 1M;
采样率一般在RM的ADC章节的Features篇:
- YTM32B1ME0芯片的采样率描述如下
- YTM32B1LE0芯片的采样率描述如下
采样率影响的因素有:
1.ADC clock
2.ADC sample resulution
3.ADC SMP time
以ME系列举例说明采样率计算和配置检查:
采样率 = AdcClk / (2 + SMP + RES)
其中:
1.AdcClk:功能时钟经IPC分频后经Adc再分频后时钟
2.SMP:采样时钟数,SMP寄存器
3.RES:采样精度,12bit精度则对应12个采样时钟
举例:配置YTM32B1ME0 2M采样率
1.ADC IPC功能时钟选择FIRC(96M),IPC配置3分频(得到32M)
2.ADC内部分频PreDiv配置0为1分频(得到AdcClk为32M)
3.SMP配置为2
4.RES配置为12
配置要求:
1.AdcClk <= 32M (MD/ME)
2.AdcClk <= 16M (LE/MC)
3.采样率 <= 2M(MD/ME)
4.采样率 <= 1M(LE/MC)
5.在保障数据稳定的前提下,可以适当增大SMP降低采样率。
用法排查
1.ADC不论是软件触发和硬件触发,保持正常工作模式和触发时序,一般都能正常工作。
2.ADC一旦启动会自发运行,用户在debug过程中监测ResultBuf[]即可,不能打断点看结果,这种调试方式会导致ADC自发运行得到的结果和调试器监测的结果不同步,最终导致ADC OVERRUN等故障状态。
3.ADC采集debug过程中,在监测窗口不要去观测ADC FIFO等寄存器,观测行为等同于ADC_DRV_ReadFIFO()驱动,会影响FIFO队列和结果错位。
4.ADC多通道采集需要切换通道的,MCAL方式支持多Group机制,SDK方式如果两次切换Group时间间隙小,可以参考如下加Adc_Reset()操作:Adc_Reset() Adc_Config(&config_1) Adc_Start() ...... Adc_Reset() Adc_Config(&config_2) Adc_Start()
5.ADC采集的结果只跟ADC采集管脚对应的万用表测量电压对应,不考虑分压或者反算、补偿等误差带来的干扰分析。
其他排查
以上是一些常见的通用问题排查,结合应用如果都排查完了还不好定位,请联系原厂技术支持。
-
帮助没办法联网的电脑使用YCT
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...