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

MSP430F5529的低功耗处理

应用中用到了5529的usb模块,但又要求低功耗,在进入LPM3后不关断晶振XT2的话,低功耗的效果就不好,现在困惑的是,如何在低功耗的同时,又能迅速检测usb的接入。

时钟初始化:

void Init_Clock (void){

   P5SEL |=0x3c;

   Init_FLL_Settle(USB_MCLK_FREQ / 1000, USB_MCLK_FREQ / 32768);   //Start the FLL, at the freq indicated by the config constant USB_MCLK_FREQ

   XT2_Start(XT2DRIVE_0);      //Start the "USB crystal"

UCSCTL3   |= SELREF_2;                  // FLLref = REFO

  UCSCTL4   |= SELA_0+SELS_0 + SELM_0;; //SELA_2;       SMCLK = MCLK = XT2             // ACLK=REFO,SMCLK=DCO,MCLK=DCO

UCSCTL6   &= ~XT2OFF; // 振荡器使能

  do {

    UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); // 清除 XT2,XT1,DCO 错误标志                                                          

    SFRIFG1 &= ~OFIFG                                     ;

  }while(SFRIFG1&OFIFG);                  // 检测振荡器错误标志

  UCSCTL6   |= XT2DRIVE0; //+ XT2DRIVE1;     // XT2 驱动模式 24~32MHz  

  SetVCore(3);

}

此为进入低功耗处理

void MCU_GoToSleep(){

UCSCTL6 |=XT2OFF;

LPM3;

}

在终端函数中,先EXIT_LPM3,然后用以下函数退出低功耗模式

void MCU_ExitSleep(){

UCSCTL6 &=~XTS;

UCSCTL6   &= ~XT2OFF; // 振荡器使能

}

不知这样是否正确,测出的电流有77mA

Young Hu:

wang chun,

您好!

在正常情况下,XT2的功耗只有几百个微安。所以不会出现这种情况。

查一下外围电路以及确认测量方式是否准确。

Young Hu:

另外,能不能描述一下您的系统是实现什么功能的?

Peter_Zheng:

回复 Young Hu:

在5529的user guider 里写的很清楚啊:

NOTE: The USB module only supports active operation during power modes AM through LPM1.

Triton Zhang:

回复 Peter_Zheng:

1. MSP430的USB模块只能在LPM1的时候使用,所以如果楼主既想实现USB又想进入低功耗,就只能通过时分复用的办法.

2. 具体的方法如下:

   1) 进入低功耗之前关闭USB接口,设置USB的DP,DM端口为U.1和U.0的输入功能,并且把该端口上的上拉电阻打开。

 2) 根据USB 的主机的检测机制,DM或者DP的管脚上一般都有一个15K的下拉电阻,而MSP430的上拉电阻都是弱上拉,所以在未插入USB的主机时,MSP430的U.1和U.0的管脚会被内部上拉拉成高电平,如果插入USB的主机,这两个管脚会被15K和内部的上拉电阻拉成低电平.

  3) 楼主通过检测PU.0/PU.1的低电平中断来判断是否有插入USB的终端,然后打开USB的外设.

  4) 一旦USB的功能使用结束,就切换管脚到GPIO的模式,进入低功耗的工作状态。这样可以大大的降低整机设备的功耗

Jason Guo:

回复 Triton Zhang:

USBPWRCTL中的USBBGVBV位可以指示当前是否连接到USB上

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F5529的低功耗处理
分享到: 更多 (0)