各位专家、您好!
在工作模式下、是否有比以下更低的功耗的方法?
[条件]
- 使用 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 时是否可以降低功耗。
此致、
还不错