stm32 adc输入电压范围_初学ADC模块应用的一些问题

本文介绍了STM32 ADC模块的基本使用,包括单片机读取的ADC值范围(0-4095),如何将读到的值转换为实际电压,理解参考电压的概念及其重要性,以及ADC输入电压范围通常为0到VDD。对于超出ADC输入电压范围的信号,可以通过电阻分压和放大器进行预处理。

单片机会读到什么值?

如何利用单片机的ADC模块(或者独立的ADC芯片)得到接入ADC管脚上的实际电压值?

这个问题,是第一次接触ADC时候,大家都会遇到的问题。

单片机会读到什么值?需要看一个特性,就是几位的ADC,在手册上就会给出,例如,STM32的ADC是12位的。另外,还有8位,10位,16位,24位等。

我先告诉你答案:STM32读到的ADC值,是从0到4095,当你把ADC引脚接了GND,读到的就是0,当你把ADC引脚接了VDD,读到的就是4095。

接下来告诉你为什么:前面提到,STM32的ADC是12位的,我们知道,8位的值是从0~255;16位的值,是从0~65535。这两个位的最大值,是我们最为熟悉的。

(怎么算出来的?这问题就又降低到另一个层面了,这里我们说的几位的值,每个位只能是0或者1,比如2位的值,可以表示为00 01 10 11四种不同的值,这是以2进制表示的,转换成十进制就是0 1 2 3,所以得出结论,2位的值可以表示从0~3。同理,3位的值,可以表示十进制的0~9,你可以展开计算一下。4位的值,可以表示0~16,5位的值,可以表示从0~31,同理,你可以得出任意位的值可以表示的范围。)

所以,12位的值,可以表示从0~4095,这就是先在感性上,认识了为什么12位的ADC的值,是从0~4095.

读到的值怎么换算成实际的电压值

前面提到了,我们输入GND,读到的值是0,输入VDD,得到的值是4095,那么,当你读到2035的时候,你知道输入电压多少V吗?这个问题,归根接地,就到了数学XY坐标,已知两点坐标值(0,0)(3.3,4095),给出任意X坐标值,求Y值的问题了吧?简单不简单?

f4dc3a8eeb3f035aded2e2a4e16731a6.png

参考电压是什么

讨论这个问题之前,你先拿万用表量一下你的VDDA的实际电压是多大?是不是标准的3.300V?应该不是吧?或许是2.296V,或许是3.312V。然后你把VDD连接到ADC引脚之后,得到的是4095,也就是,实际上,当你读出4095这个数据的时候,实际的电压值不是你想象中的3.300V。有些初学者,觉得几毫伏的电压差无所谓,但实际应用中,几毫伏就可能代表很大的实际工况,例如,在一个量程为50克的电子称上。

所以,这时候,芯片厂商就想了一个办法,给ADC模块中引入参考电压,由非常标准的参考电压芯片来接入参考电压引脚。标准的电压芯片,我们一般叫做参考电压芯片,或者叫做基准电压芯片。例如REF3133(输出3.300V) REF3025(输出2.500V)等等。

注意:STM32 的100脚以上(含100脚)有参考电压引脚。在没有参考电压引脚的单片机上,可以把基准电压芯片接入VDDA,但是VDDA和VDD的电压差不能超过0.3V,例如,VDD是3.3V的话,可以给VDDA接入一个3.3V的参考电压芯片或者3.0V的参考电压芯片,但是不能接入2.5V的参考电压芯片,后果就是芯片不能工作。

ADC引脚的输入电压范围是多大

一般情况下,ADC引脚的输入电压,是从0~VDD,如果有REF引脚,一般是0~Vref,也有0~2Vref的情况。

如果被测的电压大于ADC的输入电压,例如,要用STM32测量0~5V的电压的话,可以在输入ADC引脚之前,加入电阻分压和放大器电路。

STM32ADC输入电压范围取决于供电电压和参考电压。一般情况下,当MCU供电电压为3.3V时,ADC输入电压范围为0~3.3V。这是因为在设计中,VREF-通常与地相连,VREF+与VDDA相连,而MCU供电电压即为ADC模块的参考电压。因此,当MCU供电电压为3.3V时,ADC输入电压范围为0~3.3V。\[1\] \[2\] \[3\] #### 引用[.reference_title] - *1* [笔记:STM32ADC参考电压与参照电压(电源监测)](https://blog.youkuaiyun.com/sinat_42731525/article/details/106296469)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [stm32 adc输入电压范围_初学ADC模块应用的一些问题](https://blog.youkuaiyun.com/weixin_39517546/article/details/109968287)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [STM32ADC详解](https://blog.youkuaiyun.com/qq_43743762/article/details/100067558)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值