MSP430团队、
客户正在使用自己的硬件和 MSP430FR2111。 他们在代码中将 MSP430设置为 LPM3、测量值约为16uA、但他们希望得到2uA、正如数据表中所说的那样。 它们还使用 LMP3_02进行了测试、结果相同。
您能否确认 LPM3_02等软件示例应该能够降至2uA?
谢谢、
Darren
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.
MSP430团队、
客户正在使用自己的硬件和 MSP430FR2111。 他们在代码中将 MSP430设置为 LPM3、测量值约为16uA、但他们希望得到2uA、正如数据表中所说的那样。 它们还使用 LMP3_02进行了测试、结果相同。
您能否确认 LPM3_02等软件示例应该能够降至2uA?
谢谢、
Darren
您好 Darren、
请使用外部 LFXT 尝试此 LPM3代码:
#include <msp430.h>
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
SFRIE1 |= WDTIE; // Enable WDT interrupt
P2SEL1 |= BIT6 + BIT7; // P2.0: XOUT; P2.1: XI1
CSCTL4 = SELMS__DCOCLKDIV | SELA__XT1CLK; // MCLK=SMCLK=DCO; ACLK=XT1
// Port Configuration all un-used pins to output low
P1OUT = 0x00;
P2OUT = 0x00;
P1DIR = 0xff;
P2DIR = 0xff;
// Disable the GPIO power-on default high-impedance mode
// to activate previously configured port settings
PM5CTL0 &= ~LOCKLPM5;
do
{
CSCTL7 &= ~(XT1OFFG | DCOFFG); // Clear XT1 and DCO fault flag
SFRIFG1 &= ~OFIFG;
}while (SFRIFG1 & OFIFG); // Test oscillator fault flag
// Configure RTC
// Interrupt and reset happen every 1024/32768 * 32 = 1 sec.
RTCMOD = 32-1;
RTCCTL = RTCSS__XT1CLK | RTCSR |RTCPS__1024;
// RTCCTL |= RTCIE;
__bis_SR_register(LPM3_bits | GIE); // Enter LPM3
__no_operation(); // For debug
}
//#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
//#pragma vector = RTC_VECTOR
//__interrupt void RTC_ISR(void)
//#elif defined(__GNUC__)
//void __attribute__ ((interrupt(RTC_VECTOR))) RTC_ISR (void)
//#else
//#error Compiler not supported!
//#endif
//{
// switch(__even_in_range(RTCIV, RTCIV_RTCIF))
// {
// case RTCIV_NONE : break; // No interrupt pending
// case RTCIV_RTCIF: // RTC Overflow
// // Toggle LED on P1.0
// P1OUT ^= BIT0;
// break;
// default: break;
// }
//}
并将测试结果附在我的一侧:

谢谢!
此致
Johnson