1.前言
今天,我们讲解下ADC数字值转化为电压值,如何计算?
ADC是模拟数字转换器,将模拟电压转换为数据值(数据值的范围由ADC分辨率决定),存到ADC数据寄存器中。在使用中,我们常常需要把数据值再转换回电压值。本文我们讲解数据值如何再转化为电压值。
2.
核心公式:
电压值(V) = (数字值 / (2ⁿ - 1)) × Vref
其中:
• 数字值:ADC输出的二进制数值(如10位ADC的取值范围为0~1023)。 • n:ADC的分辨率(位数,如10位、12位)。 •
Vref:ADC的参考电压(决定输入电压范围,通常为0~Vref)。
详细解释这个过程,但首先得理清楚ADC的基本原理和转换公式。
首先,ADC是模数转换器,将模拟电压转换为数字值。转换后的数字值通常是二进制数,比如10位或12位的分辨率。分辨率决定了数字值的范围,比如10位的话,最大值是1023(2^10-1)。
接下来,参考电压是关键。ADC的参考电压Vref决定了输入电压的范围。通常,ADC的输入电压范围是0到Vref。例如,如果Vref是3.3V,那么输入电压0V对应数字值0,3.3V对应1023(对于10位ADC)。
转换公式应该是:电压值 = (数字值 / (2^分辨率 - 1)) * Vref。比如,10位的话,分母是1023,数字值乘以Vref再除以1023得到实际电压。
不过,可能有些细节需要注意,比如是否使用满量程电压,或者是否有偏移。比如,有些ADC可能测量的是相对于Vref/2的中点电压,但通常标准情况下是0到Vref。
另外,可能要考虑ADC的输入范围是否是对称的,比如有些ADC可能允许负电压,但通常单电源系统中是0到Vref。
所以,步骤应该是:确定ADC的分辨率(位数),确定参考电压Vref,然后用数字值乘以Vref再除以(2^分辨率 -1)得到实际电压。
例如,假设ADC是10位,Vref=3.3V,数字值是512,那么电压是(512/1023)3.3 ≈ 1.65V。
可能还需要考虑是否使用校准,比如实际Vref可能有误差,或者ADC存在非线性,但基础转换公式是这样的。
总结起来,关键参数是分辨率和参考电压,公式是电压=数字值(Vref)/(最大数字值),其中最大数字值是2^n -1,n是位数。
其中, Vref要着重说明一下
Vref是参考电压。这个电压的作用是为ADC提供一个内部稳定的电压,不受外界电压变化而变化。
从前面的公式,我们就知道 ADC采集到的数据值往电压转换时,需要用到Vref. 假如Vref的值为3.3V,但如果Vref的值不稳定,我们继续用3.3v的值来做计算,就会导致计算出的电压值与结果我们实际电压值有偏差。
电压值的计算还有另外一种计算方法
Vchx=VREFINT×(ADchx/ADrefint)
其中,
Vchx为采集的某个通道的电压值
VREFINT为内部参考电压值
ADchx为采集到的数字值
ADrefint为参考电压对应的数字值
当ADC分辨率为12位时,ADC表示的数值为0~4095总计 2ⁿ - 1(n取12)个。
通常,ADC的输入电压范围是0到Vref,加入0V时对应的数字值时0,Vref对应的数字值就是2ⁿ - 1。
Vchx=VREFINT×(ADchx/ADrefint)
就可以推导为:
电压值(V) = (数字值 / (2ⁿ - 1)) × Vref
3.示例计算
示例:
若使用10位ADC,Vref=3.3V,数字值为512,则实际电压为:
V= 512/1023 ×3.3≈1.65V
关键点:
1.分辨率决定精度:位数越高,数字值能表示的电压间隔越细(如12位ADC的间隔为 Vref/4095)。
2.参考电压校准:实际电路中需确保Vref稳定,否则需通过校准修正误差。
3.输入范围匹配:输入电压需在ADC允许范围内(如0~Vref),超量程可能导致失真。
通过此公式,可准确将ADC数字值还原为实际电压值。
对精度要求比较高的场景,就需要把ADC分辨率配置为最高的分辨率,12.
但相应的高分辨率,转换时间长。