MSP430常见问题之工作模式和功耗类
Q1:1,MSP430进入LP 模式后,CPU 停止运行,那么,进入中断执行退出后,由于SR的恢复,导致还处于LP 模式,是否意味着,CPU 在退出中断后立即停止了呢?
2,也就是说,进入LP 模式后,要让非中断流程运行的话,只能在中断退出前把保存在堆栈里面的SR 修改了?3,由于中断自动恢复保存的寄存器,要想在中断程序里面修改堆栈里面的保存的SR,只能用汇编了?
Q2:1、是的。
2、是的。
3、是的。_BIS_SR_IRQ() 以及_BIC_SR_IRQ() 函数可用。
Q2:有个程序进入LPM3 后拿万用表测电流在40uA 左右,不是的datasheet里说的小于2uA。万用表2mA 档串接在电池和VCC 之间。甚至于我写了最基本的初始化函数和main函数如下,测试电流值仍然在40 多uA。我想知道如何才能准确测得LPM3 下的电流,或者说是否万用表本身有影响?因为我们的程序要求有至少5年电池寿命,用的125mA 的CR1632,需要耗电在2.8uA下才行。
A3:我和你做的东西是差不多的,也用的是F201X 或F21X1 的片子,所以也测量过这个,对这个经验我有这几方面:
1、万用表的问题:有些万用表最小是2mA档,根据测量仪器的特性,接近满量程时的测量数据较准确,所以2mA 档测量2uA的电流时,相差1000倍,极不精确。我测量时使用的是一块带有200uA档的DT830数字表,实测LPM3 下只有0.7uA,与F201X 手册上标注一致。
2、湿度与PCB防潮问题:如果是实验板,因为上边没有阻焊膜,很容易受潮造成板上漏电,所以这种低功耗的东西一定要密封好,建议成品直接用树脂或是胶封起来,哪怕是热熔胶,也比暴露在空气中强。我测试的时候,就因为对着板子喘了口气,就发现表上电流示数开始变大了——这个电流实在是太小了,小到不能忽视任何干扰了。另外,要是手摸了板上子特别是电源两端的话,这个直接会造成几十到几百微安的电流,所以用手拿着板子测是极不科学的,要是不拿板子表笔不好扎的话,建议去电子商场买一对勾夹子,我买的1.5一个,3 块钱一对。勾好以后把板子悬空放着最好。
3、电路内的损耗电流:尤其是RC 方式的SLOPE,要想省电就必须严格控制电容的容量,越大越费电,或是说,如果你的电话容有余量的话,就要严格控制充电时间,否则充的时间长了,也一样会发生耗电增加的情况。最注意的就是,不要充上电之后去睡,醒了再放电检测,那样因为漏电的关系,损耗最大,哪怕你的电
容容量很小也不行。
4、初始化的选择:初始化的时候,一定要把不用的东西全关掉,包括IO 口全置为输出,并输出为低电平,而且不要选择REN,或是像楼主的程序那样,REN 置0。建议的初始化就是所有的SEL=0,REN=0,DIR=0FFH,OUT=0。像楼主现在的初始化把P1SEL 置了三位,那样就把那些模块一直选通了,可能会增加耗电。最好是模
块在使用前就不打开。当然如果为了利用模块的高阻性能而常开对应的比较器或ADC 端口的话,建议置一下对应端口的CAPD,这样可以进一步的减少寄生电流的产生。
Q3:#include <intrinsics.h>
#include <io430x14x.h>
int main()
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
//initclock
init_clk();
init_io();
LPM0;
while(1);
}
Error[Pe020]: identifier "_BIS_SR" is undefined
以上程序为什么会出错?直接给SR 赋值也不成,并且到头文件中也没找到SR 的定义,这是出了什么问题呢?
TA0 的时钟选用0.5M 8分频,近似计数值63 为1ms,使用连续计数方式。
A3:将头文件改成
#include<msp430x14x.h>
#include<in430.h>
#include <io430x14x.h>即可正常运行。
Q4:低功耗设计中430接CMOS器件要注意?
A4:在低功耗产品设计中,当430的i/o 口与CMOS 器件接口时,比如LCD之类的,为了省电,LCD间歇供电,当LCD关断时,与之相连的430的i/o 口一定要设置为输入口或者设置为输出为1.否则LCD内部cmos器件的I/O口通过二极管导到其VCC上,这样MCU的电流变大了,功耗变的更大了.
Q5:程序总是不正确执行,运行就出现下述错误:CPU is OFF (Low Power Mode ) and interrupts are disa××ed! cannot excute Step/go到底是怎么回事?看了cpu 寄存器中cpuoff =1 的,但没有设置低功耗模式呀?
A5:查下晶振是否正常;程序不能正常运行是一步都不能走么?如果只是某个位置,看看程序对外围控制是否会让时钟或者电源受到影响;再次确认是否真的没有设置低功耗,注意看低功耗的宏定义。
Q6:当CPU 关闭后,在中断函数里面的计算,比如全局变量i 的累加等计算是由谁来执行的呢?为什么CPU关闭后还可以处理很多计算,赋值,判断等指令呢?
A6:在中断里CPU 是处于ACTIVE 模式的,进入中断后,DCO会自动起震,430 退出低功耗模式。
Q7:430 在低功耗的时候,闲置的口线应该是输入还是输出??
A7:不用的I/O口设置为输入时接地,或者设置为输出时悬空。
MSP430常见问题之工作模式和功耗类的更多相关文章
- MSP430常见问题之看门狗及定时器类
Q1. 定时器两个中断TAIE 和CCIE,有什么区别?两个中断的中断向量一样吗?A1:TAIE 和CCIE指的是不同事件.TAIE指TAR 计数器溢出,从65535 到0 的变化,由TAIFG 引起 ...
- 【EF 5】结合项目实战分析EF三大工作模式之—Database First
导读:所谓的EF的Databasefirst工作模式,是目前我们(不涉及社会领域)用的最广的一种模式,也是本次ITOO开发所采用的工作模式.本篇博客,就分析在项目中通过Database First模式 ...
- Spring源码解析之:Spring Security启动细节和工作模式--转载
原文地址:http://blog.csdn.net/bluishglc/article/details/12709557 Spring-Security的启动加载细节 Spring-Securit ...
- .Net普通三层 到 工厂模式->线程内唯一+单元工作模式->WebService分布式三层
在软件世界分层的思想无处不在 主要是为了提高软件系统的维护性,扩展性,复用性和解耦等 软件的三层构架是一种最基本的分层思想的体现 结构图大体如下: 如此一来,开发人员可以只关注其中一层,而无需关心下一 ...
- LoRa---她的芯片和她的几种工作模式
LoRa对应的芯片------sx1278芯片 sx1278芯片为Semtech公司推出的具有新型LoRa扩频技术的RF芯片,具有功耗低.容量大.传输距离远.抗干扰能力强的优点.我接下来在这块芯片上进 ...
- rabbitmq官方的六种工作模式
1.RabbitMq1.1介绍RabbitMQ是一个消息代理:它接受并转发消息.你可以把它当成一个邮局:当你想邮寄信件的时候,你会把信件放在投递箱中,并确信邮递员最终会将信件送到收件人的手里.在这个例 ...
- ST MCU_GPIO的八种工作模式详解。
补充: N.P型的区别,就是一个为正电压启动(NMOS),一个为负电压启动(PMOS) GPIO的八种工作模式详解 浮空输入_IN_FLOATING带上拉输入_IPU带下拉输入_IPD模拟输入_AIN ...
- eMMC之分区管理、总线协议和工作模式【转】
本文转载自:https://blog.csdn.net/u013686019/article/details/66472291 一.eMMC 简介 eMMC 是 embedded MultiMedia ...
- 再谈STM32的CAN过滤器-bxCAN的过滤器的4种工作模式以及使用方法总结
1. 前言 bxCAN是STM32系列最稳定的IP核之一,无论有哪个新型号出来,这个IP核基本未变,可见这个IP核的设计是相当成熟的.本文所讲述的内容属于这个IP核的一部分,掌握了本文所讲内容,就可以 ...
随机推荐
- c#: 解析json, 转成xml, 简单方便
没看到.net framework中有这样的功能, 懒得到处找了, 索性花点时间自己写一个 /* * Created by SharpDevelop. * Date: 2013/6/24 * User ...
- VBScript Sample:遍历文件夹并获取XML文件中指定内容
案例: 我有一个文件夹,里面有很多子文件夹,每个子文件夹中都存在一个相同名字的XML文件,XML文件里面的标签结构相同,只是内容不同,XML文件中包含ID,Name等标签. 文件夹及文件结构如下图: ...
- linux之C编程实战小例
人生匆匆一趟,打不打酱油?怎么打?怎么打"质量好点的酱油"?由你决定.打酱油是一种态度,更是一种生活! 哈哈,事不关己不开口,专心一意打酱油! 请记住下面些许话: 不要一味的说别人 ...
- [iOS基础控件 - 5.1] UIScrollView
A.需要掌握 UIScrollView 是一个能够滚动的视图控件,可以用来展示大量内容,如手机的“设置” 1.常见属性 2.常用代理方法 3.缩放 4.UIScrollView和UIPageContr ...
- C#模仿360安全卫士玻璃按钮,不闪烁,背景切换效率快
首先先上效果图: 1.准备两张透明的png图片(尺寸74 x 82),一张用于鼠标进入控件时显示,一张用于鼠标单击控件时显示 2.拖一个GlassButton按钮 3.设置按钮属性 this.btnE ...
- Linux下修改Oracle监听地址
如果你的服务器换了ip怎么办? 如果你的服务器换了名字怎么办? 以前的小伙伴怎么办? 以前的老客户怎么办? 没关系,简单教你修改监听地址,老朋友随便找! 想要修改监听地址首先要找到两个文件,确定两样东 ...
- tomcat+JNDI+spring 的配置问题
在做spring有关的项目时,往往需要配置数据源,当然配置的方式有很多种,可以单独写在一个properties文件中,这样修改数据源配置的话比较容易,也比较简单,下面介绍另外一种数据源的配置 利用jn ...
- Linux时间同步方式记录
Linux时间同步 部署Hadoop集群,遇到各个linux服务器的时间不同步的问题,于是研究了一下linux的时间同步方式,特将同步方式,总结如下: A. 前提条件 a) 网络是连通 ...
- iOS调用系统通讯录获取姓名电话号码(转)
原文地址:http://blog.csdn.net/idoshi201109/article/details/46007125 OS调用系统通讯录获取姓名电话号码 (iOS 8.0 Xcode6.3可 ...
- 逻辑网络(Logical Network)
Introduction The VMM documentation indicates that “A logical network is used to organize and simplif ...