在使用ST MCU开发过程中,有人问如果电源电压是变动的,询问有无办法用比较简洁的办法对电源电压进行监测,或者说电源电压波动情况下能否检测出其它待测的AD输入电压。

这里跟大家分享交流一个方法。就是在没有其它外来参考电压,用芯片电源电压VDD作为ADC的参考电压,同时该电源电压又在一定范围内变动的情况下【这个范围就是在保证芯片正常工作的范围】,利用MCU芯片内部自带基准电压对电源电压进行监测。

在我印象中【ST MCU系列和型号太多了,记不住】,几乎每颗ST MCU芯片内部都有个相对稳定且不受电源电压一定范围内波动影响的基准电压。这里以STM8L15x 芯片为例来介绍。

STM8L151系列芯片内部有个参考输出电压,ST的技术手册里命名为VREFINT。

该内部参考电压的值即使芯片电源电压在工作范围内波动时,它基本维持不变即1.224V,而且该电压信号可以通过指令控制直接连接到ADC的某个AD通道而求得该电压对应的AD值。

这里提前厘清下:该内部参考电压VREFINT并非ADC的参考电压,ADC的参考电压依然是VDD。即使VDD有所波动,这个VREFINT电压恒定不变,对于ADC电路而言,它只是个测试点。这里经常有人犯迷糊,把VREFINT内部基准参考电压跟ADC模块的参考电压混为一谈。

在某一固定的ADC参考电压情况下,所有被测电压点的AD转换值与该点电压值保持同一比例关系,换句话说,对于ADC参考电压固定情况下,各点的电压与ADC值与成线性关系。

下面图形是8L15X芯片分别在3个不同参考电压下的AD转换曲线示意图,这里参考电压接不同的VDD。下面三根斜线分别是VDD为2.8V、3.2V、3.6V时的AD转换曲线示意图。那根黄色垂直虚线是表示内部VREFINT电压(1.22V)所在的位置。

不难理解,对于不同的参考电压,同一待测电压【VREFINT】1.22V所测得的AD转换值是不一样的,从上面图也可以直观的看出。这里AD的参考电压就是VDD,显然VDD越大,1.22V  VREFINT电压对应的AD转换值越小。

对于某一个参考电压来说,如果能测得1.22V所对应的AD转换值,假设记为Val_AD1.2 那参考电压VDD对应的AD转换值自然是此时该AD的满量程值,记为 Val_Full,位,就是1024,如果是12位,那就是4096】。

不管VDD怎么变动,某时刻的VDD对应的满量程值Val_Full跟内部基准电压【VREFINT】1.22V的AD转换值Val_AD1.2 的线性比例关系总是存在的。即有:

VDD:Val_Full = 1.22 : Val_AD1.2      【Val_AD1.2 为实时测得值】

那么VDD = (1.22 / Val_AD1.2) * Val_Full

这样你就可以达到监测芯片供电VDD的电压之目的了。当然你也可以利用上述原理和类似条件做别的应用,比如说电源电压一定范围内波动情况下还是可以检测出其它待测点的电压。

【以上所述是个思路或方法,供参考借鉴。】

利用ST MCU内部基准参考电压监测电源电压及其它的更多相关文章

  1. 利用ST MCU内部的基准参考电压监测电源电压及其它

    源: 利用ST MCU内部的基准参考电压监测电源电压及其它

  2. 转发: 关于ST MCU的UID详细说明

    https://www.stmcu.org.cn/article/id-327990 ST MCU芯片中的绝大部分都内置一串96位唯一标识码[unique ID].时不时有人问起这个东西,尤其最近感, ...

  3. ST MCU的UID

    ST MCU芯片中的绝大部分都内置一串96位唯一标识码[unique ID].时不时有人问起这个东西,尤其最近感,觉询问它的人甚是热闹.这里跟大家一起简单分享下. 上面说了ST MCU芯片中的绝大部分 ...

  4. EFM32JG系列MCU内部温度传感器使用方法

    在很多电子类应用场合中,我们经常需要采集产品工作的周围环境温度,一般采取的方式有两种: 1)外加温度传感器 2)采用MCU内部温度传感器 外加温度传感器会增加产品的成本以及布板空间,所以在很多场合,我 ...

  5. AD芯片的基准参考电压问题

    基准参考电压的精度一般非常高的! AD芯片 : AD9226的基准参考电压  误差一般是  千分之一! 我之前用万用表测量AD9226的参考电压大概是1.89V(这款AD的正确参考电压应该是2V),所 ...

  6. 利用InfluxDB和Grafana搭建数据监测的仪表盘

    InfluxDB的介绍及安装 InfluxDB是支持持续写入的时序数据库,常用于监测系统所需要的数据的存储. 官网的详细安装步骤 https://docs.influxdata.com/influxd ...

  7. 利用.net的内部机制在asp.net中实现身份验证

    知识点: 在ASP.NET中,任何页面都是继承于System.Web.UI.Page,他提供了Response,Request,Session,Application的操作.在使用Visual Stu ...

  8. 微控制器(MCU)架构介绍

    微控制器(MicroController)又可简称MCU或μC,也有人称为单芯片微控制器(Single Chip Microcontroller),将ROM.RAM.CPU.I/O集合在同一个芯片中, ...

  9. Scalaz(28)- ST Monad :FP方式适用变量

    函数式编程模式强调纯代码(pure code),主要实现方式是使用不可变数据结构,目的是函数组合(composability)最终实现函数组件的重复使用.但是,如果我们在一个函数p内部使用了可变量(m ...

随机推荐

  1. python scrapy 把cookie并转化为字典的形式

    在用scrapy设置cookie的时候,需要从网页上对应的页面把cookie字段复制下来,并转化为字典的形式,下面代码是对cookie的转化过程 # -*- coding: utf-8 -*- cla ...

  2. Python基础3--Python复杂数据类型

    1 堆 堆是一种二叉树,其中每个父节点的值都小于或等于其所有子节点的值,最小的元素总是位于二叉树的根节点. 堆的创建 import heapq import random data = range(1 ...

  3. getAttribLocation的返回值

    var coord = gl.getAttribLocation(shaderProgram, "coordinates");    // 0 var coord2 = gl.ge ...

  4. Android动态添加Device Admin权限

    /********************************************************************** * Android动态添加Device Admin权限 ...

  5. zedboard开发板上移植opencv代码(立体匹配)

    前言 公司要做立体匹配相关的项目,已有matlab和c++版本,可是不能做到实时显示立体信息,想要硬件实现实时,无奈本渣也是个硬件的新手,先按照实验室lyq同学的思路在zedboard开发板的纯ARM ...

  6. Java IntelliJ IDEA 不能显示项目里的文件结构

    方法一: 关闭IDEA, 然后删除项目文件夹下的.idea文件夹 重新用IDEA工具打开项目 方法二: 菜单:File -> Invalidate Caches / Restart

  7. sudo: sorry, you must have a tty to run sudo

    使用ssh进行无密访问,并发送执行命令的时候遇到了如题的错误 执行命令ssh user@host "sudo rm /data/test,txt" sudo: sorry, you ...

  8. Gym - 101806T: Touch The Sky(贪心)

    Figure: The house floats up in the sky by balloons. This picture is also used in 2018 KAIST RUN Spri ...

  9. # 20155219实验二 Java面向对象程序设计

    20155219实验二 Java面向对象程序设计 一.实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5 ...

  10. 极大极小搜索思想+(α/β)减枝 【转自-----https://blog.csdn.net/hzk_cpp/article/details/79275772】

    极大极小搜索,即minimax搜索算法,专门用来做博弈论的问题的暴力. 多被称为对抗搜索算法. 这个搜索算法的基本思想就是分两层,一层是先手,记为a,还有一层是后手,记为b. 这个搜索是认为这a与b的 ...