Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

MSP430功耗升高问题

$
0
0

芯片:MSP430FR6972

问题:

1.手动焊接了三块板子,烧写同一个程序,三块板子的功耗都不一样(25,35,45),一致性太差了,想知道这个能确定是PCB设计或者焊接问题吗?

2.两块板子都存在这样一个问题:刚开始功耗能降到8uA以下,但是过个1分钟的样子功耗上升到18uA之后就一直是这么多,这情况可能是什么原因导致的呢?

这情况是在没开射频模块功能的情况下产生的,开了射频模块程序也存在则个问题,刚复位时功耗能到25ua,但是过会也会上升上升到40ua左右。

 射频模块接收过程:

正常情况处在低功耗模式(睡眠时间:700ms,T1=1ms,T2=200ms),即睡眠700ms后,唤醒进入RX模式,T1时间内检测前导码,满足后进入T2检测同步码,都成功后停留在RX。

程序:

int main(void)
{
 WDTCTL = WDTPW + WDTHOLD;   //关闭看门狗
 Indicator_FRAM_Init();  //初始化存储在FRAM的结构体
 Unused_GPIO_Init();   //全部GPIO初始化
 Power_Pin_Init();   //电源开关控制脚初始化
 Led_Init();     //LED GPIO初始化
 ADC_GPIO_Init();   //ADC GPIO初始化
 Turn_Bowl_Init();   //功能模块GPIO初始化
 CT_DET_Up();    //P4.6外部中断初始化
 BAT_DET_Down();    //P4.5外部中断初始化
 PJSEL0 |= BIT4 | BIT5;  //LFXTCLK
 PM5CTL0 &= ~LOCKLPM5;
 Clock_Init();    //ACLK=32.768KHz   MCLK=DCO=16MHz  SMCLK=1MHz
// RF_Init();     //射频模块初始化
 TimerA0_Init();    //定时器初始化
 Reset_Status_Detect();  //逻辑判断
 _EINT();     //使能中断开关
 Led_ON();
 DelayMs(20);
 Led_OFF();
 while(1)
 {
  {
   状态机;
  }
  LPM3;
 }
}
 射频模块接收过程:
正常情况处在低功耗模式(睡眠时间:700ms,T1=1ms,T2=200ms),即睡眠700ms后,唤醒进入RX模式,T1时间内检测前导码,满足后进入T2检测同步码,都成功后停留在RX。
#pragma vector=PORT3_VECTOR
__interrupt void Port_3(void)
{
 //射频接收中断
}
#pragma vector=PORT4_VECTOR
__interrupt void Port_4(void)
{
 //电压监控器触发中断
 //功能:满足条件后使能ADC模块工作

 
#pragma vector = TIMER0_A0_VECTOR
__interrupt void Timer0_A0_ISR(void)
{
 //定时器,ACLK,秒计时
}
#pragma vector=ADC12_VECTOR
__interrupt void ADC12_ISR(void)
{
 //ADC采样中断,由定时器B0触发(1ms)。
 //CH0
}


Viewing all articles
Browse latest Browse all 3634

Trending Articles