"); //-->
A/D转换的误差主要由以下几个方面决定,welink端子分别说明如下:
(1) 单片机的电源电压VDD:在该A/D转换中,VDD电压是造成A/D转换误差的主要原因,如果使VDD电压精度做到较高,则A/D转换误差可以做到很小,在VDD电压精度为0.5%情况下,实际的A/D转换误差小于1%。
(2) 软件产生的PWM占空比:若用于产生PWM的软件设计不良,会使存放占空比的寄存器值与实际输出的PWM占空比不一致,这会导致测量误差。
(3) 比较器输入端的失调电压:该电压对A/D转换精度有一定影响,但影响较小。
(4) RC滤波电路的纹波:在R1、C1取值不当的情况下,U1处的电压纹波较大,并且延时时间不够,会使A/D转换产生误差,因此R1、C1取值不能太小,但太大又会影响A/D转换速度,推荐使用图一中所示的R1、C1参数,nnmu_q在纹波合理的情况下,其转换误差也可通过软件消除。
A/D转换误差的解决办法:
(1) 对VDD造成的误差,只能通过提高VDD电压精度来解决,它相当于A/D转换的基准电压。
(2) 对于软件中PWM设计不良导致的误差,可修改软件进行解决,本文提供了用软件产生PWM的程序流程图,实际使用中可按此流程设计程序。
(3) 对比较器及RC滤波电路的纹波导致的误差,在软件中可通过上、下检测法进行消除,即先将PWM的占空比由小到大变化,使U1电压由低往高逐渐变化,在比较器输出端变化时记录其A/D转换值,再将PWM的占空比由大到小变化,使U1电压由高到低变化,在比较器输出端变化时记录其A/D转换值,将两次的A/D转换值进行平均,可有效地消除这两种误差。
(4) 对A/D转换值进行数字滤波,如多次转换求平均值等。数字滤波消除误差的方法很多,welink端子在此不再赘述。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。