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

绝妙!不用外部电路检测芯片工作电压!

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

来源:微信官方账号【鱼鹰谈单片机】

作者:鱼鹰Osprey

ID :emOsprey

本注:

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 将此次的电压值保存在地址中。

这里有一个具体的例子(参考文章):a7e0fdceb0621660397def8ea73b8945.png

该芯片中的参考电压输出是 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 外设中的VREFINT通道值可以通过上述公式简单计算得到芯片的当前值 ADC 参考电压,也可视为芯片工作电压。代码和普通代码 ADC 收集没有太大区别,但收集通道从外部通道变为内部通道,因此,鱼鹰不再提供具体的参考例子(遗憾的是,它忘记了截图,否则它会更有说服力)。

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

相关文章