This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430F5438A:MSP430低功耗

Guru**** 2587365 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/955944/msp430f5438a-msp430-low-power-consumption

器件型号:MSP430F5438A
大家好 、
客户对 MSP430低功耗有疑问。
客户使用的电路是最小5438A 的直接系统。
XT1连接32768个晶体振荡器、XT2连接16M 晶体振荡器。

在 IPM3模式下、功耗仍然超过400uA

16M 晶体振荡器没有停止振荡、

请在下面找到我的计划。
可以帮助我解决问题吗?
原因是什么?
------------------------
void main( void )
  
 WDTCTL = WDTPW+WDTHOLD;           //停止 WDT
 P5SEL |= BIT2 + BIT3;           为晶体振荡器 XT2输入选择//P5.2和 P5.3
 P7SEL |= 0x03;  
 UCSCTL6 &=~(XT1OFF + XT2OFF);     
 UCSCTL6 |= XCAP_3;  
 UCSCTL6 &=~(XT1DRIVE_3);  
 UCSCTL6 &=~(XT2DRIVE_2);
   
   
 操作                    //循环直到 XT1、XT2和 DCO 稳定
 {
  UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
  SFRIFG1 &=~OFIFG;           // 清除振荡器故障标志
                     // 延迟,等待 XT2开始 振荡
 } while (SFRIFG1和 OFIFG);        // 判断 XT2是否开始 振荡,
  
  
  UCSCTL4 |= SELA_XT1CLK + SELESS_XT2CLK + SELM_XT2CLK;  
  P1OUT = 0x00;
   P2OUT = 0x00;
   P3OUT = 0x00;
    P4OUT = 0x00;
    P5OUT = 0x00;
     P6OUT = 0x00;
     P7OUT = 0x00;
      P8OUT = 0x00;
      P9OUT = 0x00;
       P10OUT = 0x00;
       P11OUT = 0x00;
       PJOUT = 0x00;
       P1DIR = 0xFF;
       P2DIR = 0xFF;
       P3DIR = 0xFF;
       P4DIR = 0xFF;
       P5DIR = 0xFF;
       P6DIR = 0xFF;
       P7DIR = 0xFF;
       P8DIR = 0xFF;
       P9DIR = 0xFF;
       P10DIR = 0xFF;
       P11DIR = 0xFF;
        PJDIR = 0xFF;
        _bis_SR_register (LPM3_bits);   
        __no_operation();   
----------------------------------------------------
谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Frank、我想高电流来自 XT2 16M 晶体振荡器、请使用 UCSCTL6.XT2OFF 停止16M 晶体振荡器、并再次测试电流消耗。 谢谢!