良许Linux教程网 干货合集 MCU ADC如何测量超过VCC的电压?

MCU ADC如何测量超过VCC的电压?

假设MCU的供电电压是3.3V,而ADC的测量范围是0-3.3V。在需要测量高于这个范围的场景中,比如电池电压为6V,我们可以采取一些方法来解决这个问题。

一个常见的解决方案是使用电阻分压来将高于3.3V的电压缩小到ADC能够接受的范围内,然后再进行采集和转换。但是,这会带来一个问题:分压电路中的电阻值应该选择多大?例如,如果选择1/2的分压比例,应该是两个1KΩ串联还是两个1MΩ串联?电阻值是否可以随意选择呢?

image-20231012203232853
image-20231012203232853

先说结论:电阻不能随意选,首先它不能太大!

以STM32F103为例子,在数据手册中可以看到外部输入阻抗有一个最大值50kΩ的要求。

image-20231012203236491
image-20231012203236491

这个值是由下面的计算公式算出来的,

image-20231012203240489
image-20231012203240489

需要注意的是输入阻抗的最大值并不是固定不变的,不是说只要小于50kΩ就可以,因为它和ADC时钟频率、采样周期、转换位数都有关系。比如上面表格中,当ADC时钟频率14Mhz,采样周期1.5 cycels,转换位数12时,最大输入阻抗就是0.4kΩ。

Tab 46标称的最大输入阻抗50kΩ,是在ADC时钟频率14Mhz,采样周期55.5 cycles,转换位数12时计算出来的值,它同时也是ADC模块所能接受的最大值 (受硬件决定,这也是为什么Tab 47最后两行写NA的原因,虽然根据公式也能算出来一个比50更大的值)。

简单来说,可以这么理解:因为ADC内部的采样保持电路(电容组成),如果外面的电阻大,就会导致RC电路充电时间长,如果采样周期小,就会引起电容在没完全充满电的情况下就被采集,自然ADC得到的数就不准

从提高ADC采样速率的角度来说,电阻越小,RC充放电速度快,ADC的采样速率就能更高。不过电阻小,会增大功耗,在对功耗有要求的场合,这个电阻还不能选的太小。

对于必须低输入阻抗,同时又需要低功耗的场合,可以先用大电阻分压,后面再用运放跟随器的方式。

电阻大小的问题说完了,还有最后一个问题,等效输入阻抗和第一幅图里的两个串联分压电阻是什么关系?等效输入阻抗是R1、还是串联值R1+R2,还是并联值R1*R2/R1+R2 呢?这个问题曾困惑了我好久,当年上学时学的理论知识全交给老师了![image-20231012203245329

这个问题可以这么简单想,假设R2是0Ω,进入到ADC的电压就是GND,和R1是多大就没关系了,等效输入阻抗就是0Ω。再假设R2无穷大,等于是断开,电阻只有R1了。这么一想答案就清晰了吧,等效输入阻抗是两个分压电阻的并联

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部