历史上的今天
今天是:2025年01月07日(星期二)
2020年01月07日 | MSP430F5438A单片机低功耗设置
2020-01-07 来源:eefocus
MSP430F5438A单片机低功耗设置,以进入LPM3为例:
1、MSP430F5438A外部时钟分别为8M和32.768,程序正常运行时选择8M主时钟,当程序需要进入低功耗时,需要将主时钟切换为32.768,代码如下(自己试着改的。。)
void InitClock()
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
//P11DIR |= 0x07; // ACLK, MCLK, SMCLK set out to pins
//P11SEL |= 0x07; // P11.0,1,2 for debugging purposes.
__bis_SR_register(SCG0); // Disable the FLL control loop +OSCOFF
// Initialize LFXT1 ,XT2
// P5SEL |= 0x0C; // Port select XT2
P7SEL |= 0x03; // Port select XT1
// UCSCTL6 &= ~(XT1OFF + XT2OFF); // Set XT1 & XT2 On
UCSCTL6 &= ~(XT1OFF);
UCSCTL6 |= XCAP_3; // Internal load cap
// Loop until XT1,XT2 & DCO fault flag is cleared
do
{
UCSCTL7 &= ~(XT1LFOFFG + XT1HFOFFG + DCOFFG);
// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while (SFRIFG1 & OFIFG); // Test oscillator fault flag
UCSCTL6 &= ~XT2DRIVE0; // Decrease XT2 Drive according to
// expected frequency
//UCSCTL5 |= DIVS_0; // SMCLK/1=8Mhz
//UCSCTL4 |= SELS_5 + SELM_5+SELA__XT1CLK; // SMCLK=MCLK=XT2=8Mhz
UCSCTL4 |= SELS__XT1CLK + SELM__XT1CLK+SELA__XT1CLK; // SMCLK=MCLK=XT2=8Mhz
UCSCTL6 |= (XT1OFF);
P5SEL &= ~0x0C;
P5DIR|=0X0C;P5OUT&=~0X0C;
delay(50);
}
void InitClockgs()
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
//P11DIR |= 0x07; // ACLK, MCLK, SMCLK set out to pins
//P11SEL |= 0x07; // P11.0,1,2 for debugging purposes.
__bis_SR_register(SCG0); // Disable the FLL control loop +OSCOFF
// Initialize LFXT1 ,XT2
P5SEL |= 0x0C; // Port select XT2
P7SEL |= 0x03; // Port select XT1
UCSCTL6 &= ~(XT1OFF + XT2OFF); // Set XT1 & XT2 On
//UCSCTL6 &= ~(XT1OFF);
UCSCTL6 |= XCAP_3; // Internal load cap
// Loop until XT1,XT2 & DCO fault flag is cleared
do
{
UCSCTL7 &= ~(XT2OFFG +XT1LFOFFG + XT1HFOFFG + DCOFFG);
// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while (SFRIFG1 & OFIFG); // Test oscillator fault flag
UCSCTL6 &= ~XT2DRIVE1; // Decrease XT2 Drive according to
// expected frequency
UCSCTL5 |= DIVS_0; // SMCLK/1=8Mhz
UCSCTL4 |= SELS_5 + SELM_5+SELA__XT1CLK; // SMCLK=MCLK=XT2=8Mhz
// UCSCTL4 |= SELS__XT1CLK + SELM__XT1CLK+SELA__XT1CLK; // SMCLK=MCLK=XT2=8Mhz
delay(50);
}
2、进入低功耗之前,需要设置所有的IO引脚为固定的输入输出状态,引脚的不确定状态会增加单片机的功耗;
3、如果引脚连接有相关外设,比如上拉电阻,进入低功耗之前,引脚状态应该设置输出、高;如果是下拉电阻,则设置为输出低,可以hi降低一部分功耗;如果引脚用控制某些设备的电源开关,要先将其关掉(如果允许);
4、单片机片上外设进入低功耗之前也需要先将其关掉,如串口:进入低功耗之前,需要先将其引脚设置为输出低和关闭串口功能;
5、程序唤醒用的定时器时钟选择32.768低速时钟,当定时时间到时,定时器中断中唤醒单片机进入正常运行状态;
实测,两节干电池供电,不经过LDO,4UA电流。
一点总结,不对处多交流。
上一篇:MSP430单片机的端口介绍
史海拾趣
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 二、运动场馆的安防设计主要考虑以下方面: 1、人员密集区 对视频监视系统的要求是系统可靠、稳定,反应速度快捷,能够在第一时间发现警情,并且具有多种联动功能,可以及时通 ...… 查看全部问答> |
|
即将过去的2009年,或者对相当一部分电子设备制造商而言,并不算是个好年份。不过,在全球经济渐趋稳定和中国市场强劲复苏的背景下,2010年中国电子设备制造商将面临难得一遇的大好发展机遇。那么,2010年中国电子市场有哪些应用热点值得我们期待呢 ...… 查看全部问答> |
|
本人想移植一个uC/OS-II到51(C8051F040)单片机上,C语言部分编译链接成功,与MCU相关的汇编部分虽然编译成功却无法链接(OS_CPU_A.ASM 文件)。 1. OS_CPU_A.ASM文件如下: $NOMOD51 EA BIT   ...… 查看全部问答> |
|
WinCE USB驱动,从5.0移植到4.2。需要注意什么? 目前需要将usb转串口驱动,从ce5.0移植到4.2系统,时间要求很紧。请问各位大侠移植难度大吗?需要注意什么问题?谢谢!… 查看全部问答> |
|
同主题,想在9B90上移植modbus协议。 找到freemodbus程序,底层的定义能大概看明白,但是官网上说可以跟现在modbud/tcp 可以lwip的TCPIP协议。 参考例子各种看不懂啊,需要建立线程(参数也不对), lwip_init自定义(为啥不用lwip ...… 查看全部问答> |
|
昨天,美国一家硬件创业加速器HighWay1上线,它的目标和Cdil Ebersweiler的HAXLR8R有着相似的目的:将美国本土的硬件初创团队搬去深圳,快速迭代原型,寻找供应链。 当然,两家硬件加速器有许多细节是不同的: HighWay1 最高提供 ...… 查看全部问答> |




