各位专家、您好!
在工作模式下、是否有比以下更低的功耗的方法?
[条件]
- 使用 MSP-EXPFR2355 (自由运行模式)通过 Energytrace 进行测量。
- 工作模式、MCLK 中外部晶振的32.768kHz 输入。
- 所有其他外设未使用、所有 GPIO 引脚均处于输出方向且输出为低电平。
- 执行 main 函数中的 while 循环
- VCC = 3.3V
- 使用 VLO 或 REFO 时结果没有显著差异
- 即使 SMCLKOFF = 1、SMCLKREQEN = 0、也无差异
#include <msp430.h>
/**
* main.c
*/
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
P2SEL1 |= BIT6 + BIT7; // P2.0: XOUT; P2.1: XI1
CSCTL4 = SELMS__XT1CLK;
CSCTL5 = SMCLKOFF_1;
CSCTL8 &= ~(SMCLKREQEN_1);
// CSCTL4 = SELMS__REFOCLK;
// CSCTL5 = DIVM__128;
P1OUT = 0x00; P1DIR = 0xff;
P2OUT = 0x00; P2DIR = 0xff;
P3OUT = 0x00; P3DIR = 0xff;
P4OUT = 0x00; P4DIR = 0xff;
P5OUT = 0x00; P5DIR = 0xff;
P6OUT = 0x00; P6DIR = 0xff;
PM5CTL0 &= ~LOCKLPM5;
do
{
CSCTL7 &= ~(XT1OFFG | DCOFFG); // Clear XT1 and DCO fault flag
SFRIFG1 &= ~OFIFG;
}while (SFRIFG1 & OFIFG); // Test oscillator fault flag
while(1){}
return 0;
}
我了解在低频下运行 MCLK 不合适、因为 MSP430具有多个 LPM。 我想检查在工作模式下以低频(低于32.678kHz)驱动 MCLK 时是否可以降低功耗。
此致、
还不错