false

false

EN

GR5515 APP驱动历程中的AD采样,DMA数据的前两个数据不正确

130***761

2021-08-10 11:01:33

使用贵司提供的历程进行ADC采样时,发现第一次DMA数据的前两个AD数据不正确,一般在1.6V左右,后续偶尔也会出现,第一次必现。

IT_Lover

2021-08-11 10:37:08

这是ADC模块的采样参数没那么快生效导致,在刚初始化完后的第一次采集数据会发生。

ADC初始化完成后的第一次数据采集,ADC模块内部需要花一个周期清除之前的采样参数,再花一个周期时间让新的采样参数生效。所以在ADC初始化完成后立即调用app_adc_conversion_sync()或app_adc_conversion_async()接口去采集数据,此时采样参数还没稳定,采集到的前面2~3个点是错误的。第二次及后面的调用接口采集到的数据不会出现这种情况。


建议在ADC初始化后的第一次采集数据,把前面的2~3个数据过滤掉。

1条评论

您的评论

130***761

2021-08-11 10:46:55

初始化之后延时300ms后采样,前两个数据仍然异常,是要初始化之后延时多长时间再去采样才会正常呢?另外现在5515的AD每次只能采集一个通道,现在要用到多通道,切换通道时每次都要重新初始化,是不是那么每次的前面几个数据都要丢弃?

0条评论

您的评论

IT_Lover

2021-08-11 11:22:12

1. 采样参数只有在采样时钟发起后才开始去生效,这个生效过程要花时间; ADC初始化只是把参数写入到寄存器。所以只有调 app_adc_conversion_sync()或app_adc_conversion_async()才会去生效。在ADC初始化后延时多久,都无法规避这两个异常点。

2. 是的,通道变化涉及到参数的变化,所以每次变化通道后的采集,需要丢弃前面2个异常数据。

0条评论

您的评论

wan****com

2021-08-12 18:09:51

感谢你的提问,我们会在SDK 1.6.10之后的版本,优化接口实现,内部舍弃无效数据,对外保证数据的正确性。

0条评论

您的评论

共 4条记录
1

您的回答