进入LPM3电流还有20MA

[复制链接]
885|19
手机看帖
扫描二维码
随时随地手机跟帖
Thorald|  楼主 | 2017-4-29 21:06 | 显示全部楼层 |阅读模式
通过RTC中断1S唤醒
void main(void)
{
        WM_Initialize();                // System initialize
        
        // Display "123456"
  LCD_Display0_8();

  while(1)
        {
        __bis_SR_register(LPM3_bits + GIE);   // 进入 LPM3 w/ interrupt        
        }
}

void WM_Initialize(void)
{
        WDTCTL = WDTPW + WDTHOLD;          // Stop watchdog
        //        WDTCTL = WDTPW + WDTCNTCL + WDTSSEL0 + WDTIS0 + WDTIS1;  // Set watchdog 16s

        PM5CTL0 &= ~LOCKLPM5;              // Disable the GPIO power-on default high-impedance mode
                                                                // to activate previously configured port settings
        GPIO_Config();              // GPIO initialize
        CLOCK_Config();             // System clock initialize
        LCD_Config();               // LCD module initialize
        RTC_Config();  
        //P1SEL0 |= BIT5;  //配置P15为输入脚  20160506
       //          P1REN |= BIT5;   
        //P1REN &= ~BIT5; // to be comment  20160506
        //TA0CTL = 0;  20160506
}
void CLOCK_Config()
{
        P4SEL0 |= BIT1 + BIT2;                  // Select pin4.1 pin4.2 as crystal function
        do
        {
                CSCTL7 &= ~(XT1OFFG + DCOFFG);            // Clear XT1 and DCO fault flag  清除 XT1 DCO 失效标志
                SFRIFG1 &= ~OFIFG;
        }while (SFRIFG1 & OFIFG);                     // Test oscillator fault flag  如果失效标志存在

        CSCTL4 = SELA__XT1CLK;                                        // IMPORTANT. Select ACLK = XT1 = 32768Hz
}
void LCD_Config()
{
        uint8_t ui8Cnt;
        uint8_t *pLCD = (uint8_t *)&LCDM0;
        for (ui8Cnt = 13; ui8Cnt > 0; ui8Cnt--)                        // Clear LCD memory
                *pLCD++ = 0x00;                                        // CLR LCD

        SYSCFG2 |= LCDPCTL;                              // R13/R23/R33/LCDC1/LCDC2 pins selected  设置 LCD功耗

        LCDPCTL0 = 0xFFFF;
        LCDPCTL1 = 0x01FF;                                        //设置 LCD管脚 L0~L24 pins selected

        LCDVCTL = LCDSELVDD + LCDCPEN;                // Mode 2 设置 降低LCD 功耗 片上电荷泵

        LCDCSSEL0 = 0x000F;                                        // 设置 公共极  COM0~3
        LCDCSSEL1 = 0x0000;

  LCDM0 = 0x21;                                              // L0 = COM0, L1 = COM1
  LCDM1 = 0x84;

        LCDCTL0 |= LCD4MUX + LCDLP + LCDON;        // 打开LCD: 4-mux 模式
}
void RTC_Config()
{
        RTCCTL = RTCSS__XT1CLK + RTCSR + RTCPS__1 | RTCIE;
        RTCMOD = 32768-1;                             //1s
        tRTCData.ui8Year = 14;              // RTC initialize
        tRTCData.ui8Month = 7;
        tRTCData.ui8Day = 30;
        tRTCData.ui8Hour = 23;
        tRTCData.ui8Minute = 59;
        tRTCData.ui8Second = 55;
}
// RTC interrupt service routine
#pragma vector=RTC_VECTOR
__interrupt void RTC_ISR(void)
{
        switch(__even_in_range(RTCIV,RTCIV_RTCIF))
        {
        case RTCIV_NONE: break;             // No interrupt

        case RTCIV_RTCIF:                   // RTC Overflow
        {
                uint8_t ui8Days = 31;
                uint8_t *pAddress;               // For monthly data storage

                tRTCData.ui8Second++;
。。。
                __low_power_mode_off_on_exit();  //退出中断时唤醒CPU
        }
        break;
        default: break;
        }
}

相关帖子

Bjorn| | 2017-4-29 21:24 | 显示全部楼层
要看你的外围器件了,单片机用20mA基本不太可能

使用特权

评论回复
1988020566| | 2017-5-5 20:45 | 显示全部楼层
你测量的外围电路电流多大?

使用特权

评论回复
lzbf| | 2017-5-5 20:46 | 显示全部楼层
msp430低功耗模式LPM3 电流0.5mA

使用特权

评论回复
houjiakai| | 2017-5-5 20:47 | 显示全部楼层
msp430的外围设备,一般只要保证msp430进入了LPM3了,大部分外围设备是不工作的

使用特权

评论回复
youtome| | 2017-5-5 20:47 | 显示全部楼层
默认DCO时钟时进入LPM3则只有3μA左右,板子上电源芯片耗电约2μA

使用特权

评论回复
1988020566| | 2017-5-5 20:48 | 显示全部楼层
去掉外部设备电流就小了。

使用特权

评论回复
lzbf| | 2017-5-5 20:48 | 显示全部楼层
你这电流怎么使用这么大40倍电流

使用特权

评论回复
houjiakai| | 2017-5-5 20:48 | 显示全部楼层
将板子的外围芯片都卸下后,再次测试功耗,在时钟为8M时进入LPM3电流大概130μA左右

使用特权

评论回复
youtome| | 2017-5-5 20:48 | 显示全部楼层
msp430g2303 lpm3低功耗模式下,电流5uA。

使用特权

评论回复
10299823| | 2017-5-7 15:34 | 显示全部楼层
有其他的外部元器件吗?

使用特权

评论回复
jimmhu| | 2017-5-7 15:34 | 显示全部楼层
lzbf 发表于 2017-5-5 20:46
msp430低功耗模式LPM3 电流0.5mA

怎么跟楼主测量的电流差这么大?

使用特权

评论回复
lihuami| | 2017-5-7 15:35 | 显示全部楼层
youtome 发表于 2017-5-5 20:47
默认DCO时钟时进入LPM3则只有3μA左右,板子上电源芯片耗电约2μA

外部的时钟信号,测量的电流应该是多大?

使用特权

评论回复
xiaoyaozt| | 2017-5-7 15:36 | 显示全部楼层
1988020566 发表于 2017-5-5 20:45
你测量的外围电路电流多大?

只测量MCU,怎么才能知道是否中断呢?

使用特权

评论回复
uptown| | 2017-5-7 15:36 | 显示全部楼层
是不是使用RTC设备了?

使用特权

评论回复
10299823| | 2017-5-7 15:37 | 显示全部楼层
20MA这么大电流不一定是MSP430的。

使用特权

评论回复
jimmhu| | 2017-5-7 15:37 | 显示全部楼层
lzbf 发表于 2017-5-5 20:46
msp430低功耗模式LPM3 电流0.5mA

可能是其他的电子器件消耗的。

使用特权

评论回复
lihuami| | 2017-5-7 15:37 | 显示全部楼层
youtome 发表于 2017-5-5 20:47
默认DCO时钟时进入LPM3则只有3μA左右,板子上电源芯片耗电约2μA

这个应该跟MSP430的时钟频率有关系。

使用特权

评论回复
xiaoyaozt| | 2017-5-7 15:37 | 显示全部楼层
houjiakai 发表于 2017-5-5 20:48
将板子的外围芯片都卸下后,再次测试功耗,在时钟为8M时进入LPM3电流大概130μA左右 ...

这么电流怎么测量差距这么大?

使用特权

评论回复
uptown| | 2017-5-7 15:37 | 显示全部楼层
就是正常工作电流也不到20ma吧。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

183

主题

849

帖子

1

粉丝