Quantcast
Channel: MSP low-power microcontroller forum - Recent Threads
Viewing all 22176 articles
Browse latest View live

CCS/MSP430F5659: .map file shows flash section isn't populated with data set by SET_DATA_SECTION()

$
0
0

Part Number:MSP430F5659

Tool/software: Code Composer Studio

I'm using compiler TI v17.3.0 with CCS Version: 6.1.0.00104. Optimization Disabled

I'm using #pragma SET_DATA_SECTION to store arrays of data in sections I define in my cmd file. On inspection of the .map file, the sections exist, but no data is being stored in them. I am updating a project where this piece of code worked for a long time, below are the things that I have changed:

  1. I just recently updated my compiler from TI v4.4.5 to gain additional support for time.h. 
  2. I relocated the header file that sets the data sections

Here are snippets from my .cmd, .map, and .h file:

CMD 

SECTIONS
{
    .bss        : {} > RAM | RAM2           /* Global & static vars              */
    .data       : {} > RAM | RAM2           /* Global & static vars              */
    .TI.noinit  : {} > RAM | RAM2           /* For #pragma noinit                */
    .sysmem     : {} > RAM                  /* Dynamic memory allocation area    */
    .stack      : {} > RAM (HIGH)           /* Software system stack             */
    .fl_start	: {} > FL_JMP
    .fl_main	: {} > FL_MAIN
    .fl_version	: {} > FL_VER

....

MAP

******************************************************************************
                  MSP430 Linker PC v17.3.0                     
******************************************************************************
>> Linked Wed Jun 14 10:38:15 2017

OUTPUT FILE NAME:   <Evolution.out>
ENTRY POINT SYMBOL: "_c_int00_noargs_noexit"  address: 0000c8d4


MEMORY CONFIGURATION

         name            origin    length      used     unused   attr    fill
----------------------  --------  ---------  --------  --------  ----  --------
  SFR                   00000000   00000010  00000000  00000010  RWIX
  PERIPHERALS_8BIT      00000010   000000f0  00000000  000000f0  RWIX
  PERIPHERALS_16BIT     00000100   00000100  00000000  00000100  RWIX
  INFOD                 00001800   00000080  00000000  00000080  RWIX
  INFOC                 00001880   00000080  00000000  00000080  RWIX
  INFOB                 00001900   00000080  00000000  00000080  RWIX
  INFOA                 00001980   00000080  00000000  00000080  RWIX
  USBRAM                00001c00   00000800  00000000  00000800  RWIX
  RAM                   00002400   00004000  00000da0  00003260  RWIX
  FL_JMP                00008000   00000200  00000000  00000200  RWIX
  FL_VER                00008200   00000200  00000000  00000200  RWIX
  FL_MAIN               00008400   00004000  00000000  00004000  RWIX

......

Header File

#pragma SET_DATA_SECTION(".fl_start")
const char fl1[] = {0x32,0xC2, ...};
#pragma SET_DATA_SECTION()

#pragma SET_DATA_SECTION(".fl_version")
const char fl_ver[] = { 0x01,0x00,0x06,0x00};
#pragma SET_DATA_SECTION()

#pragma SET_DATA_SECTION(".fl_main")
const char fl2[] = {0xB1,0x00, ...}
#pragma SET_DATA_SECTION()

If you could point me in the right direction I would appreciate it.

Thanks,


MSP430F149: Timer A interrupt service program and ADC interrupt service program

$
0
0

Part Number:MSP430F149

I have 2 questions on IS for Timer A and ADC

1, I am using ADC and TimerA  at the same time.But the program stay in the void main(void) and timer A0 interrupt, and I can't  get values from ADC.

2, Follow is the definition of timerA0 interrupt service program I am using, which is working.

     

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(TIMERA0_VECTOR))) Timer_A (void)
#else
#error Compiler not supported!
#endif

Follow is the definition of timerA0 interrupt service program I used before, but it is not working now.

#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)

What is the difference?

Thanks for any help reply to me.

MSP432P401R: Could lines of code not work the same when Debugger is removed and during sleep?

$
0
0

Part Number:MSP432P401R

I have a project that has worked fine up until now, going to LPM3 and waking up when it receives characters on the UART Rx port. When I take the debugger off, cycle power and run it again to test it off the debugger, it does not respond to commands.

When I direct it to a case where it doesn't go to sleep, it can communicate just fine, as expected. Other than I/O changing code to get setup for the lowest power, I have these lines of code to go to sleep that halt the processor and enter LPM3:

    // Wake up on exit from ISR
    SCB->SCR |= SCB_SCR_SLEEPONEXIT_Msk;         

    // Turn off PSS high-side & low-side supervisors
    PSS->KEY = PSS_KEY_KEY_VAL;
    PSS->CTL0 |= PSS_CTL0_SVSMHOFF;
    PSS->KEY = 0;

    // Enter Low Power Mode 3
    PCM_enableRudeMode();
    PCM_setPowerState(PCM_LPM3);                                                // this statement enters LPM3

Is there any lines in here that may not work when the debugger is taken off? Are there also any Project Properties/Debugger settings that stand out to someone that may change how the system works when the code is run without the debugger, like with just VCC/GND?

Thanks,

Compiler/MSP430F5659: Port pins are turning ON in both debug and Release mode

$
0
0

Part Number:MSP430F5659

Tool/software: TI C/C++ Compiler

Hello

i am facing some strange issue after compilation. Port pins are not turning on even code executes and Register view also shows high.

What could be the issue. I am using CCS 6.0.1.

Happens only with particular Port i.e. Port4.5 and Port4.6 Which are used to turn on the 24V switch (maxim )

Code was working previously , recently seen this issue.

Please someone suggest any solution?

Thanks in advance

Nitesh

CCS/MSP432P401R: How is MAP function different from non-MAP function. i.e. MAP_CS_initClockSignal v.s. CS_initClockSignal

$
0
0

Part Number:MSP432P401R

Tool/software: Code Composer Studio

I was digging into the example codes and I found lots of functions involved MAP_xxxxxxx, i.e. MAP_CS_initClockSignal, MAP_PCM_setPowerState, etc.

I tried to open up the declaration of the function, I can only see the header file, but I can't find the function declaration. 

I wonder how is MAP function different from non-MAP. 

Also, where can I find the function declaration for MAP functions?

Regards,

Tom

MSP430F5529: Sample codes for data transmission and reception via UART

$
0
0

Part Number:MSP430F5529

Hello can anybody provide me with the few basic examples of receiving and transmitting the data from UART for the MSP430F5529?
Thanks in advance

MSP430F5529: CC1310

$
0
0

Part Number:MSP430F5529

Support Path: /Product/Help with Device Selection/

i have GPS working with MSP430F5529 ( first device). also, i have another device with two CC1310 working with grove LCD to show to me the coordinate. i sat up one of the CC1310 as TX to send data to the other CC1310 Rx with LCD. what i want is the TX i need it to be work with the MSP430F5529 to send the GPS coordinate to the RX then will show it to me on the LCD. the range i am getting now is 300 meters. the major thing is how can i let launchPad with MSP430F5529 communicate with CC1310 launchPad because both of them will send the coordinates to the CC1310 RX. 

MSP430FR5994: Launch Pad Uart does not work correctly

$
0
0

Part Number:MSP430FR5994

Dear Sirs:

     Have not been able to make the uart operate using this launch pad.  I've tried two simple programs from the post.

 

 

    The following is the code for a uart echo program for the MSP430FR5994 launch pad:

This Version, Version A, uses P2 and UCA0 uart.  It will receive a character correctly and a receive interrupt is generated.  But it will not transmit anything  (a scoped):  Testing with the launch pad uart.

#include <msp430.h>

 

/*

 * main.c

 */

int main(void) {

    WDTCTL = WDTPW | WDTHOLD;       // Stop watchdog timer

      

    // Configure GPIO

    P2SEL0 |= BIT0 | BIT1;                    // USCI_A0 UART operation

    P2SEL1 &= ~(BIT0 | BIT1);

 

    // Disable the GPIO power-on default high-impedance mode to activate

    // previously configured port settings

    PM5CTL0 &= ~LOCKLPM5;

 

    // Startup clock system with max DCO setting ~8MHz

    CSCTL0_H = CSKEY >> 8;                    // Unlock clock registers

    CSCTL1 = DCOFSEL_3 | DCORSEL;             // Set DCO to 8MHz

    CSCTL2 = SELA__VLOCLK | SELS__DCOCLK | SELM__DCOCLK;

    CSCTL3 = DIVA__1 | DIVS__1 | DIVM__1;     // Set all dividers

    CSCTL0_H = 0;                             // Lock CS registers

 

    // Configure USCI_A0 for UART mode

    UCA0CTLW0 = UCSWRST;

    UCA0CTLW0 |= UCSSEL__SMCLK;               // CLK = SMCLK

    // Baud Rate calculation

    // 8000000/(16*9600) = 52.083

    // Fractional portion = 0.083

      // UCBRFx = int ( (52.083-52)*16) = 1

    UCA0BR0 = 52;                             // 8000000/16/9600

    UCA0BR1 = 0x00;

    UCA0MCTLW |= UCOS16 | UCBRF_1 | 0x4900;

    UCA0CTLW0 &= ~UCSWRST;                    // Initialize eUSCI

    UCA0IE |= UCRXIE;                         // Enable USCI_A0 RX interrupt

    UCA3TXBUF =0x41;                        //test send 'a'                               this does nothing!

    __bis_SR_register(LPM3_bits | GIE);       // Enter LPM3, interrupts enabled

    __no_operation();                         // For debugger

  }

 

  #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)

  #pragma vector=USCI_A0_VECTOR

  __interrupt void USCI_A0_ISR(void)

  #elif defined(__GNUC__)

  void __attribute__ ((interrupt(USCI_A0_VECTOR))) USCI_A0_ISR (void)

  #else

  #error Compiler not supported!

  #endif

  {

    switch(__even_in_range(UCA0IV, USCI_UART_UCTXCPTIFG))

    {

      case USCI_NONE: break;

      case USCI_UART_UCRXIFG:

        while(!(UCA0IFG&UCTXIFG));

        UCA0TXBUF = UCA0RXBUF;            //program gets here on received char but nothing comes out the tx pin

        __no_operation();

        break;

      case USCI_UART_UCTXIFG: break;

      case USCI_UART_UCSTTIFG: break;

      case USCI_UART_UCTXCPTIFG: break;

    }

 

}

 

---------------------------------------------------------------------------------------------------------------------------------------

 

 

This version, version B,  uses P6 and UCA3.  It can transmit out P6.0 but does not receive on P6.1.  Also no interrupts are generated:

 

#include<msp430.h>

 

 

int TempStat;

 

/*****************************************************************************************************************************

 * main.c

 *

 *****************************************************************************************************************************/

intmain(void) {

    WDTCTL = WDTPW | WDTHOLD;       // Stop watchdog timer

      

    // Configure GPIO

    P6SEL0 |= BIT0 | BIT1;                    // USCI_A0 UART operation

    P6SEL1 &= ~(BIT0 | BIT1);

 

    // Disable the GPIO power-on default high-impedance mode to activate

    // previously configured port settings

    PM5CTL0 &= ~LOCKLPM5;

 

    // Startup clock system with max DCO setting ~8MHz

    CSCTL0_H = CSKEY >> 8;                    // Unlock clock registers

    CSCTL1 = DCOFSEL_3 | DCORSEL;             // Set DCO to 8MHz

    CSCTL2 = SELA__VLOCLK | SELS__DCOCLK | SELM__DCOCLK;

    CSCTL3 = DIVA__1 | DIVS__1 | DIVM__1;     // Set all dividers

    CSCTL0_H = 0;                             // Lock CS registers

 

    // Configure USCI_A0 (int flags 30.3.15.4) for UART mode:

    UCA3CTLW0 = UCSWRST;                        //soft rst enable

    UCA3CTLW0 |= UCSSEL__SMCLK;               // CLK = SMCLK

    // Baud Rate calculation

    // 8000000/(16*9600) = 52.083

    // Fractional portion = 0.083

      // UCBRFx = int ( (52.083-52)*16) = 1

    UCA3BR0 = 52;                             // 8000000/16/9600

    UCA3BR1 = 0x00;

    UCA3MCTLW |= UCOS16 | UCBRF_1 | 0x4900;

    UCA3CTLW0 &= ~UCSWRST;                    // Initialize eUSCI

    UCA3IE |= UCRXIE;                         // Enable USCI_A0 RX interrupt (int flag reg 30.4.10)

 

    TempStat=UCA3CTLW0 ;                    //read ctl word 0

 

    TempStat=UCA3IFG ;                          //read int flags

    UCA3TXBUF =0x41;                        //test send 'a'

 

    __bis_SR_register(LPM3_bits | GIE);       // Enter LPM3, interrupts enabled

    __no_operation();                         // For debugger

  }

 

  #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)

  #pragma vector=USCI_A0_VECTOR

  __interruptvoidUSCI_A0_ISR(void)

  #elif defined(__GNUC__)

  void__attribute__ ((interrupt(USCI_A0_VECTOR))) USCI_A0_ISR (void)

  #else

  #error Compiler not supported!

  #endif

  {

    switch(__even_in_range(UCA3IV, USCI_UART_UCTXCPTIFG))

    {

      case USCI_NONE: break;

      case USCI_UART_UCRXIFG:                       //2

        TempStat=UCA3IFG ;                          //read int flags

        while(!(UCA3IFG & ~UCTXIFG));                  //30.4.11

        UCA3TXBUF = UCA3RXBUF;                      //echo

        TempStat= UCA3TXBUF;                        //see what's in there

        __no_operation();

        break;

      case USCI_UART_UCTXIFG:

          TempStat=UCA3IFG ;                          //read int flags

          UCA3TXBUF =0x42;                        //test send 'b'

          break;

 

      case USCI_UART_UCSTTIFG: break;

      case USCI_UART_UCTXCPTIFG: break;

    }

 

}

 


Compiler/MSP432P401R: Cannot set MCLK to 48MHz

$
0
0

Part Number:MSP432P401R

Tool/software: TI C/C++ Compiler

I am trying to set MCLK to 48MHz by using MAP_CS_initClockSignal(CS_MCLK, CS_HFXTCLK_SELECT,CS_CLOCK_DIVIDER_1); 

but MCLk just stays at 32768Hz. Here is my code:

#include "msp.h"
#include <ti/devices/msp432p4xx/driverlib/driverlib.h>
#include <ti/devices/msp432p4xx/driverlib/timer_a.h>
#include <ti/devices/msp432p4xx/driverlib/cs.h>
#include <stdint.h>
#include <stdbool.h>

Timer_A_PWMConfig pwmConfig = {
    TIMER_A_CLOCKSOURCE_SMCLK, //select SMCLK as clock source
    TIMER_A_CLOCKSOURCE_DIVIDER_1, //divider is 1
    10, // period is 32000 ticks, actual period is 32000/CLK freq
    TIMER_A_CAPTURECOMPARE_REGISTER_1,
    TIMER_A_OUTPUTMODE_RESET_SET,
    5 // duty cycle
};

uint32_t freqMCLK, freqSMCLK;


void main(void)
{
    /* Halting the watchdog */
    MAP_WDT_A_holdTimer();


    //MAP_PCM_setPowerState(PCM_AM_LDO_VCORE1);

    CS_setExternalClockSourceFrequency(32000, 48000000); //set LFXTCLK to 32KHz and set HFXTCLK to 48MHz
    /* we have to change VCORE to 1 to support the 48MHz frequency */
    MAP_PCM_setPowerState(PCM_AM_LDO_VCORE1); // Active Mode, Low Drop Out, VCORE0; see datasheet pg. 353 Table 7-1
    MAP_CS_initClockSignal(CS_MCLK, CS_HFXTCLK_SELECT,CS_CLOCK_DIVIDER_1); //set MCLK to 48MHz
    freqMCLK = CS_getMCLK();
    MAP_CS_initClockSignal(CS_SMCLK, CS_MODOSC_SELECT, CS_CLOCK_DIVIDER_1); //set SMCLK to 24MHz

    freqSMCLK = CS_getSMCLK();

    /* Configuring GPIO2.4 as peripheral output for PWM and P6.7 for button interrupt */
    MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2, GPIO_PIN4, GPIO_PRIMARY_MODULE_FUNCTION);
    MAP_GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1, GPIO_PIN1);
    MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, GPIO_PIN1); MAP_GPIO_enableInterrupt(GPIO_PORT_P1, GPIO_PIN1);

    /* Configuring Timer_A to have a period of approximately 500ms and
     * an initial duty cycle of 10% of that (3200 ticks) */
    MAP_Timer_A_generatePWM(TIMER_A0_BASE, &pwmConfig);

    while (1) {

    }

}

I also tried to call MAP_PCM_setPowerState(PCM_AM_LDO_VCORE1) before I called CS_setExternalClockSourceFrequency(32000, 48000000), but still failed (still getting 32768).

I verified that MAP_CS_initClockSignal function is working because if I change CS_HFXTCLK_SELECT to sth else, I can get the correct value. 

MSP430F5529: Weird glitch in a PWM waveform. Need a code review

$
0
0

Part Number:MSP430F5529

Team,

I am trying to generate a OWM sine wave via lookup table, but I am seeing a weird artefact in the wave. Here is the code I am using to generate the waveform:

#include <msp430.h>

void setClocks();
void PWMRegsetup ();

unsigned int i=0, j=0; //counters for for loop
const unsigned int sinTable[] = {512,562,611,660,707,753,796,836,873,907,937,963,984,1001,1013,1021,1023,1021,1013,1001,
                                                   984,963,937,907,873,836,796,753,707,660,611,562,512,461,412,363,316,270,227,187,
                                                   150,116,86,60,39,22,10,2,0,2,10,22,39,60,86,116,150,187,227,270,316,363,412,461,512};

void main(void)
{
WDTCTL = WDTPW+WDTHOLD; // Disable WDT
PWMRegsetup();
setClocks();

TBCTL = TBSSEL_2+MC_1;           // SMCLK, upmode
TBCCR0 = 1024-1;                           // PWM Period indicates a 10-bit DAC
TBCCTL0 = CCIE;                            // TRCCR0 interrupt enabled
TBCCTL6 = OUTMOD_7;                // CCR3 reset/set

while(1){
__bis_SR_register(LPM0_bits + GIE);         // CPU off. Used for ISR
__no_operation();                                          // For debugger
}
}

// FUNCTIONS //

// Timer B0 interrupt service routine
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=TIMERB0_VECTOR
__interrupt void TIMERB1_ISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(TIMERB0_VECTOR))) TIMERB1_ISR (void)
#else
#error Compiler not supported!
#endif
{

//Output a Sine Wave PWM on pin P3.6
TBCCR6 = sinTable[j]; // CCR3 PWM duty cycle
j++;
if(j>=64)
j = 0;
}

void setClocks(void)
{
UCSCTL3 = SELREF_2; // Set DCO FLL reference = REFO
UCSCTL4 |= SELA_2; // Set ACLK = REFO
UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx

// Loop until XT1,XT2 & DCO stabilizes - In this case only DCO has to stabilize
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while (SFRIFG1&OFIFG); // Test oscillator fault flag

__bis_SR_register(SCG0); // Disable the FLL control loop
UCSCTL1 = DCORSEL_5; // Select DCO range 16MHz operation
UCSCTL2 |= 762; // Set DCO Multiplier for 8MHz
// (N + 1) * FLLRef = Fdco
// (762 + 1) * 32768 = 25MHz
__bic_SR_register(SCG0); // Enable the FLL control loop

// Worst-case settling time for the DCO when the DCO range bits have been
// changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx
// UG for optimization.
// 32 x 32 x 25 MHz / 32,768 Hz = 781000 = MCLK cycles for DCO to settle
__delay_cycles(781000);
}

void PWMRegsetup (void)
{
P3SEL |= BIT6; // P3.6 option select
P3DIR |= BIT6; // P3.6 output (TB6)
}

I'm wondering if I am calling something in the ISR routine incorrectly? Any advice would be appreciated.

Linux/MSP430FR2433: Running new FW Troubleshoot

$
0
0

Part Number:MSP430FR2433

Tool/software: Linux

Hello,

I've had some time getting a chance to work the EVM and had a question. I have been able to load a new image onto the board via i2c and the msp430-i2cbsl-tool on our linux platform, the only issue is that after a flash it requires me to manually power cycle the board to get it to run the new FW. Is there anyone who can answer my questions about that tool? I have found this guide www.ti.com/.../swra500.pdf but it wasn't much help in troubleshooting.

Thank you in advanced for your help!

RTOS/MSP430F5510: MSP430F5510 (with 32KB flash and 4+2KB RAM) can run TI-RTOS ?

MSP-EXP430F5438

$
0
0

Hi Lukas,

I would like to try your solution which was given to me on Monday(12/06/2017), but I think my query is different . Kindly find the attached document for further understanding

Regards,

Rajashree

(Please visit the site to view this file)

MSP-GANG430: How many programs can be installed in a sd card of MSP-GANG430

$
0
0

Part Number:MSP-GANG430

sir,

I was able to load only one image in sd card of size 4Gb  .

Is there any solution to add more number of programs in that sd card.

CCS/msp430f6435: unable to clear oscillator fault flag

$
0
0

Part Number:msp430f6435

Tool/software: Code Composer Studio

Hi,I used the following way for msp430 clock initialization .

***********************************************************************************

while(BAKCTL & LOCKBAK)                    // Unlock XT1 pins for operation
     BAKCTL &= ~(LOCKBAK);

  UCSCTL6 &= ~(XT1OFF);                     // XT1 On
  UCSCTL6 |= XCAP_3;                        // Internal load cap

  // Loop until XT1,XT2 & DCO stabilizes - In this case loop until XT1 and DCo settle
  do
  {
    UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
                                            // Clear XT2,XT1,DCO fault flags
    SFRIFG1 &= ~OFIFG;                      // Clear fault flags
  }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag

**********************************************************************************

the program execution is not coming out of do_while loop which indicates that oscillator fault flag is not cleared .How to resolve this issue??


MSP430F2132: MSP430 BSL error Password question

$
0
0

Part Number:MSP430F2132

After the BSL entry, I send an error Password to the BSL,  I think that the ACK shoud be 0xA0, but it actually is 0x90, why? And how to judge the Password whether it is correct?

such as, I have downloaded a code to the MSP430F2132, then I download the code the second time,I use the command as follows:

80 10 24 24 E0 FF 20 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 9B 34

the BSL returns 0x90

why not the 0xA0?

MSP432P401R: Run Graphical Library on MSP432 Launchpad

$
0
0

Part Number:MSP432P401R

Hi, 

I want to run the graphical library on MSP432 Launchpad + 320*240 LCD screen from TI.

Go to  MSPware, there's code example of graphical library for MSP432.

Download into Launchpad, the screen could be turn on , but no information showed on the screen.

I check the LCD driver in the code is the same with my LCD screen. Could you help give me some tips on the case? Thanks!

Vivian

Msp-ultrasonic-design-center: TDC1000

$
0
0

Part Number:Msp-ultrasonic-design-center

I need to measure width of the air gap(0 to 10mm) between two metallic (iron) rectangular bars(L=infinite;W=10cm;thickness=20mm)facing each other. Though the surfaces face each other in parallel manner, the angle between the faces varies from 0 to 45 degrees. Can TI sensors provide any means to solve my problem?

Thanks,

Surya

CCS/MSP430FR5969: Backup data in SRAM to FRAM with MSP430 board.

MSP-EXP430FR2311: MSP430FR2311 LPM3 current consumption

$
0
0

Part Number:MSP-EXP430FR2311

Hello.

I'm trying to get the lowest possible current consumption in LPM3.

SLASE58B says, that maximum possible current in this mode could achieve 5.25 uA (the worst case). And a typical value is 1.16 uA.

I've took a LaunchPad and a standart example from MSPWare"MSP430Ware_3_70_00_05\examples\devices\MSP430FR2xx_4xx\MSP430FR231x_Code_Examples\C\msp430fr231x_LPM3_02.C"

After program was compiled and downloaded, I've detached all the pins of MCU from emulator and from external components(LEDs and LightSensor) on LaunchPad by removing jumpers.

By measuring current from external supply to LaunchPad (currentmeter was inserted in high side) I've got 17.3 uA.

What could be a reason of extra 16 uA of consumption? And how to get 1uA in LPM3 on LaunchPad?

Thank you for support.

  

Viewing all 22176 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>