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.

MSP432E401Y: Current Consumption I_HIB_RTC much higher than in data sheet?

Part Number: MSP432E401Y

Hi,

the figures in the MSP432E401Y datasheet (pg 40 bottom) 'tell' that in the hibernate RTC mode a few uA are required to run the RTC from the 32,768KHz oscillator. We are using an external crystal and not the internal LFOSC. However when our system is powered down, except for the super cap capacitor supplying Vbat we have a supply current that is far more higher. It is not even close, but ~40..50 times higher. At the moment we can not use this, since the backup time for the clock is far too short.

br

Markus

  • Hi Markus,

    What exactly is the measured current consumption? How are you measuring the current consumption? What else do you have in your system that could be consuming current? Have you confirmed the following for it to go into Hibernate: 

    "If a wake-up condition has not been configured using the PINWEN or RTCWEN bits in the HIBCTL register, the hibernation request is ignored. In addition, if the battery voltage is below the threshold voltage defined by the VBATSEL field in the HIBCTL register, the hibernation request is ignored." from section 6.3.10 of the TRM (https://www.ti.com/lit/ug/slau723a/slau723a.pdf)

    ngrkus said:
    At the moment we can not use this, since the backup time for the clock is far too short.

    Can you please elaborate? Are you saying it is too short for you right now because it is consuming 40-50x the expected current consumption in hibernate mode?

    Srinivas

  • In addition to what Srinivas said, you might want to look over:

    https://e2e.ti.com/support/microcontrollers/msp430/f/166/p/768038/2840858

    in which (whole-board) power draw was reduced to approximate the book, but it required major surgery to a Launchpad.

  • Hi Srinivas,

    thank you for your reply. Please find the answers below:

    Q: Current and How do I measure.

    A: I use an indirect method to calculate the supply current for the hibernation mode when the main supply is off.

    We use a 0.5F GoldCap. I did test the charge capacity outside of the circuitry of the capacitor itself. In the assembled

    circuitry I measure the voltage accross this gold cap. Every 10 minute using a high impedance volt meter. From the

    measurements taken I do calculate the supply current assuming the current draw is ~constant accross the derating

    voltage on the backup capacitor.

    The goldcap is being charged through a low leakage diode from the 3.3V supply and a serie resistor to limit the charging current.

    The voltage after the diode is being connected to the Vbatt supply pin directly. That's it.

    Q: Have you confirmed going into the hibernation mode?

    A: Good question! Looking at the code and the contents of the register I woud say yes. However I am not sure if I did everything that is required. Probably not.

    void RTC_init (void) {

        uint32_t bootCnt;

        // Enable Hibernation module
        SysCtlPeripheralEnable(SYSCTL_PERIPH_HIBERNATE);

        if ( HibernateIsActive() )  {

            bootCnt = HibernateIntStatus(0);

            HibernateIntClear(bootCnt);

            // Retrieve boot counter
            HibernateDataGet(&bootCnt, 1);

        } else {
            bootCnt = 0;
        }

        DBGI("Enabling RTC");

        HibernateEnableExpClk(120000000);

        /* We assume that an external 32.768 KHz Crystal is being mounted */
        HibernateClockConfig(HIBERNATE_OSC_HIGHDRIVE);
        HibernateRTCEnable();

        struct timespec ts;
        ts.tv_sec = HibernateRTCGet();
        ts.tv_nsec = 0;

        clock_settime(CLOCK_REALTIME, &ts);

        DBGI("Boot counter: %d", bootCnt);
        bootCnt++;
        HibernateDataSet(&bootCnt, 1);

    } // RTC_init

    The contents of the register reads the following value:

    Q: Elaborate on the backup time

    A: We assume the RTC in the hibernation module shall run downto 2.1V or so (default settings). I apply the following assumptions and simplified formulas:

    Q_start = VBatt*Cgoldcap ~ 3 * 0.5F;

    Q_stop = Vstop*Cgoldcap ~ 2.1*0.5F

    Q_bckup = Q_start - Q_stop ~ 0.9 * 0.5F ~ 0.45C = I_bckSupply * dT -> IbckSupply ~ 2uA --> We get about 3 days of backup time

    before the RTC stops working. This was our calculation. We want to have ~1.5 day or ~ 36hours of backup time.

    With the current setup I do have on my lab. I do get about ~1..2 hour of backup time before the RTC stops working. It is a little

    bit better if I use the internal LFOSC. However the frequency of this internal oscillator is not accurate enough.

    Any idea of what I am doing wrong here?

    br

    Markus

**Attention** This is a public forum