本帖最后由 香水城 于 2017-8-17 14:31 编辑
ADC 对小信号的转换结果为零
问题:
该问题由某客户提出,发生在 STM32F103VBT6 器件上。据其工程师讲述:在其产品设计中,使用了 STM32 的 ADC 扫描按键。在软件调试时,发现对于小于 200mV 的输入信号,ADC 转换出的结果匀为 零。ADC 的参考电压为 3.3V,根据公式计算:
不应该是零。
调研:
检查 STM32 的各路电源,包括 VDD、VDDA、VBAT,匀为 3.3V,未见异常。检查各路接地,包括 VSS、VSSA,与电源地接通良好。检查 Vref+,发现该信号与 VDDA 之间有电阻。检查 Vref-,发现该 信号与地之间有电阻。检查原理图,确认,Vref+与 VDDA 之间有一 10K 电阻,Vref-与地之间有一 10K 电阻。修改 PCB,将两个 10K 电阻换成零欧电阻,重新运行软件测试,转换结果正确。
结论:
ADC 的参考信号设计错误。Vref+与参考电源之间有较高的阴抗,Vref-与 VSSA 之间有较高的阻抗, 导致 ADC 的参考值产生偏移。
处理:
Vref+与 VDDA 之间改用零欧电阻连接,Vref-与 VSSA 之间改用零欧电阻连接。
建议:
数据手册中给出的 Vref 输入电流的典型值为 160uA。这一电流在 50Ω 电阻上的压降为 。当参考电压为 3.3V 时,1 个 LSB 的转换值对应的输入电压值为
按以上计算结果,这种情况下,电阻带来的参考电压的偏移,相当于 10 个 LSB 的转换值,已经和数据手册中给出的 ADC 的最大误差相差无几。所以,当需要在 Vref 前设置滤波器的设计中,由滤波器产生的参考电压的偏移是要加以考虑的。 通常,LC 滤波器较 RC 滤波器更适合这方面的应用。
对应的PDF: ADC 对小信号的转换结果为零
更多实战经验请看: 【ST MCU实战经验汇总贴】
|