本帖最后由 viack 于 2011-3-19 15:40 编辑
我使用STM8L系列中的STM8L152C6T6 单片机进行ADC转换,其检测的信号为交流电压信号,我们使用了信号发生器进行模拟输入,输入信号经过下图1的信号调理电路和低通滤波电路进行调理使输出信号能够满足STM8L152C6T6 ADC输入的条件。图2为输入信号波形与经过调理后的波形。
橙色为原始输入交流50Hz信号500mVpp,红色为经过调理后的信号,既输入至ADC采样的信号。
图2
我们在一个周波里面定时1.66mS采集12个点电压值。如下图所示:
我们采集12点数据用傅立叶计算出实际信号的峰峰值,当我们输入信号比较小的时候,误差还是比较小的,可以接受的。当输入500mVpp信号时,峰峰值误差大概在6-10左右的变化。当我们将信号幅度调整到2.5Vpp的时候,我们发现误差非常大。经常是40-120左右的变化。跟我们实际的值有20%的误差。这个比较不能接受。大家有没有这类的问题,或者能帮忙分析下到底出了什么问题。
PS1:我们测试采集纯直流电压发现精度是很准的。
PS2:我们用了一块AVR的M32也进行了一场对比测试,同样的输入信号,AVR精度误差始终不会超过3.
|