Internet Explorer is not a supported browser for TI.com. For the best experience, please use a different browser.
Video Player is loading.
Current Time 0:00
Duration 19:13
Loaded: 0.86%
Stream Type LIVE
Remaining Time 19:13
 
1x
  • Chapters
  • descriptions off, selected
  • en (Main), selected

[MUSIC PLAYING]

Hello, and welcome. My name Ashish Ahuja. I'm an applications engineer with Texas Instruments. I'm really excited to introduce you to various low power modes and Hibernation modules in the state of the art, new Tiva C Series TM4C123X family of microcontrollers.

We will begin our discussion by briefly talking about key features of the Hibernation module and quickly look at some end applications for the TM4C123X microcontrollers. That will lead us to a discussion on functional description that involves real time cock, power control, battery management, and so on. We will spend some time talking about the use considerations and applications for involving Hibernation module.

In the end, I'd like to introduce you to the new TivaWare for C Series software and how you can use it to jumpstart embedded software development with TM4C123X devices. All right, so let's get started and take a look at the power modes first.

TM4C123X family of microcontrollers are optimized to consume low power and deliver high performance to fit a wide range of applications. Clearly, trade-off exists between the power consumption and performance. As you can see in the diagram towards right, for the applications that demand higher performance, the power consumption is higher as well.

To optimize overall power consumption in various applications, TM4C123X microcontrollers can be operated in different power modes-- Run mode, Sleep mode, Deep Sleep mode, and Hibernation mode. The table on the screen provides a high level comparison between the powers consumed in different modes of operation.

As you can see, TM4C123X microcontrollers consume as low as 1.6 microamps when operated in the Hibernation mode. Let us take a closer look at various modes of operation first. Let us discuss the Run mode first.

This more provides normal operation of the processor and currently enabled peripherals, that is the ones that are enabled in the RCGC register. The microcontroller actively executes scored with maximum performance in this mode. And the system clock can be any of the available clock sources such as the main oscillator, precision internal oscillator, low frequency internal oscillator, and PLL.

In the diagram shown on the screen, blocks shown in green colors shows that the processor, memory, and peripherals are all powered on and are clogged. To reduce the power consumption, the microcontroller can be configured to operate in the Sleep mode. The overall power consumption is reduced in the Sleep mode by turning off the clock to the processor and memory, that is Flash and SRAM.

This mode is used in applications we are process and we will be running code but peripherals are still required to function at the system clock speed. The active peripherals, that is the ones that are enabled in the SCGC or RCGC registered are clocked at the same frequency as the system clock. The system clock has the same clock source and frequency as that during the Run mode.

The device enters Sleep mode when processor executes Wait for Interrupt, or Wait for Event instruction, or upon completing execution of an Exception Handler if Sleep on Exit bit in the system control register is set. That device exits from the Sleep mode depending on the condition of the mechanism that caused it to enter the Sleep mode.

The diagram on the screen shows what causes that device to enter the Sleep mode and exit from the Sleep mode before application code can execute. In the diagram shown on the screen, the blocks shown in orange color indicate that the processor memory are powered on. But they are clock gated. The block in the green color indicate that the peripherals are being clocked and are powered on.

OK, so that takes us to a discussion on the third mode of operation, Deep Sleep mode, which is used to further reduce the overall power consumption by turning off the clock to the processor and memory, that is Flash and SRAM, along with the main oscillator and PLL. The active peripherals, that is the ones that are unable in the DCGC register, can be clocked using the internal oscillator.

This mode is used in applications where processor needn't be running code and the peripherals are required to function at the speed slower than the Run mode system speed. The device enters Deep Sleep mode if Sleep Deep bit in system control register is set. And when processor executes Wait for Interrupt, or Wait for Event Instruction, or upon completing execution of an Exception Handler if the Sleep on Exit bit in system control register is set.

The device exits from Deep Sleep mode depending upon the mechanism that caused it to enter that Deep Sleep mode. In addition to that, Wake-Up Interrupt Controller can also wake up the processor from Deep Sleep upon detecting and interrupt if Deep Sleep bit in SCR register is set.

When exit event occurs, how do we bring the system clock back to the clock source and frequency it had at the onset of the Deep Sleep mode before enabling the clocks that were disabled? In the diagram shown on the screen, the blocks shown in orange color indicate that the processor memories are all powered on. But they are clock gated. The blocks shown in the shaded green and orange color indicate that the peripherals are powered on, but they can only be clocked from the internal oscillator.

The fourth mode of operation is the Hibernation mode. It provides the lowest power configuration available on the TM4C123X microcontrollers. This mode it allows users to completely power down the code and peripherals while only maintaining the power to the Hibernation module. This is particularly useful in battery-powered handheld applications where the system can be put into the lowest power state while saving some state information.

The Hibernation module manages removal and restoration of power to provide a means for reducing overall power consumption. When the processor and peripherals are ideal, power can be completely removed only the Hibernation module remaining powered. Hibernation module is independently powered by an external battery or an auxiliary power supply and has its own independent clock domain.

While in the Hibernation mode, power to code and other system peripherals can be restored upon assertion of an external signal or at a certain time using the real-time clock. As shown in the diagram, the blocks shown in red color are indicating that the processor, memory subsystem, and peripherals are completely powered down. And only the Hibernation module shown in the green color remains powered on from an external battery or power supply.

Now let us spend some time and compare the current consumed by the microcontroller in different modes of operation. The table shown on this slide lists parameters like IDD, VDD, VBAT, et cetera in the first column, and their corresponding values in different modes of operation in the subsequent columns.

As shown in the table, the current consumption in the Hibernation mode is in the order of microamps. This has been made possible because of the new design from ground up in which current consumption has been greatly optimized to meet the demands of a large number of end applications.

This data was obtained using pre-production engineering samples that were available at the time and this presentation was created. Please refer to the device data sheet for most up to date electrical characteristics.

Using the Hibernation module, the user can achieve 1.6 microamp current consumption. Further, it is interesting to note that in Hibernation mode, the current consumed with the real-time clock enabled and with the real-time clock disabled differs only by 100 nanoamps.

The bar graph on the right represents the current consumption in different modes of operation. As evident from the graph, the overall current consumption is dramatically reduced when the microcontroller is in the Hibernation mode. Wow.

That takes us to the second item on the agenda. Now we'll talk about the key features and end applications of the Hibernation module. The key features are listed on the screen. And I will talk about those features very briefly at this point in time. Some of these features will be discussed in more detail in the later section of this presentation.

The first two features in the left column and the first feature in the right column list the mechanisms that can be used to wake up the processor from Hibernation mode. The microcontroller can wake from the Hibernation mode by three different mechanisms. One can use the integrated real-time clock, and external wake pin, or a low-battery detection signal to wake up the microcontroller.

It is also possible to retain the states of GPIOs in Hibernation using the VDD3ON mode. Further, there are two mechanisms for power control. First one, controlling the system power using a discrete external regulator, the second one, being the on chip power control using internal switches and a register control.

Hibernation module is clocked from a 32 kilohertz clock source. Also features a battery backed memory and programmable interrupts for the real-time clock.

The Hibernation module is useful in applications where reducing overall current consumption is the key concern. Most of such application involve portable and battery-powered devices, wireless and connectivity products, energy and metering devices, to name a few. Some of the products where Hibernation module can be useful are displayed on the screen. Please take some time and look at them.

Now let us take a closer look at the block diagram and signals for the Hibernation module. The Hibernation module operates on its own clock domain. As shown in the functional block diagram, it consists of a battery-backed memory, a low battery detection circuit, and a power sequence logic. It also has a mechanism to generate interrupts to the CPU.

Power to the Hibernation module is supplied through VBAT pin. This pin can be directly connected to an external battery or a regulated external power supply. In order to use the Hibernation module, a 32.768 kilohertz single-ended clock source or a 32.768 kilohertz external crystal is required.

The clock source can be connected to XOSC0 pin, leaving XOSC1 pin disconnected. Or an external crystal can be connected to XOSC0 and XOSC1 pins. The buffered version of the 32.768 kilohertz clock is available on the RTC clock pin.

In addition to the low battery detection and RTC match, the processor can wake up based on the external wake signal as well. This signal can be applied to the Hibernation module through the Wake terminal. Also, HIB pin is provided to indicate the current state of the processor, that is if the processor is in Hibernation Mode or not.

Now let us understand what makes Hibernation module so cool, as in we will now discuss how Hibernation module works, including the conditions that will cause a device to go into Hibernation mode and the events that will cause a device to wake up from the Hibernation Mode. The microcontrollers enters into the Hibernation mode when Hibernation request bit in the Hibernation control register is set. The device can also enter into the Hibernation mode when the power is dynamically removed while VBAT is connected and the registers are configured accordingly.

When the microcontroller is in the Hibernation mode, the HIB pin is asserted. This pin can be used to indicate other external devices that the microcontroller is in Hibernation Mode, and its core, along with other system peripherals, are powered off.

The device will continue to stay in the Hibernation mode until one of the wake conditions occur. There are three wake conditions, namely assertion of the external wake signal, occurrence of an RTC match, or detection of low battery on VBAT terminal.

After the device wakes up, HIB pin is de-asserted. And an internal power on reset signal is issued so that the application code can begin to execute.

The Hibernation module also includes a real-time clock that consists of 32-bit seconds counter and a 15 bits subseconds counter. The clock signal from the 32.768 kilohertz Hibernation oscillator provides a clock for the RTC. A buffered version of that 32.768 kilohertz signal is available on the RTC clock output. The RTC counters are reset when the Hibernation module is reset.

The Hibernation module also includes a 32-bit Match register and a 15-bit field in the HIBRTCSS register that are compared to the value of real-time clock 32-bit counter and 15-bit subseconds counter. When a match occurs, the processor can be programmed to wake from the Hibernation mode and generate an interrupt. The match interrupt generation takes priority over the interrupt clear.

The Hibernation module controls power to the microcontroller to the use of the HIB pin, which is intending to be connected to the enable signal off the external regulator, providing 3.3 volts to the microcontroller and other circuits. When the HIB signal is asserted by the Hibernation module, the external regulator is turned off and no longer powers the microcontroller and any parts of the system that are powered by the regulator.

The Hibernation module remains powered from the VBAT supply, which could be a battery or an auxiliary power source until the wake event. Power to the micro-controller is restored by de-asserting the HIB signal, which causes the external regulator to turn power back to the microcontroller.

The Hibernation module may also be configured to cut power to all internal modules. While in this state, all pins are held in the state they were in prior to entering hibernation. This is also called VDD3ON mode. And in this mode, we retain the states of GPR pins while the device is in the Hibernation mode.

The Hibernation module can be independently powered by the battery or an external auxiliary power source. The module can monitor the voltage level of the battery and can detect when the voltage drops below the VLOWBAT threshold. The voltage threshold can be between 1.9 to 2.5 volts. And it's configured using the VBAT Select pin in the Hibernation controlled select register.

Battery voltage is monitored while in the hibernation. And the microcontroller can also be configured to wake from the Hibernation module if the battery voltage goes below the threshold. The Hibernation module can also be configured such that the device does not enter the Hibernation mode when the battery voltage falls below a certain threshold.

So it is important to make sure that the VDD is higher than VBAT. Or else Hibernation module will draw the power from the external battery. And it will be drained.

If you would like to learn more about the Hibernation module, including the register map, the bits for different settings, I would encourage you to refer to the device data sheet. Now we will discuss some use considerations that you should keep in mind while using the Hibernation module.

It is important to note that although reads are done at the system clock frequency, registered rights do not happen instantaneously. It takes about two to three clock cycles of synchronization to happen before the data becomes valid. This can be checked by monitoring the status of the write complete bit. It is also important to note that system reset is blocked when the external wake pin or RTC are enabled.

While using software requested hibernate entry, a valid wake source must be set. And any low battery conditions must be cleared. And Flash or Reprom must not be busy.

So far in this presentation, we talked about different power modes for TM4C123X microcontrollers. We also looked at the key features and discussed some of the end applications were in Hibernation mode can be very useful. After having discussed all that, I'd like to introduce you to TIVAWare for C Series, our newest software platform, which has been created to streamline your code development with the Hibernation module on the TM4C123X devices.

TivaWare for C Series is an extensive suite of software designed to simplify and speed up your embedded application development using the Tiva T Series microcontrollers. TivaWare for C Series include peripheral driver library, graphics library, USB library, and sensor library, which includes several APIs has to configure and initialize different peripherals on the Tiva T Series microcontrollers.

These libraries come with the source code, which is mostly in C. They are precompiled for use as is and can also be adapted as desired. TivaWare for C Series also includes bootloader, several code examples, and third party packages that allow you to focus on your application development and not so much on how to set up the microcontroller.

The peripheral driver library in TivaWare for C Series includes a set of function calls, commonly known as APIs, which can be used to initialize and configure the Hibernation module without having too much knowledge about various registers and bit configuration. More details about the functions, including the description, prototypes, arguments, et cetera can be found in the Driverlib documentation, which is available in the TivaWare for C Series. I strongly encourage you to take a look at that before you start using these functions.

We have an extensive repository of excellent documentation, including device data sheets, user manuals, application notes, et cetera, that we have created to strengthen your understanding about TM4C123X devices and accelerate the design and development of your project. If you have a technical question, you can contact Tiva C Series Experts on the TI's E2E Forum Community. Please visit ti.com/tiva-c for technical documents, ordering samples, downloading tools and software, and e2e.ti.com to obtain technical guidance.

So today we learned about Hibernation and low power features in the state of the art, new Tiva C Series TM4C123X family of microcontrollers. We begin our discussion by learning about different power modes of operation and comparing current consumption in each of them. That led us to a discussion on functional description of the Hibernation module.

In the end, we've walked through TivaWare for C series, a software that enables you to jumpstart embedded application development with TM4C123X devices. We also took a look at various APIs, which can be used to initialize and configure the Hibernation module.

[MUSIC PLAYING]

Thanks for watching. And stay tuned for more exciting and innovative products.

[MUSIC PLAYING]