先说下情况:
我第一次用stm32单片机,其中有测量要求是0-2V电压,要求分1000份,就是能分辨出2mv(精确的)。当初定的方要求注意成本,就选的stm32F103RCT6,12位的ADC,就忘记考虑精度了。
实测的时候发现数飘得厉害,怀疑是阻抗匹配的问题,就把采样时间加到最大,用电池试了下,但还是有波动,在10个左右吧。然后又怀疑是电源纹波,用的是开发板,查了下电路,该有的电容都没接,可能是导致飘的原因。
之后查了下stm32数据手册,看了下AD精度,原来误差最大能达到正负5个LSB,我用的是64脚的,没有nref,是用一路单独测基准,这样误差又大了一倍。
我现在考虑的解决方法是:
1.按照硬件开发指南开个板。
2.引脚换成100多个带nref的,这样误差可以比现在接法缩小一倍。
3.基准电压换成2.5v甚至2.048v的,这样分辨率可以在小些,结果也能更准确些。
4.在软件上用用好的算法,因为实时性要求不高。
虽然这些措施可以减小些误差,到时还是怕最后精度达不到,毕竟手册上标的误差就5个。现在就是不知道该怎么办了,外接AD的话成本高,需要测两路,这个要求低成本的。不知道大家有没有什么好方法建议啊。 |