在使用单片机ADC的时候,采集电压高于参考基准电压,比如1.2V参考基准,被采集电压是1.5V,这时候会出现什么现象呢?当然电路设计的时候应该避免出现这个问题,但是有时候因为考虑不全面,出现这个问题。这里暂不考虑电压太高导致管脚损坏的情况。
等效电路图
例如,我司某产品经过多次试产,多次测试,已经量产几千了,出现了这个问题,电路设计为固定阻值电阻与可变电阻分压,可变电阻接地,固定阻值电阻接3.3V电源,AD采集中间分压,AD采集参考基准是1.2V,极端情况下被采集电压会高于1.2V参考,这种极端情况出现的概率小,一直也没出现BUG,电路设计者已经离职,为什么这么设计已无从查找,可能电路设计者想省掉一个1.2V LDO,我们这个产品是要走量的,需要精打细算的,他可能认为高于参考的时候,采集到应该是1024(这里是10位AD),在好多单片机上的确如此,可偏偏我司使用的这个单片机不是这样,采集到的数据非常奇怪,大致摸了一下数据,如下:
1、1.2V以下采集的数据正确
2、1.2V至1.5V采集数据杂乱,数据规律性不强,而且数据严重偏离正确值。
3、1.5V以上数据为0,这种情况应该是AD管脚内部保护电路起作用了直接拉到GND,只是猜测。
最后的解决办法是:
1)已经售出的产品,无法修改硬件,只能从软件上解决,杂乱数据规矩性不强,不能全部去除掉,无法根治,但是降低了概率,也只能凑合了。
2)后续生产新产品增加1.2V LDO,替换到3.3V电源,从根本上解决问题。
唉,一个简单的AD采集带来了这么严重的问题,所以硬件工程师一定要仔细,多想多测,否则就背锅吧。
另外吐槽一下,在我们公司背锅总是硬件工程师和结构工程师,真是无语了,唉。人家软件出问题,出个新版本更新一下就好了,硬件结构出问题基本上无法修改,都是严重错误。
添加关注,了解更多干货!