0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何直接通过内部参考电压得到芯片的工作电压

GReq_mcu168 来源:鱼鹰谈单片机 作者:鱼鹰谈单片机 2022-02-11 09:08 次阅读

本篇主要包含以下内容(电池供电产品尤其实用):

1、如何进行 ADC 校准,ADC 校准基本原理

2、如何直接通过内部参考电压得到芯片的工作电压

3、常见应用场合

在一些应用场合,往往需要得到芯片的工作电压,确保芯片工作正常,比如低压时进行必要保护、 ADC 采集时校准等。

一般情况下,我们使用分压电阻方式获得芯片工作时的电压,比如 STM32 可工作在 2.0~3.6 V(你没看错,2.0 V 也能工作,鱼鹰有段时间不小心用了 5 V 电压,芯片竟然也能工作,没烧坏,也是奇迹,但不建议这么干)。但是需要增加额外电路。

另外,如果你能得到芯片的工作电压(或 ADC 的基准电压),在 ADC 校准方面也是有奇效。因为如果你的参考电压变化了,那么你通过 ADC 计算得到值必然也是有问题的。

测量电压值 = (ADC 值 * 参考电压值 3.3)/ ADC 最大值 4096

即上式的 参考电压 3.3v 变化了,那么你计算的测量电压就和实际的不符。因为在这个公式里面,你假设参考电压稳定不变为 3.3v ,但实际上如果因为某种原因,导致电压上升或下降了,那么计算的测量电压值就是有问题的。

所以,为了精确测量电压,就有了校准。

既然参考电压也在变化,那么我们就直接把参考电压也一起采集了,作为公式的参数输入,如此一来,就能保证测量电压的稳定性了。

但是参考电压又应该怎么测量呢?还是使用分压方式吗?我们本身就是为了让分压方式测量的电压更精确才使用校准的呀?这不是陷入了鸡生蛋、蛋生鸡的死循环?

如何跳出这一循环呢?关键在于是否存在一个电压,可不随外部电压变化而变化,起码不应该在芯片(2.0 ~ 3.6 V)正常工作时而变化,超出电压范围外就和我没关系了。

就此我们可以想到一种常用器件,LDO (低压差线性稳压器),比如 5 V 转 3.3 V,只要输入电压在芯片规定范围内,它总是能稳定输出 3.3 V。

在 STM32 中,内部都内置了一个比较稳定的内部参考电压,即 VREFINT,一般电压 1.2 V,但由于芯片差异,这也是不确定的,所以为了更加确定这个电压值,芯片出厂时会进行校准(又来一次校准),即把实际采集到的电压 ADC 值保存到一个地址里面。

怎么理解这次校准呢?这个参考电压内部连接到 ADC 外设中的一个通道,而 ADC 外设使用高精度稳压源稳定供电 3.0 V,而此时该参考电压也会输出一个电压,大概在 1.2V, 然后通过 ADC 采集这个电压的 ADC 值,并把这一次电压值保存在一个地址里面。

这里举一个具体例子(参考文章里面的):

如何直接通过内部参考电压得到芯片的工作电压

在这个芯片里面的参考电压输出就是 1.216 V,可以说相当精确了,但是另一个同款芯片就不一定就是这个电压了(但也基本在 1.2 V 左右,不会差太多),这就是所谓的差异,也是为什么要校准的原因。

那么得到这样一个稳定的参考电压有什么用,它的特点又是什么呢?

这个参考电压你可以理解为,只要芯片工作在 2.0 ~ 3.6 V,它总是能输出 1.216 V(当然是说上面那颗芯片,其它芯片就不一定是这个电压了)。

这样一来,我们让 VDDA(ADC 外设的基准电压)= VDD(芯片工作电压)。当工作电压下降时,VDDA 电压也在下降,也就是说 4095 在下降前代表 3.3 V,那下降后代表的电压值肯定更小了(还是代表 VDDA 的值,即总是代表的基准电压)。

如何直接通过内部参考电压得到芯片的工作电压

但是不管 VDDA(VDD) 怎么变化,Vrefint 的电压值总是稳定在 1.216 V(但是这个 ADC 值是处于变化中的)。而这也是我们反推外部电压的基础。

于是我们可以得到下面公式(前提芯片能正常工作,即 2.0 ~ 3.6 V):

VDDA : 4095 = VREFINT : Adc_vrefint

因为 VDDA 等于 VDD,所以也可以认为是芯片的工作电压。在这个公式中,Adc_vrefint 的 ADC 值我们可以通过 ADC 的特殊通道(VREFINT 通道)采集回来,而 VREFINT 我们在前面通过某个地址的 ADC 值已经计算出来了,就是 1.216 V,那么只有 VDDA 一个值不确定,计算它就是轻而易举的事情了。

于是,通过采集 VREFINT 通道的 ADC 值,即可得到我们需要的 VDDA 值,也就是我们的芯片工作电压!!!

这就是不用外部电路检测芯片电压的内幕(原理)!

本来应该一切顺利,这篇笔记也有一个完美的结局,但是很不幸的是,鱼鹰找遍了手册,网上也是到处找,始终没有找到 STM32F1xx 系列芯片校准值的保存地址,而据网上的说法是,这款芯片并没有校准值,这就很让人尴尬了(其它系列是否存在该校准值,可以看对应的数据手册,如果有道友知道 STM32F1xx的地址,可留言告知)。

但是如果你对电压精度要求不是很高的话,你可以直接认为参考电压就是 1.200 V,用它来大概计算芯片的工作电压也是问题不大的。而如果你要更高的精度,那么你也可以像前面说的那样,自己找出每一颗芯片的实际参考电压,人工校准。当然工作量就大了那么一些了(专门写一个校准程序,把校准值写入内部 FLASH 中)。

应用

那么这个功能一般用于什么场合呢?

实时检测芯片的工作电压,我们就知道芯片是否正常工作,从而排除芯片因为电源不稳导致的一些问题。同时,我们可以把这个电压值用于前面所说的 ADC 校准中,这样不管芯片工作电压怎么变化(前提是芯片工作电压和 ADC 基准电压是一同一个),你测量的电压值一定是准确的(即使电压源纹波比较大)。

这个功能对于电池供电的产品尤其实用,因为电池电压在使用过程中,肯定会发生变化,这也意味着可能你的 ADC 基准电压发生了变化(当然你也可以使用额外的稳压源,这样就会增加成本)。

当工作电压低到一定程度时,我们希望能做一些保护工作,或者保存一些参数,我们该如何做呢?三种方法:

1、通过上述方法,定时采集 参考电压 的 ADC 值,从而得到工作电压,当电压低于一定水平时,再采取一些措施。

2、使用 ADC 模拟看门狗功能,将这个通道的值加入到看门狗中,如此一来,只要电压下降到你想要的值,就可以触发看门狗,比方法一更及时,这也是参考文章介绍的一个应用,强烈建议各位道友看看这位大佬写的。

3、芯片内部有低电压保护功能,当电压低到一定水平时,可触发中断,但是只有几个固定电平可选,不像上述方法可设置任意电平。

而在已出货的产品中,可能当时我们并没有考虑那么多,并没有预留检测工作电压的电路,使用这个方法,就可以只更新软件即可获取工作电压,相当实用。

这个方法也曾用高精度稳压源测试过,发现计算出来的电压值精度相当高,而当改变电压大小时,计算出来的电压也在实时变化,可谓实用的一匹,再也不用怕硬件工程师说你采集的 ADC 值(软件)有问题了。

简单总结就是,采集 ADC 外设中的 VREFINT 通道值,通过上面公式简单计算,即可得到芯片当前的 ADC 参考电压,也可认为是芯片工作电压。代码和普通的 ADC 采集没多大区别,只是采集的通道由外部通道变为了内部通道,所以鱼鹰就不再提供具体参考例子了(可惜忘记截图了,否则更有说服力)。们删除!

原文标题:妙啊!不用外部电路检测芯片工作电压!

文章出处:【微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47838

    浏览量

    409656
  • 电路
    +关注

    关注

    170

    文章

    5485

    浏览量

    169664
  • adc
    adc
    +关注

    关注

    95

    文章

    5654

    浏览量

    539600

原文标题:妙啊!不用外部电路检测芯片工作电压!

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    升压芯片是如何把电压升高的

    升压芯片(Boost Converter)通过改变电路的工作周期来将输入电压升高到所需的输出电压
    的头像 发表于 03-01 16:08 1250次阅读
    升压<b class='flag-5'>芯片</b>是如何把<b class='flag-5'>电压</b>升高的

    基准电压芯片工作原理是什么?

    原理。 一、稳压原理 稳压原理是基准电压芯片工作的基础。在电子设备中,为了确保电路正常运行,需要提供稳定的电压信号。稳压原理是通过将输入
    的头像 发表于 01-29 15:33 1123次阅读

    芯片的AD/DA口基准电压芯片供电电压的关系?

    晶振是芯片的心脏,晶振主要用来驱动芯片内部的时序工作电路工作,就是数电中时clock,晶振的频率是主频吗?在一个片上系统中,会不会应用到片晶
    发表于 01-14 00:40

    AD芯片怎么测高电压

    将详细介绍AD芯片测量高电压的方法。 首先,在测量高电压之前,需要了解AD芯片工作原理和特性。AD芯片
    的头像 发表于 01-07 16:00 686次阅读

    CH32内部参考电压的自学笔记

    前言CH32V/F单片机能够在一定的电压范围内进行工作,以CH32V203C8T6芯片为例,在不使用USB外设时,最低工作电压能够达到2.4
    的头像 发表于 12-14 08:00 420次阅读
    CH32<b class='flag-5'>内部</b>参考<b class='flag-5'>电压</b>的自学笔记

    直流励磁绕组不通过电流控制装置,直接与其相应额定电压接通,容易烧线圈吗?

    直流励磁绕组不通过电流控制装置,直接与其相应额定电压接通,容易烧线圈吗?
    发表于 12-12 06:42

    电压稳压器内部结构和工作原理

    为了进一步理解线性型电压稳压器的工作原理,首先考虑IC内部的各模块构成和作用。
    的头像 发表于 12-05 10:28 815次阅读
    <b class='flag-5'>电压</b>稳压器<b class='flag-5'>内部</b>结构和<b class='flag-5'>工作</b>原理

    单电源运放使用Vcc/2作为半电压加到芯片的同相输入端,半电压为何变低了?

    单电源运放,使用Vcc/2作为半电压加到芯片的同相输入端,而Vcc/2常用等值的两个电阻进行分压得到。但是经常遇到一个问题,就是半电压不准,往往会低于Vcc/2一些。这个很奇怪,请教会
    发表于 11-24 06:31

    电压比较器和运放的“基准电压”是从哪里得到的?

    电压比较器和运放的“基准电压”是从哪里得到的?或者说是哪一个为基准电压?  这个问题涉及到电子电路中的两个重要概念:电压比较器和运放的基准
    的头像 发表于 11-22 16:27 1580次阅读

    电压检测芯片工作原理 电源电压检测芯片的构成

    电压检测芯片工作原理 电源电压检测芯片的构成  电压检测
    的头像 发表于 11-09 09:36 2595次阅读

    电源电压检测芯片由什么组成?工作原理是什么?

    电压检测芯片是一种常见的集成电路芯片,用来监测电路中的电压变化,防止电路受到过电压和欠电压的损坏
    的头像 发表于 10-26 16:13 964次阅读

    反激开关电源的电压原边反馈与副边反馈

    直接通过变压器绕组检测输出电压,然后经过电阻分压与芯片内部的基准进行比较,从而实现输出电压的控 制,如下图、反馈电路原理图所示。
    发表于 10-08 09:38 2812次阅读
    反激开关电源的<b class='flag-5'>电压</b>原边反馈与副边反馈

    为什么电压表可以直接连在电源两端

    两端?答案在于电压表的内部结构。电压内部主要由电路、显示器和测量接口三部分组成。 电路部分包括了一些电子元件,比如电容、电阻、晶体管等。它们可以
    的头像 发表于 09-04 15:43 2956次阅读

    怎么得到参考电压Vref?

    ); 怎么得到参考电压Vref? Vref可以通过计算获得,或者测量得到。 要求不高可以直接用万用表量管脚pin9,即Vdd的
    发表于 06-27 10:28

    通过N76E003的间隙电压做基准可以得到电池电压VBAT吗?

    通过N76E003的间隙电压做基准可以得到电池电压VBAT吗?如果能,该如何得到
    发表于 06-25 07:57