历史上的今天

今天是:2024年11月09日(星期六)

2020年11月09日 | 基于MSP430单片机的SVS(电源电压监控器)模块设计

发布者:TranquilOasis 来源: elecfans关键字:MSP430  单片机  SVS  电源电压监控器 手机看文章 扫描二维码
随时随地手机看文章

电源电压监控对于单片机来说,也是经常要用的模块。当需要稳定的工业级产品时,经常要对电源电压监控,以保证单片机系统工作于正常环境或范围中。MSP430F16x提供了一个现成的电源电压监控器模块SVS,方便检测电源电压或者是外部电压,可以设置为电压过低时复位 或置标志位。本程序即完成SVS的设置使用的程序库(msp430f14x没有此模块)。


硬件介绍:

MSP430单片机含有的SVS模块可以很方便的监控电源电压或外部电压。

电源电压监控器(SVS)是用于监控AVCC电源电压或外部电压。 SVS的可配置当电源电压或外部电压下降到低于用户选择的电压级别时设置一个标志,或产生POR复位。


SVS模块有以下特点:可以监控AVCC电压;可选择产生复位信号;可软件设置SVS比较器输出信号;低电压标志可以被锁定或被用户程序访问;有14个可供选择的电压门限;可以监控外部输入电压。SVS模块可以很方便的监控电源电压或系统的其他电压,可以产生复位信号或是置标志位。


SVS模块仅有一个8位的寄存器,使用十分方便。寄存器SVSCTL:

高四位VLDx用来设置监控电源电压的门限、关闭SVS或者选择监控外部输入电压。具体含义如下:

    0000 SVS is off     0001 1.9 V 检测AVCC是否低于1.9v,以下类似
    0010 2.1 V          0011 2.2 V
    0100 2.3 V          0101 2.4 V
    0110 2.5 V          0111 2.65 V
    1000 2.8 V          1001 2.9 V
    1010 3.05           1011 3.2 V
    1100 3.35 V         1101 3.5 V
    1110 3.7 V
    1111 检测由SVSIN引脚输入的电压是否低于1.2 V.

当高四位是 0时,SVS模块是关闭的;1-14分别是对电源电压监控的14个门限电压;15时,监控外部电压,门限电压是1.2v。


PORON位设置是否启动电压低于门限时,单片机复位:1 复位 0 置标志位SVSFG

SVSON位,这位和其他模块的ON位不太一样,SVSON位仅仅指示当前SVS模块是否打开,而不是用来开关模块的。


SVSOP位,这位是设置SVS内部比较器输出值:0 输出低电平 1 输出高电平。


SVSFG位,标志位 指示是否检测到低电压 仅PORON 为0时有效 出现低电压后置1;改为不会自动清零,必须软件清零。


另外,SVS模块值得一提的是:SVS门限电压已经设置回差带:每个SVS的水平已经滞后AVCC,接近临界值时,以减少小型电源电压的变化的敏感性。 SVS的操作和SVS /掉电互操作如图:

如图:为防止电压在门限附近变动时,SVS过于敏感,每个门限附近都有回差带。这样SVS模块用起来更好用。


程序实现:

程序主要是对SVS模块寄存器SVSCTL的设置和检测。首先是设置SVS函数:

void SVSSetup(char voltageLevel,char reset)
{
    SVSCTL = voltageLevel << 4;
    /*if(voltageLevel == 0x15)            //外部输入 打开对应功能口
    {
        P6SEL |= BIT7;                    //不需要,当用SVSIN时,自动从此脚检测
    }*/
    if(reset <= 1)
    {
        SVSCTL |= reset << 3;
    }
}

voltageLevel:这个参数和寄存器SVSCTL的高四位VLDx意思完全一样,程序仅仅是把它移动到高四位赋值给寄存器SVSCTL,reset参数对应PORON位,也是直接赋值给对应位完成设置。


检测是否有低于门限电压的情况出现:

char SvsFlg()
{
    return (SVSCTL&SVSFG);
}

这个函数更简单,仅仅把标志位SVSFG的值返回,以便用户判断是否出现了低于门限的情况出现。


标志位清零:

/****************************************************************************
* 名    称:ClearSvs
* 功    能:电源电压监控器的过低标志
* 入口参数:sync:同步 1:阻塞运行直到该函数电压恢复正常 0:不阻塞,清除即返回
* 出口参数:无
* 说    明: 若传入参数为0 不阻塞 则如果电压没有恢复到正常范围 则标志会立即被
            单片机重新置位(1)
****************************************************************************/
void ClearSvs(char sync)
{    if(!sync)
    {
        SVSCTL &=~ SVSFG;
        return;
    }
    while(SVSCTL&SVSFG)
        SVSCTL &=~ SVSFG;   //清除标志 直到电压正常
}

由于SVSFG标志位不会在处理后自动被清除,所以必须软件清零。这个函数有两种工作方式,同步阻塞等待,直到电压恢复正常后才返回和清零后即返回。


程序实现比较简单,但能够完成SVS的功能。下面介绍如何使用本程序库。


使用示例:

使用程序库的方式还是和以前一样:工程中加入SVS.c文件,源文件中加入对SVS.h的文件包含。

main.c主要内容如下:

#include//430寄存器头文件
#include#include "Lcd12864.h"
#include "SVS.h"

/****************************************************************************
* 名    称:main主程序
* 功    能:设置串口,输出信息,从串口读计算机键盘输入数据,测试串口收发
* 入口参数:无
* 出口参数:无
* 说    明:复位测试时 每次电压调低再调正常 液晶显示的数据加1
            不复位时 每次调低 输出一个电压过低。
****************************************************************************/
void main()
{
    // Stop watchdog timer to prevent TIme out reset
    WDTCTL = WDTPW + WDTHOLD;
    ClkInit();
    LcdInit();
    
    /*//======== 电压过低时复位测试============
    __no_init char ff;      //复位不初始化

    SVSSetup(0x0A,1);       //检测电源电压 3.05v 低于3.05v时单片机复位
    ff++;                   //此变量 每次复位加1
    printf("%d",ff);        // 电压调低(<3.05v)再调高,显示变量将加1
    */
    SVSSetup(0x0A,0);       //测电源电压 3.05v 低于3.05v时单片机 不复位
                            //0x0A 改为0x0f 则对P6.7电压监控 检测是否低于1.2v
    while(1)
    {
        if(SvsFlg()) 
            printf("电压过低");
        //SVSFG位必须 软件清零,如果电压没有回到3.05以上,
        //位的值立即被单片机置为1
        ClearSvs(1);        //清除标志 直到恢复正常电压
    }
}

本程序使用12864液晶来显示电压过低的情况:复位时,设置一个__no_init变量,每次复位加1,可以看到电压调低后,显示数字被加1.不复位置,显示电压过低。这里使用的是12864的底层驱动和printf函数移植,比之前做了稍微更改,这些在注释中说明的已经很详细了,这里不在细说。

关键字:MSP430  单片机  SVS  电源电压监控器 引用地址:基于MSP430单片机的SVS(电源电压监控器)模块设计

上一篇:ZigBee实现多用户智能电表
下一篇:基于MSP430单片机的超低功耗待机解决方案

推荐阅读

安全机器人和工业4.0柔性生产是工业4.0的一大主题。在工业生产中,柔性的自动化机器能够快速轻松地适应不断变化的生产条件,其需求量日益增长。人员应当能够不受阻碍地进入,同时免受危险。机器人的速度、力量和移动性往往离不开有效的防护措施。随着人与机器人之间的交互愈发密切,安全解决方案将发挥关键作用:它不仅使工作环境更加安全,而且还将大幅提...
一.前言stm8是一款低功耗的MCU芯片,它具备stm32库函数和资源丰富的优势。也同时具有价格便宜,低功耗的特点。在一些项目中,能起到很好的作用。下面我介绍一下stm8的IIC硬件库函数驱动代码及实现。二.IIC基本操作iic基本操作分为读操作和写操作,这两个操作就可以对设备进行一些基本的操作了。还要知道设备的地址就ok了,具体的IIC时序大家可以上网看看。...
罗克韦尔自动化中国有限公司宣布与广州百济神州生物制药有限公司(以下简称“百济神州”)建立长期业务合作关系,为百济神州在合规环境下的数字化转型提供全面解决方案和服务支持。 作为生物制药领域的领先企业,此次签约是百济神州首次选择工业信息化与自动化长期合作伙伴。罗克韦...
据外媒报道,轮胎制造商固特异(Goodyear)和美国斯塔克地区交通管理局(SARTA)宣布建立合作关系,将在SARTA的柴油和零排放氢燃料电池驱动(HFC)巴士车队上测试智能轮胎传感器和原型轮胎。(图片来源:SARTA)通过采用固特异的TPMS Plus车载传感器,该智能轮胎可将轮胎状况的实时数据发送到固特异SightLine移动云,并使用可定制的算法,快速分析数据以...

史海拾趣

问答坊 | AI 解惑

用于停车场照明的微波感应模块

GH-719微波感应位移模块是利用多普勒雷达(Doppler Radar)原理设计的微波移动物体探测器,微波频率10.525GH,直接加直流6-20V电源即可工作。   GH-719微波感应位移模块信号处理采用单片机程序分析,可靠性高。电路板上有16级灵敏度调整 ...…

查看全部问答∨

2009年全国大学生电子设计竞赛本科组的哪个好做呀???

本帖最后由 paulhyde 于 2014-9-15 09:02 编辑 急求!!!  …

查看全部问答∨

明明白白-分辨率:看看你知道多少?

分辨率是和图像相关的一个重要概念,它是衡量图像细节表现力的技术参数。但分辨率的种类有很多,其含义也各不相同。正确理解分辨率在各种情况下的具体含义,弄清不同表示方法之间的相互关系,是至关重要的一步。下面对几种常见的图像输入/输出分辨 ...…

查看全部问答∨

ITU656标准的疑问?

在ITU656标准的文档中,并没有看到该标准是否支持逐行信号。而TW8811和TW8816芯片的介绍中,提到可以支持隔行和逐行的ITU656格式。“Interlaced and progressive ITU 656 inputs are supported.”,有哪位同行知道这一点,帮助确认一下ITU656是否支 ...…

查看全部问答∨

谁有IMP813L的中文资料?谁知道在Protel99里如何选择元件库?

在Protel99里想找到IMP813L对应用的是那个元件库,但找了半天没找着谁知道呀? 还有谁有IMP813L的资料(中文最好)能给传一份吗?谢谢!我的EMIL:ycangmsw@163.com 在次感谢!…

查看全部问答∨

用DSP的来签个名,看看有多少人在用,谢谢

感觉DSP版块人气很低样,发个帖子调查一下…

查看全部问答∨

Keil3.24下编译慢,如何解决?

keil 3.24自带的stm32库是2.01版本的,我在st网站上下载的是2.03版本。我把keil目录下的.c和.h文件都替换为2.03版本的,stm32f10x_vector.s和cortexm3_macro.s文件也采用st的2.03版本,编译起来速度特别慢,两三秒编译一个c文件。没替换 ...…

查看全部问答∨

刚做好的STM32F107开发板,带以太网,USBOTG有图

下载 (201.35 KB) 2009-8-25 20:14 下载 (208.75 KB) 2009-8-25 20:14 金牛-STM32-107嵌入式开发板 STM32F107功能: STM32F107是意法半导体推出全新STM32互连型(Connectivity)系列微控制器 ...…

查看全部问答∨

求DXP2004软件!!!!!

谁有啊 传给我个 QQ526844809 谢谢 急用...................…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved