TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430功耗升高问题

芯片: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
}

JIUGEN LI:

回复 灰小子:

你好,我刚才补充了一下,你有空帮我看看吧!

Susan Yang:

建议您将问题分离开分析。

1 先测试一下TI的LPM3例程(禁止射频功能),来排除您硬件本身的问题,链接如下:

dev.ti.com/…/

2 排除硬件本身问题后,来测试您自己的程序(禁止射频功能)

3 添加射频功能后,再次测试

灰小子:

回复 Susan Yang:

同一楼上的思路。楼主可以分别测试一下。

另外,一般的无线模块都带有唤醒引脚,可以通过这个引脚产生的上升或下降沿唤醒配置了io中断的mcu,楼主也可以考虑一下。

JIUGEN LI:

回复 Susan Yang:

你好,我关掉射频测试,功耗最低到达5uA,然后过会他又自己升高了(18uA)。不知道什么原因。

JIUGEN LI:

回复 灰小子:

嗯,知道了。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430功耗升高问题
分享到: 更多 (0)