您的位置 首页 解答

msp430电压监控

一、使用限制:当使用MSP430x41x器件的时候,应该注意的是,x413,x417和x419在器件上有很大的区别。对于SVS这一块,以413和419为典型…

一、运用约束:

当运用MSP430x41x器材的时分,应该留意的是,x413,x417和x419在器材上有很大的差异。

关于SVS这一块,以413和419为典型,413只需1.9V这一档电压监测,不只电压值不可选,还只能测来自VCC的电压;419不只具有SVSIN能够监测外部的电压,而非只限制在VCC内部电压上,还有14种不同电压可选,能够恣意监控内部或外部电压了。

假如要在413上做电池的低电量指示,非1.9V不报警,所以不适于锂电池供电的设备,只适合于运用一次性干电池的设备运用。要想做锂电池的指示,要么不必413,要么用比较器完成。

二、运用误区:

在运用41x器材上的SVS时,许多人或许误读了手册,或是没有细读就运用了它,导致软件编写的过错,尽管不会引起大问题,但确实是不应该产生的问题。

VLDx设置电压值,0为封闭SVS,1-15均为启用,其间15为监控外部从SVSIN输入的信号,1-14从小到大依次为从低至高监控内部VCC电压的。而在413器材上,因为只需1.9V一档,只需对错0值作用都是相同的,当然,假如要兼容41x全系列的软件,仍是应该运用对应的电压值选项,也便是1。

SVSON是最简单误用的一个位。在网上许多例程在设置SVSCTL时会相似下面代码这样写:

#define VLD_3V7 0xe0

void low_bat_test(void)

{

SVSCTL = SVSON + VLD_3V7;

_NOP();

_NOP();

_NOP();

if(SVSCTL & SVSOP)

//低压指示

else

//关掉低压指示

SVSCTL = 0;

}

其实是一个误读形成的。英文手册中特别用大写字母注出来,SVSON位不是用来翻开SVS的,这个位会在VLDx>0的时分主动被翻开,所以从上例中看的话很明显,写代码的作者以为那是翻开SVS用的开关。

正确的写法便是SVSCTL = VLD_3V7; 就行了,之后咱们再检查SVSCTL的值就变成了0xe4。

另一个没有细读就出的当地便是关于延时,尽管手册中说SVSON是在VLDx>0时主动设置的,但假如那一章全部都细看过的话会知道别的两件事:

1、当发动(从封闭变成开)或改动监控电压的时分,SVS模块并不能立刻开端作业,有必要要等一段时间,且发动和更改电压的等候时间也是不同的,别离约为50us和12us以内。

2、SVSON位并不是在设置VLDx为非0值后当即动作的,它能够作为SVS体系安稳的指示器运用,在SVS模块预备好之前,SVSON位仍是0,当SVSON为1时则阐明模块预备结束,能够作业了。

所以咱们能够把上述程序改成这姿态:

#define VLD_3V7 0xe0

void low_bat_test(void)

{

SVSCTL = VLD_3V7; //这句直接设置电压值,且不要修正SVSON位

while((SVSCTL & SVSON) != SVSON); //这句便是无限等候SVSON直到它为1才持续

if(SVSCTL & SVSOP)

//低压指示

else

//关掉低压指示

SVSCTL = 0;

}

留意到代码与前边的不同来了吧?自己也是抛砖引玉,期望我们有什么不同的观点也提出来,一同评论,假如我讲的有过错,也请提出来,一同学习,一同前进。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/272689.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部