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.

EK-TM4C1294XL hibernation current

Other Parts Discussed in Thread: EK-TM4C1294XL

Hello,

After putting the EK-TM4C1294XL into hibernation mode, the current draw is about 340uA. Is this figure normal? Is there any way to lower the current consumption?

Thanks,

Benson

  • #include <stdint.h>
    #include <stdbool.h>
    #include <string.h>
    #include <time.h>
    #include "inc/hw_gpio.h"
    #include "inc/hw_hibernate.h"
    #include "inc/hw_ints.h"
    #include "inc/hw_memmap.h"
    #include "inc/hw_sysctl.h"
    #include "inc/hw_types.h"
    #include "driverlib/debug.h"
    #include "driverlib/gpio.h"
    #include "driverlib/hibernate.h"
    #include "driverlib/interrupt.h"
    #include "driverlib/pin_map.h"
    #include "driverlib/rom.h"
    #include "driverlib/rom_map.h"
    #include "driverlib/sysctl.h"
    #include "driverlib/systick.h"
    #include "drivers/pinout.h"
    
    
    int
    main(void)
    {
        uint32_t ui32SysClock;
    
        //
        // Run from the PLL at 120 MHz.
        //
        ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
                                               SYSCTL_OSC_MAIN |
                                               SYSCTL_USE_PLL |
                                               SYSCTL_CFG_VCO_480), 120000000);
    
        //
        // Configure the device pins.
        //
        PinoutSet(false, false);
    
        //
        // Enable the hibernate module.
        //
        SysCtlPeripheralEnable(SYSCTL_PERIPH_HIBERNATE);
    
        //
        // Configure Hibernate module clock.
        //
        HibernateEnableExpClk(ui32SysClock);
    
        //
        // Enable RTC mode.
        //
        HibernateRTCEnable();
    
        //
        // Configure the hibernate module counter to 24-hour calendar mode.
        //
        HibernateCounterMode(HIBERNATE_COUNTER_24HR);
    
        //
        // Configure GPIOs used as Hibernate wake source.
        // PK7 is configured as a wake source.
        //
        GPIOPinTypeGPIOInput(GPIO_PORTK_BASE, GPIO_PIN_7);
        GPIOPadConfigSet(GPIO_PORTK_BASE, GPIO_PIN_7, GPIO_STRENGTH_2MA, (GPIO_PIN_TYPE_WAKE_LOW | GPIO_PIN_TYPE_STD_WPU));
    
        while (GPIOPinRead(GPIO_PORTK_BASE, GPIO_PIN_7) == 0)
            ;
    
        //
        // Enable processor interrupts.
        //
        IntMasterEnable();
    
        //
        // Read and clear any status bits that might have been set since
        // last clearing them.
        //
        HibernateIntClear(HibernateIntStatus(0));
    
        //
        // Configure Hibernate wake sources.
        //
        HibernateWakeSet(HIBERNATE_WAKE_GPIO | HIBERNATE_WAKE_RESET);
    
        //
        // Request Hibernation.
        //
        HibernateRequest();
    
        //
        // Wait for a while for hibernate to activate.  It should never get
        // past this point.
        //
        SysCtlDelay(100);
    
        //
        // Wait here.
        //
        while(1)
        {
        }
    }
    

  • Current measure at JP2 using DVM
  • Hello Benson,

    The EK-TM4C1294XL is a evaluation platform. So current numbers may not be representative of the application. Note that the additional current may be due to Ethernet PHY + Magnetics. If you are using VDD3ON mode then it is required to have a separate LDO to attain the same currents as the specification.

    If it is VDD3OFF Mode then we need to debug why the current is higher.

    Regards
    Amit