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 采集没多大区别,只是采集的通道由外部通道变为了内部通道,所以鱼鹰就不再提供具体参考例子了(可惜忘记截图了,否则更有说服力)。们删除!

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

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

审核编辑:汤梓红

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

    关注

    454

    文章

    50476

    浏览量

    422069
  • 电路
    +关注

    关注

    172

    文章

    5857

    浏览量

    171968
  • adc
    adc
    +关注

    关注

    98

    文章

    6453

    浏览量

    544168

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

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

收藏 人收藏

    评论

    相关推荐

    TPA3137D2的GVDD正常电压是7V,但是芯片是可以工作在小于7V的电压,这时候GVDD可以正常工作吗?

    TPA3137D2的GVDD正常电压是7V,但是芯片是可以工作在小于7V的电压,这时候GVDD可以正常工作吗? 看
    发表于 10-18 07:28

    tas5630在PBTL模式下接通电源就处于关断模式,芯片工作怎么解决?

    tas5630在PBTL模式下 接通电源就处于关断模式,芯片工作,但是能够测得VREG是3.7v的电压芯片各个管脚的
    发表于 09-23 07:47

    电压检测芯片957工作原理是什么

    电压检测芯片957(尽管具体型号如“957”可能是一个泛指的或简化的表示,因为实际中电压检测芯片的型号可能会包含制造商、系列名、具体功能描述等更详细的信息)的
    的头像 发表于 09-18 17:23 542次阅读

    求助,关于ina2332运放参考电压的疑问求解

    ina2332的VrefA和VrefB我都是用的电阻直接压得到,但是这样的话电阻阻值的不精确会导致两路参考电压的不一样,对同样的输入信号运放输出的值也会略有不同,我想用3片做六路精密运放,请问
    发表于 09-10 07:24

    使用ref2025替换用电阻分压得到的2.5V作为运放的偏置电压,导致谐振出来的波形也不对了,为什么?

    你好!我使用ref2025替换 用电阻分压得到的2.5V 作为运放的偏置电压,导致谐振出来的波形也不对了,正向输入端恒为 2.5V。请问是什么原因。 左下角L1处是电容电感并联谐振。
    发表于 08-23 07:09

    TINA仿真时,使用进行电阻分压,为什么电阻越大得到的参考电压的交流成分越多呢?

    我在使用TINA仿真,在地与5V电源之间,希望通过电阻分压得到2.74V的电压。但是我发现,当使用274k与226k,27.4k与22.6k,27.4与22.6这三组不同阻值的时候,得到
    发表于 08-09 06:07

    FPGA学习笔记-电源电压

    不同的IO口电压。这样,匹配不同工作电压的电路就成为可能,而且这个电路也很简单,不需要额外考虑电平匹配的问题。 PLL电压是给FPGA内部
    发表于 05-22 18:42

    PRBTEK分享有源电压探头的工作原理

    有源电压探头是一种用于测量电压信号的探头,它通过内置电源提供激励信号,从而使得测量电路的输入阻抗较高,减小了对被测电路的影响,提高了测量精度。本文将介绍有源电压探头的
    的头像 发表于 05-20 11:19 495次阅读
    PRBTEK分享有源<b class='flag-5'>电压</b>探头的<b class='flag-5'>工作</b>原理

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

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

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

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

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

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

    AD芯片怎么测高电压

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

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

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

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

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

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

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