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.

CCS/MSP430F6747A: Power consumption after watchdof reset at 32µA and not ~14µA

Part Number: MSP430F6747A

Tool/software: Code Composer Studio

Our device uses the MSP430F6747A. The problem is that we want to get the power consumption down to about 14µA in LPM4

active mode (before the reset):

  • SPI, I2C and 3 UARTs are active (SMCKL)
  • Timer A1,A2 and B0 are active (ACKL)
  • RTC is on (XT1)
  • Interrupts are listening on Port 1
  • PMM_CORE_LEVEL_3, SMCKL=25MHz

 

inactive mode:

  • UARTs are initialised, used and then deactivated (SMCKL)
  • RTC is ON (XT1)
  • Interrupts are listening on Port 1
  • PMM_CORE_LEVEL_3, SMCKL=25MHz
  • Timer B0 is actived when there is an interrupt on Port 1 (ACKL)
  • set LPM4 (__bits_SR_register(LPM4_bits + GIE))

 

current consumption during the changeover from active to inactive:

  • voltage drops, then returns current: 13uA
  • start via the debugger: 13uA (after removing the JTAG-Cable)
  • start via the watdchdog reset (watchdog used for the SW-Reset):32uA

The problem is that the device could sit in this state for quite a while and drain the battery before reaching the actual duty cycle.

  • Hello Alexander,

    there is a little to unpack here, but the first two suggestions are below.

    First, I do not think you are actually going down to LPM4 with how your current clock system and peripheral usage is. In LPM4 all clock systems are disabled and cannot be used. Due to the clock request feature, these clocks will stay on when trying to go into a LPM that doesn't allow them on. This means effectively, you are not going into the LPM you set, but the lowest LPM that allows the clocks you request to stay active. Typical LPM4 current with VCORE Level 3 is 1.3 uA not 14uA.

    Second, a reset from the WDT generates a PUC. Some module registers do not get reset during a PUC. This means that some module registers are net setup like the very first time you turn on the device (BOR/POR bring up). I would double check your initialization of peripherals to make sure you set them absolutely when first initializing. This way you know exactly how they are set after a reset -> re-initialize state. (Setting a Register absolutely: TACTL = 0xABAB, versus relatively TACTL |= 0xABAB;)
  • The current that we measured was based on measurements that our entire solution was drawing, including the MSP.

    The culprit was the internal ADC Voltage reference, the WD does not reset this / does not switch it off...