利用ST MCU内部基准参考电压监测电源电压及其它
在使用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内部基准参考电压监测电源电压及其它的更多相关文章
- 利用ST MCU内部的基准参考电压监测电源电压及其它
源: 利用ST MCU内部的基准参考电压监测电源电压及其它
- 转发: 关于ST MCU的UID详细说明
https://www.stmcu.org.cn/article/id-327990 ST MCU芯片中的绝大部分都内置一串96位唯一标识码[unique ID].时不时有人问起这个东西,尤其最近感, ...
- ST MCU的UID
ST MCU芯片中的绝大部分都内置一串96位唯一标识码[unique ID].时不时有人问起这个东西,尤其最近感,觉询问它的人甚是热闹.这里跟大家一起简单分享下. 上面说了ST MCU芯片中的绝大部分 ...
- EFM32JG系列MCU内部温度传感器使用方法
在很多电子类应用场合中,我们经常需要采集产品工作的周围环境温度,一般采取的方式有两种: 1)外加温度传感器 2)采用MCU内部温度传感器 外加温度传感器会增加产品的成本以及布板空间,所以在很多场合,我 ...
- AD芯片的基准参考电压问题
基准参考电压的精度一般非常高的! AD芯片 : AD9226的基准参考电压 误差一般是 千分之一! 我之前用万用表测量AD9226的参考电压大概是1.89V(这款AD的正确参考电压应该是2V),所 ...
- 利用InfluxDB和Grafana搭建数据监测的仪表盘
InfluxDB的介绍及安装 InfluxDB是支持持续写入的时序数据库,常用于监测系统所需要的数据的存储. 官网的详细安装步骤 https://docs.influxdata.com/influxd ...
- 利用.net的内部机制在asp.net中实现身份验证
知识点: 在ASP.NET中,任何页面都是继承于System.Web.UI.Page,他提供了Response,Request,Session,Application的操作.在使用Visual Stu ...
- 微控制器(MCU)架构介绍
微控制器(MicroController)又可简称MCU或μC,也有人称为单芯片微控制器(Single Chip Microcontroller),将ROM.RAM.CPU.I/O集合在同一个芯片中, ...
- Scalaz(28)- ST Monad :FP方式适用变量
函数式编程模式强调纯代码(pure code),主要实现方式是使用不可变数据结构,目的是函数组合(composability)最终实现函数组件的重复使用.但是,如果我们在一个函数p内部使用了可变量(m ...
随机推荐
- uniDAC 7.2.14直联sqlite存在问题
用最新的uniDAC 7.2.14,设置Direct=True,直联sqlite数据库,发现Release状态下出错,Debug没有问题. 改成Direct=False,则没有问题. 警告! 各 ...
- 爬虫系列2:scrapy项目入门案例分析
本文从一个基础案例入手,较为详细的分析了scrapy项目的建设过程(在官方文档的基础上做了调整).主要内容如下: 0.准备工作 1.scrapy项目结构 2.编写spider 3.编写item.py ...
- 20165228 2017-2018-2 《Java程序设计》第8周学习总结
20165228 2017-2018-2 <Java程序设计>第8周学习总结 教材学习内容总结 进程与线程的关系 多线程的运行机制 线程的四种状态:新建.运行.中断.死亡 使用Thread ...
- drop redo logfile current报错
目的:在安装完毕11.2.0.4版本Oracle单实例数据库后,对日志进行格式化,删除原日志组current状态,删除报错 #对于理论学习,而带来的理解命令,因此作为记录 #查询日志状态SYS > ...
- word2vec原理推导与代码分析
https://github.com/hankcs/HanLP/wiki/word2vec http://www.hankcs.com/nlp/word2vec.html Hanlp word2vec ...
- Angular 插值字符串
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- selenium和PhantomJS的使用
利用selenium来进行爬取数据 import time from selenium import webdriver # 创建phantomjs浏览器对象 driver = webdriver.P ...
- 苹果手机不兼容autoplay属性
var audio=new Audio("music/music.mp3"); audio.preload="preload"; // 自动播放解决苹果不兼容a ...
- 多行文本用textarea而不是input type=textarea“”
<textarea name="zhaiyao" id="" cols="35" rows="4">< ...
- 简单的Windows应用程序命名规则
读书:<高质量C++编程指南> 作者对“匈牙利”命名规则做了合理的简化,下述的命名规则简单易用,比较适合于Windows应用软件的开发. l [规则3-2-1]类名和函数名用大写字母开头的 ...