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

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

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

审核编辑:汤梓红

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

    关注

    462

    文章

    53552

    浏览量

    459290
  • 电路
    +关注

    关注

    173

    文章

    6063

    浏览量

    177487
  • adc
    adc
    +关注

    关注

    100

    文章

    7435

    浏览量

    553836

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NRF54L15的NORDIC芯片,adc的内部参考电压

    NORDIC 芯片 NRF54L15 的 ADC(模数转换器)内部参考电压确实是 0.9V(标识为 ADC_REF_INTERNAL)。这一参数在实际应用和技术文档中均有明确验证,具体可结合以下信息
    发表于 11-17 15:46

    电压内阻测试设备如何保障安全与高效?

    电池作为各类电子设备和能源系统的核心部件,其性能直接影响设备的运行效果和安全。电池电压内阻测试设备就像专门的 “健康检测仪”,通过测量电池的电压和内阻,帮助人们了解电池的实际状态。 这
    的头像 发表于 09-18 17:08 542次阅读

    如何使用ADC内部参考电压

    如何使用ADC内部参考电压
    发表于 08-27 07:43

    内部基准电压可以大于工作电压吗?

    内部基准电压可以大于工作电压吗?
    发表于 08-25 07:01

    请问内部基准电压可以大于工作电压吗?

    内部基准电压可以大于工作电压吗?
    发表于 08-21 06:12

    关于比较器正向输入端与比较器反向输入端未达到实际电压导致输出问题

    RC_BASIC 通过 电阻分压得到想要的电压,输入RC_NET1 通过RC充放电电路延时输出想要的电压,实际是 RC_NET1到0.8
    发表于 08-10 14:31

    电压传感器是什么?工作原理是哪样

    传感器广泛应用于电力系统、工业自动化、电子设备测试、新能源汽车等领域,用于监测电压变化、保护电路安全、优化系统性能等。 电压传感器的工作原理 电压传感器的
    的头像 发表于 06-13 18:00 2290次阅读

    什么是工作电压?什么是耐电压?两者的区别和联系

    在对连接器进行选型时,电压是一个关键考量因素。通常,连接器有工作电压和耐电压两种电压参数,二者存在显著区别。 那
    的头像 发表于 04-11 16:14 3139次阅读

    ADS8699芯片参考电压引脚输出电压不正常

    我的ADS8699芯片是这样连接的,是在原来的板子的基础上跳线,我已经测得两个供电电压是没有问题的,REFIO输出电压是4.096V也是正常的,这个芯片
    发表于 03-26 15:45

    电压调节芯片SG3525内部结构及功能

    电子发烧友网站提供《电压调节芯片SG3525内部结构及功能.pdf》资料免费下载
    发表于 03-21 16:27 1次下载

    继电器额定工作电压的选择

    继电器的额定工作电压,指的是能让它长期稳定运行的电压值。这一数值依据继电器的内部构造、电磁特性与绝缘材料等因素确定。当加在继电器线圈两端的电压
    的头像 发表于 02-04 16:07 1785次阅读

    DAC8571直接测量Vout引脚电压的时候,电压总是为0.16V,为什么?

    程序下载完之后,发现直接测量Vout引脚电压的时候,电压总是为0.16V,但是如果先将Vout与VDD短接一下,再测量Vout引脚电压的时候就可以
    发表于 01-17 08:35

    ADS8556电路,测干电池电压得到的结果有上下0.01V的偏差,是不是太大了?

    我的ADS8556电路,测干电池电压得到的结果有上下0.01V的偏差,是不是太大了?
    发表于 01-15 08:07

    DAC5682zEVM是否可以直接通过ADC-HSMC板卡与ALTERA的FPGA开发相连?

    DAC5682zEVM是否可以直接通过TI的ADC-HSMC板卡与ALTERA的FPGA开发相连(FPGA板HSMC接口与电压都匹配条件下),能否提供控制程序或者逻辑
    发表于 12-31 06:03

    AFE4300EVM-PDK能直接通过外接电极进行BCM测量吗?

    对这块板子的应用还存在许多较入门的问题,主要是: 1、这块开发板能直接通过外接电极进行BCM测量吗?还是需要其他的模块进行支持? 2、开发板的GUI界面里,BCM Measurement与BCM
    发表于 12-18 08:07