用了stm32好久,一直没用它的ad,也不大了解。
以前用430的12位ad,感觉是cpu功耗低且稳定,所以片内ad可以说不受cpu运行影响。12位ad输出数值还是跳的,按照ti的资料就是输出服从正态分布了,呵呵,一般跳数不超过10。做电表也够用。片内基准初始精度不好,但是稳定度不错,所以校一次就可以。
avr的10位ad输出值比较稳定,跳数较小,不过avr核心不怎么好,在运行频率的2倍和10倍上有不小的EMI. ad转换结果受电源影响较大
一般够用
我的是两通道同时使用,DMA传输,采集50HZ信号,每周波24点,连采3次取平均,算法为全波F算法。0输入时跳动万分之四,满量程时最大误差千分之一,满足测量精度要求。
特别指出,该芯片稳定性很好,在没有外壳屏蔽和任何接地措施的情况下,关闭看门狗,安全运行72小时没发生死机现象。
楼上的,你的参考电压是怎么处理的?
我也想跟你一样的应用,可是发现它的AD
测量交流信号
测量交流信号,2楼为何每周波只采24点?按理采32或48点也来得及,计算或许也来得及。
外接
外接的3V参考。我使用24点采样是因为我的项目只用基波分量,24点都有点多。现在每通道的3次采样+平滑+全波付氏算法用时为36uS,采集6通道为210uS左右,采集48点不成问题。48点时中断周期为416uS,还有一半的时间处理按键/显示等任务。
为什么要这样做啊?
STM32内部有DMA,高速度采样不受CPU的干预,而且内部RAM也很多,你可以用足够的点数来提高精度。况且STM32的FFT库,采用32位定点运算,256点才410微妙,六通道下来不过3毫秒,对于单周期采样,单周期出结果也是没有问题的,事实上做电表的,不需要这么高的速度的