您的位置:首页 > 其它

STM32 小于100引脚封装的 AD参考电压问题

2017-09-27 14:58 281 查看
本帖最后由 名字不好起 于 2015-2-21 13:43 编辑

STM32F103系列单片机具有12位的ADC转换器,单个ADC转换速度最快可达到1M,具有很高的实用价值。

然后最让人纠结的是,系列中小于100脚的单片机中ADC的REF+是接到内部的AVDD上的,外部不再引出REF管脚。

如此就会让习惯使用外部参考基准的网友感觉很尴尬,针对此种情况,曾经在STM32研讨会上有人就提了这个问题,问为什么不留意个REF

回答是--IO脚资源紧张,那么多的GPIO,留出一个给VREF多好,ADC再好,没有VREF 就是显得鸡肋。没有办法,好多人就想出了一些解决办法。楼主在

开发的过程中就总结到了一些方案,现将其分享出来。

首先,如果对ADC的转换精度要求不是很高的话,可以才有官方的方案,REF=AVDD,使用一个比较稳定的电源,同时要在程序中加入一些的滤波算法处

理。

其次,如果对ADC的精度要求高的话,也有俩种做法第一:使用内部的17通道,即参照电压通道(注意是参照电压不是参考电压,楼主在一开始的时候就弄糊涂了),ADC同时采集模拟数据和17通道的数据,这就要求采集这两个通道的数据尽量的短。采集ADC数完毕之后就通过内部的数据转化修正当前采集通道对应的实际ADC值。这个做法比较费脑子,费CPU。第二:就是喜欢用外部基准芯
4000
片的人喜欢的方案了,和第一种方案中的采集17通道不同的是,这个方案是采集当前接到外部基准芯片的通道,并通过类似于方案一的做法加以处理。

目前楼主,只尝试过这几种做法,就当在这里抛砖引玉了,说实话,以上做法都不是我喜欢的,大家如果有好的方案不妨提出来,分享一下,大家一同讨论下,好一起进步。


64脚和小于64脚的STM32进行AD时注意,参照电源处理方法

 (2013-05-23 12:11:45)

标签: 


stm32

 


运放

 


ad

 


参考电源

 


64

分类: STM32/8S
请注意,ADC_IN17上没有内部基准,将其说成基准电压概念不对。
所以横线以下的理解不对,如果将其做为参考,则其电压假定按1.2V计算,实际测量的数字量是1271~1275,按此推算:
1.2/1275=VDD/4095, 所以VDD=3.85V,很明显供电压换算出来的值与实际3.3V不符,所以不有用其做为参考。
实际上,可以通用ADC_IN1采集某参考源的电压,其它通道按此进行比例换算。

----------------------------------------------------------------

ADC_IN17是内部参照电压,不是基准电压;它仅仅相当于一个标准电压参照。
 STM32的内部参照电压VREFINT和ADCx_IN17相连接,它的作用是相当于一个标准电压测量点,内部参照电压VREFINT只能出现在主ADC1中使用。

内部参照电压VREFINT与参考电压不是一回事。ADC的参考电压都是通过Vref+提供的并作为ADC转换器的基准电压。

当我们使用的Vref+是直接取自用VCC电压时,当VCC电压波动比较大时或稳压性能比较差时,可以借用STM32的内部参照电压VREFINT校正测量精度。

以测量1通道的电压值为例,先读出参照电压的ADC测量结果,记为ADre;再读出要测量通道1的ADC转换结果,记为ADch1;则要测量的电压为:

Vch1 = VREFINT* (((ADch1*(VREF/4096))/(ADre*(VREF/4096)))

注:VREFINT=1.2V,VREF为参考电压值=3.3V

公式简化:

Vch1 = VREFINT*(ADch1/ADre)

这种方法等于变相将内部参照电压VREFINT当成是ADC参考电压,也就是说,此时Vref参考电压的准确度已在此已对结果影响不大了,ADC的转换结果基本由VREFINT的精度决定。

注:一般情况下,这种办法只适合于当Vref+参考电压(其实也就是VCC电压)离散性实在太差的情况下使用。

我们知道,STM32中64脚和小于64脚的型号,Vref+在芯片内部与VCC信号线相连,没有引到片外,这样AD的参考电压就是VCC上的电压,那么我们可以使用一个高精度的外部参照电压,然后用上面的方法,也许可以解决因VCC电源电压精度不高带来的ADC测量不准确的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: