时隔一年重新拾起DSP,还是卡在这个问题上,百度关键字“DSP AD采样不准”,第一个就是自己提的问题。晕,只能自力更生了,问题解决了,在这里记录一下,希望帮助到大家。
DSP AD采样不准有3种情况:
1、和待采样电路没共地(像我这种小白才会犯这种错误)
2、AD排序器的寄存器设置不正确,一般可以参照官方给的例子来设置(下载地址见我的CSDN资源:
http://download.csdn.net/detail/popvip44/9886670)
3、DSP本身的缺陷导致需要对采样结果进行滤波
我重点说一下第三点。下图是一开始的时候,我对1V电压的采样结果(原始结果我找不到了,突然DSP又不能复现这个结果了,所以自己模拟了一副图),使用的是均值滤波的方法:
也就是说采样值一直在1.1到1.9之间跳跃,很奇怪的现象。
之后我修改了滤波算法,改为了采好几次值到缓存中之后不做平均,而是取这几次值的最小值作为这几次采样的结果,得到了下面这幅图(依旧是采集1V电压):
莫名其妙的是,即使再次改回均值滤波算法,也无法复现图1的现象了,不知道为什么。无论如何,总算是能采到正确的电压值了。
时隔一年重新拾起DSP,还是卡在这个问题上,百度关键字“DSP AD采样不准”,第一个就是自己提的问题。晕,只能自力更生了,问题解决了,在这里记录一下,希望帮助到大家。
DSP AD采样不准有3种情况:
1、和待采样电路没共地(像我这种小白才会犯这种错误)
2、AD排序器的寄存器设置不正确,一般可以参照官方给的例子来设置(下载地址见我的CSDN资源:
http://download.csdn.net/detail/popvip44/9886670)
3、DSP本身的缺陷导致需要对采样结果进行滤波
我重点说一下第三点。下图是一开始的时候,我对1V电压的采样结果(原始结果我找不到了,突然DSP又不能复现这个结果了,所以自己模拟了一副图),使用的是均值滤波的方法:
也就是说采样值一直在1.1到1.9之间跳跃,很奇怪的现象。
之后我修改了滤波算法,改为了采好几次值到缓存中之后不做平均,而是取这几次值的最小值作为这几次采样的结果,得到了下面这幅图(依旧是采集1V电压):
莫名其妙的是,即使再次改回均值滤波算法,也无法复现图1的现象了,不知道为什么。无论如何,总算是能采到正确的电压值了。
举报