Witam
Od jakiegoś czasu "trenuję" nowego MSP430F5438, generalnie jest to mój pierwszy kontakt z MSP. Procesor mam w płytce prototypowej texasa, nic do niej niejest połaczone poza zasilaniem, programator odłączam po wprowadzeniu programu.
Mam problem z uzyskaniem niskiego poboru prądu o którym mowa w nocie katalogowej. Procesor taktuje zegarem X1 z kwarcem 32,6kHz, zegary MCLK i SMCLK to DCO 1MHz. Uzyskane przezemnie wyniki poboru prądu przy napieciu 3V to : tryb aktywny 350uA , LPM0 - 170uA , LPM3-100uA ,LPM4-99-100uA. Nijak sie to ma do tego co pisze w nocie, zastanawiam sie w czym tkwi problem.
Generalnie pobór pradu jest mało stabilny i dość długo sie ustala, mierzyłem szeregowo wpietym mikroamperomierzem lub spadkiem napiecia na rezystorze, obie metody dawały podobne rezultaty.
Wszelkie sugestie mile widziane
Od jakiegoś czasu "trenuję" nowego MSP430F5438, generalnie jest to mój pierwszy kontakt z MSP. Procesor mam w płytce prototypowej texasa, nic do niej niejest połaczone poza zasilaniem, programator odłączam po wprowadzeniu programu.
Mam problem z uzyskaniem niskiego poboru prądu o którym mowa w nocie katalogowej. Procesor taktuje zegarem X1 z kwarcem 32,6kHz, zegary MCLK i SMCLK to DCO 1MHz. Uzyskane przezemnie wyniki poboru prądu przy napieciu 3V to : tryb aktywny 350uA , LPM0 - 170uA , LPM3-100uA ,LPM4-99-100uA. Nijak sie to ma do tego co pisze w nocie, zastanawiam sie w czym tkwi problem.
Generalnie pobór pradu jest mało stabilny i dość długo sie ustala, mierzyłem szeregowo wpietym mikroamperomierzem lub spadkiem napiecia na rezystorze, obie metody dawały podobne rezultaty.
#include "msp430x54x.h"
int main( void )
{
P1DIR = 0xFF;P2DIR = 0xFF;P3DIR = 0xFF;P4DIR = 0xFF;P5DIR = 0xFF;P6DIR = 0xFF;
P7DIR = 0xFF;P8DIR = 0xFF;P9DIR = 0xFF;P10DIR = 0xFF;P11DIR = 0xFF;
P1OUT = 0x00;P2OUT = 0x00;P3OUT = 0x00;P4OUT = 0x00;P5OUT = 0x00;P6OUT = 0x00;
P7OUT = 0x00;P8OUT = 0x00;P9OUT = 0x00;P10OUT = 0x00;P11OUT = 0x00;
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P7SEL |= 0x03; // Select XT1
UCSCTL6 &= ~(XT1OFF); // XT1 On
UCSCTL6 |= XCAP_3; // Internal load cap
UCSCTL3 = 0; // FLL Reference Clock = XT1
UCSCTL4 |= SELA_0 + SELS_4 + SELM_4; // ACLK = LFTX1
// SMCLK = default DCO
// MCLK = default DCO
// Loop until XT1 & DCO stabilizes
while ( (SFRIFG1 &OFIFG))
{
UCSCTL7 &= ~(XT1LFOFFG + DCOFFG); // Clear XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}
UCSCTL6 &= ~(XT1DRIVE_3); // Xtal is now stable, reduce drive strength
UCSCTL6_H|=XT2OFF;
__bis_SR_register(SCG1+SCG0+CPUOFF+OSCOFF+GIE); //LPM4
return 0;
}
Wszelkie sugestie mile widziane