MSP430程序库<十二>SVS(电源电压监控器)模块

发布者:TranquilVibes最新更新时间:2019-10-09 来源: eefocus关键字:MSP430  程序库  SVS  电源电压监控器 手机看文章 扫描二维码
随时随地手机看文章

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


硬件介绍:

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


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


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


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


image


高四位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 /掉电互操作如图:


image


如图:为防止电压在门限附近变动时,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(电源电压监控器)模块

上一篇:MSP430程序库<十三>硬件乘法器使用
下一篇:MSP430程序库<十一>定时器TA的PWM输出

推荐阅读最新更新时间:2024-10-25 12:05

MSP430程序库<十二>SVS(电源电压监控器)模块
电源电压监控对于单片机来说,也是经常要用的模块。当需要稳定的工业级产品时,经常要对电源电压监控,以保证单片机系统工作于正常环境或范围中。MSP430F16x提供了一个现成的电源电压监控器模块SVS,方便检测电源电压或者是外部电压,可以设置为电压过低时复位 或置标志位。本程序即完成SVS的设置使用的程序库(msp430f14x没有此模块)。 硬件介绍: MSP430单片机含有的SVS模块可以很方便的监控电源电压或外部电压。 电源电压监控器(SVS)是用于监控AVCC电源电压或外部电压。 SVS的可配置当电源电压或外部电压下降到低于用户选择的电压级别时设置一个标志,或产生POR复位。 SVS模块有以下特点:可以监控AVCC
[单片机]
<font color='red'>MSP430</font><font color='red'>程序库</font><十二><font color='red'>SVS</font>(<font color='red'>电源</font><font color='red'>电压</font><font color='red'>监控器</font>)模块
基于MSP430单片机的SVS(电源电压监控器)模块设计
电源电压 监控 对于 单片机 来说,也是经常要用的模块。当需要稳定的工业级产品时,经常要对电源电压监控,以保证单片机系统工作于正常环境或范围中。 MSP430 F16x提供了一个现成的电源电压监控器模块SVS,方便检测电源电压或者是外部电压,可以设置为电压过低时复位 或置标志位。本程序即完成SVS的设置使用的程序库(msp430f14x没有此模块)。 硬件介绍: MSP430单片机含有的SVS模块可以很方便的监控电源电压或外部电压。 电源电压监控器(SVS)是用于监控AVCC电源电压或外部电压。 SVS的可配置当电源电压或外部电压下降到低于用户选择的电压级别时设置一个标志,或产生POR复位。 SVS模块有以下特点:可以监控
[单片机]
基于<font color='red'>MSP430</font>单片机的<font color='red'>SVS</font>(<font color='red'>电源</font><font color='red'>电压</font><font color='red'>监控器</font>)模块设计
电压监控器如何解决电源噪声和毛刺问题
摘要 电压监控器通过监控电源,在电源发生故障时将微控制器置于复位模式,可防止系统出现错误和故障,从而提高基于微控制器系统的可靠性。然而,噪声、电压毛刺和瞬变等电源缺陷都可能会导致误复位问题,从而影响系统行为。本文介绍电压监控器如何解决可能触发误复位的因素,以提高系统性能和可靠性。 简介 对于需要使用现场可编程门阵列(FPGA)、微处理器、数字信号处理器和微控制器进行数据计算和处理的应用,都必须确保各器件能够安全可靠地运行。由于这些器件只能在一定的电源容差范围内运行,因此对电源的要求很高。 1 电压监控器可用于保持系统稳定可靠运行。当电源出现意外故障(例如欠压或过压)时,电压监控器可立即触发操作,将系统置
[电源管理]
<font color='red'>电压</font><font color='red'>监控器</font>如何解决<font color='red'>电源</font>噪声和毛刺问题
德州仪器推出具备多功能的四通道电源电压监控器
      日前,德州仪器 (TI) 宣布推出具备可编程延迟与看门狗定时器的 四通道电源电压监控器 (SVS) 产品系列,可最大限度地缩减当前多轨电源设计的板级空间。TPS386000、TPS386020、TPS386040 以及 TPS386060 监控器均可监控电压超过 0.4V 的 4 个电源轨,阈值精度误差为 0.25%。这种高精度与集成看门狗定时器相结合,可为系统提供高可靠性,满足基于处理器的应用需求。TPS386000 系列器件可为每个监控器通道提供独立的可编程延迟输入,延迟时间可针对电源排序在 1.25ms 至 10 秒之间进行设置。现在即可立即订购 TPS386000 评估模块: www.ti.com.cn/tps
[电源管理]
德州仪器推出具备多功能的四通道<font color='red'>电源</font><font color='red'>电压</font><font color='red'>监控器</font>
TI 推出具备 I2C 接口的双向电流、电压电源监控器
为服务器、电信与工业设备提供高精度电源监控 2007 年 7 月 11 日,北京讯 日前,德州仪器 (TI) 宣布推出一款具备 I2C 接口的高侧测量双向电流∕电源监控 IC —— INA209,借助零漂移与自动调零 (auto-zeroing) 架构,该产品提供了高精度的电流检测解决方案,在 -40℃ 至 +85℃ 温度范围内,最高精度不低于 1%,最大偏移为 100uV。该器件支持多种应用中的电流、电压与电源的监控,例如服务器、电信设备、电池充电器、电源管理、汽车以及测试设备等。(更多详情,敬请访问: http://focus.ti.com.cn/cn/docs/prod/folders/print/ina209.html
[新品]
MSP430 DMA程序库
直接存储器存取(DMADirect Memory Access)方式是用硬件实现存储器与存储器之间或存储器与IO设备之间直接进行高速数据传送,不需要CPU的干预。这种方式通常用来传送数据块。MSP430f16x系列单片机内部含有DMA模块,而且几乎内部所有外设都可以触发DMA开始存取数据。这里实现了这个模块的程序通用的函数库,方便使用。 硬件介绍: MSP430F15X/16X 系列单片机具有DMA 控制器,从而能够为数据高速传输提供保证。例如,通过DMA控制器可以直接将ADC 转换存贮器的内容传到RAM 单元。 MSP430系列单片机扩展的DMA具有来之所有外设的触发器,不需要CPU的干预即可提供先进的可配置的数据传
[单片机]
<font color='red'>MSP430</font> DMA<font color='red'>程序库</font>
MSP430F42X系列单片机16位ADC通用程序库
这个msp430单片机的16位ADC库文件的调用方法可先下载完整代码然后找到(例4.1.6)这一节,里面有调用方法 ADC16.c文件: /* MSP430F42X系列单片机16位ADC通用程序库 说明:该驱动程序库包含了常用的16位ADC操作与控制功能函数,如选择通道、设置信号放大倍数、设置数据格式、基准源输出开关等,以及常用采样函数,包括单通道采样、平均采样、多通道同时采样等。可以作为各种程序的底层驱动使用。 要使用该库函数,需要将本文件(ADC16.c)添加进工程,并在需要调用ADC函数的文件开头处包含 ADC16.h */ // MSP430FE425 // +------
[单片机]
MSP430程序库<五>SPI同步串行通信
SPI总线系统是一种同步串行外设接口;是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。 许多的芯片都用这种协议通信:EEPROM、Flash、实时时钟、AD转换器、数字信号处理器等:MSP430的USART模块不仅能够实现异步模式(见:MSP430程序库 二 UART异步串口),而且支持同步串行通信(即SPI模式);其SPI支持3线、4线操作,支持主机模式和从机模式,字符长度可以7位或8位等。由于要用AD7708芯片完成AD采样,AD7708是通过SPI与其它设备通信的;本程序比较简化,
[单片机]
<font color='red'>MSP430</font><font color='red'>程序库</font><五>SPI同步串行通信
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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