Hi All,
On my MSP430F5528 I need to run now a real time clock from a small coin battery. I tried several thing but could not lower drain below 30uA. Even entering LPM4 does not help.
Intended operation is to sleep till USB is connected. Here my code:
//Only wake up when power is present
USBKEYPID = 0x9628;
USBPWRCTL |= VBONIE; // enable interrupt VBUSon
USBKEYPID = 0x9600;
while(!(USBPWRCTL & USBBGVBV))
{
REFCTL0 = 0x0080; // Power off external reference
RTCPS1CTL &= ~(RT1PSIE); // disable timer interrupt
P5SEL |= BIT4+BIT5; // Port select XT1
UCSCTL6 &= ~XT1OFF; // XT1 On
UCSCTL6 |= XCAP_3; // Internal and external load cap 5.5 ~ 7.5 pF
UCSCTL4 = 0; // set to clocks to XT1
P1OUT = 0;
P1DIR = 0xFF;
P2OUT = 0;
P2DIR = 0xff;
P3OUT = 0;
P3DIR = 0xff;
P4OUT = 0;
P4DIR = 0xFF;
P5OUT = 0;
P5DIR = 0xCF; // Don't touch XT1
P6OUT = 0;
P6DIR = 0xFF;
P6OUT = 0;
P6DIR = 0xFF;
PJOUT = 0;
PJDIR = 0xFF;
while (SFRIFG1 & OFIFG) { // check OFIFG fault flag
UCSCTL7 &= ~(DCOFFG+XT1LFOFFG+XT2OFFG); // Clear OSC fault flags
SFRIFG1 &= ~OFIFG; // Clear OFIFG fault flag
}
UCSCTL6 &= ~(XT1DRIVE_3); // XT1 is now stable, reduce drive strength
_bis_SR_register(LPM4_bits + GIE);
_nop();
}
Any sugestions are appeciated.
Regards
Guenther