最近在进行原理图规划的时分遇到了一个问题,便是STM32的100管脚一下芯片没有Vref的问题。64Pin及以下封装的芯片电源管脚有:VDD – 单片机3.3V 电源正,VSS – 单片机3.3V 电源负,VDDA – 单片机A/D 转化器电源正,VSSA – 单片机A/D 转化器电源负。
插一句:因为STM32F103系列单片机的内部高速RC 振荡器(HSI)由VDDA、VSSA 供电,故即便不运用单片机自带的A/D 转化器,也有必要确保VDDA、VSSA 的供电,不然STM32F103单片机不能正常发动。
言归正传
在小于等于64Pin的芯片中,在芯片的内部Vref+是和VDDA衔接在一起的,也便是说ADC的是以VDDA为参阅电压的。那么还有一点需求留意的便是VDDA和VDD的压差有必要小于300mV ,不然或许因为上电断电的非同时性,导致数据的丢掉。但是这就有或许导致了ADC参阅电压的非精确性。
怎么处理ADC参阅电压的问题呢?
一、每个STM32芯片都有一个内部的参照电压,相当于一个规范电压丈量点,在芯片内部衔接到ADC1的通道17。依据数据手册中的数据,这个参照电压的典型值是1.20V,最小值是1.16V,最大值是1.24V。这个电压根本不随外部供电电压的改变而改变。
不少人把这个参照电压与ADC的参阅电压混杂。ADC的参阅电压都是经过Vref+供给的。100脚以上的类型,Vref+引到了片外,引脚名称为Vref+;64脚和小于64脚的类型,Vref+在芯片内部与VDDA信号线相连,没有引到片外,这样AD的参阅电压便是VDDA上的电压。
假如关于ADC丈量的精确性要求不高时,能够运用这个内部参照电压得到ADC丈量的电压值。具体方法是在丈量某个通道的电压值之前,先读出参照电压的ADC丈量数值,记为ADrefint;再读出要丈量通道的ADC转化数值,记为ADchx;则要丈量的电压为:
Vchx = Vrefint * (ADchx/ADrefint)。其间Vrefint为参照电压=1.20V。
二、选用外部参阅基准电压,其原理同第一种是相同相同的,只不过将第一种中的参照电压换成了自己设定的基准源的电压,公式同上。