锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

奇妙!不用外部电路也可检测芯片工作电压!

时间:2023-06-07 15:37:00 低压差稳压器内置芯片

c6738d0bc428a62e99c2d14da5c67066.png

本文主要包括以下内容(电池供电产品特别实用):

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 值,即总是代表的基准电压)。

(图片来源:茶话 MCU)

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

1.RISC-V嵌入式开发课程节选版上线!文末还有图书优惠哦!赶快抢!

2.RISC-V能成为八位MCU的选择吗?

3.对嵌入式工程师硬件转软件的几条建议!

4.浅谈智能嵌入式系统的优化设计

5.单片机AD采样常用的十大滤波算法~

6.物联网时代,嵌入式软件测试工具越来越重要~

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章