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.

TM4C1294KCPDT: UART in deep sleep

Part Number: TM4C1294KCPDT

Hello,

I need lowest power for my device, current consumption should be below 1mA with working UART. Another one requirement for device - support of USB Host.
I checked all TI devices (MCU) and found, that only TIVA a most suitable solution, because MSP430 haven't USB Host at all.
At the same time only TM4C129 can be used because it current consumption is much better that TM4C123.

As we can see in datasheet

2.7 Power Management
The Cortex-M4F processor sleep modes reduce power consumption:
■ Sleep mode stops the processor clock.
■ Deep-sleep mode stops the system clock and switches off the PLL and Flash memory.
Register 131: Universal Asynchronous Receiver/Transmitter Deep-Sleep Mode Clock Gating Control (DCGCUART), offset 0x818
The DCGCUART register provides software the capability to enable and disable the UART modules in deep-sleep mode. When enabled, a module is provided a clock. When disabled, the clock is disabled to save power.
Important: This register should be used to control the clocking for the UART modules.
a.	Total current in RUN, SLEEP and DEEPSLEEP modes is the sum of IDD and IDDA.

As I understand there are the only one way - clocking from LFIOSC because IDD will higher that 1 mA even All peripheral switched off .

There I got some doubts about configuration.

There are 2 clock sources - PIOSC and System clock. In datasheet:

Other Peripheral Clock Control
In the UART and QSSI Clock Control Registers, users can choose between the system clock (SysClk), which is the default source for the baud clock, and an alternate clock. Note that there may be special considerations when configuring the baud clock.

System clock can be configured to work from LFIOC.

In datasheet I found another 2 notes:

Register 18: UART Clock Configuration (UARTCC), offset 0xFC8
The UARTCC register controls the baud clock source for the UART module. For more information, see the section called “Peripheral Clock Sources” on page 234.
Note: If the PIOSC is used for the UART baud clock, the system clock frequency must be at least 9 MHz in Run mode.
Register 131: Universal Asynchronous Receiver/Transmitter Deep-Sleep Mode Clock Gating Control (DCGCUART), offset 0x818
The DCGCUART register provides software the capability to enable and disable the UART modules in deep-sleep mode. When enabled, a module is provided a clock. When disabled, the clock is disabled to save power.
Important: This register should be used to control the clocking for the UART modules.

And looking similar post about same question on LM4F https://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/187113?tisearch=e2e-sitesearch&keymatch=uart%20deep%20sleep, where described solution about clocking from 30 kHz.

Can you clarify next questions:

  • Can UART be clocked from LFIOSC?
  • Can be achieved power consumption below 1 mA in deep sleep with UART?



  • Hi Vladimir,

      Yes, the UART can be clocked from LFIOSC. In the UARTCC register you will program 0x5 to select the alternate clock source as defined by ALTCLKCFG register register in the Ssystem Control Module . In the ALTCLKCFG register you will program 0x4 to select LFIOSC clock source.

      

      What operating temperature are you operating at? If you look at the power consumption listed in the table for max condition at high temp it can go over 1mA even using LFIOSC. 

      

  • May I note that "events beyond power consumption during "deep sleep" may (also) demand such rigorous inspection and analysis?

    Do not the duration times - both to "exit from deep sleep" and then to "return to deep sleep" - as well as the UART packet size, baud rate (and possible use of UART level shifters) also impact your "Power Budget?"

    As always - "devil hides w/in such detail..."

  • Hello Charles,

    We try to implement your recommendations, but got another one issue.
    It's a stability of LFIOSC. It can changes in 9 times (3x in both ways) in hibernate and 7.5x times not in hibernate.
    So as you understand UART can't clocked from this source due to very low stability.
    I asked this question in another one thread e2e.ti.com/.../612100

    Can we provide another one solution for this case?
  • If the power requirements are that strict, maybe "more becomes less"? Could a very simple FRAM MSP430 take care of the serial port monitoring, and wake up another MCU with USB only on the very moments that it is needed?
    Bruno
  • Hi Vladimir,

    As I replied in the post that you referred to, the LFIOSC should not be used as the source clock for UART during deep sleep mode due to its high variance on the clock.

    Do you have to use the UART during deep sleep mode? Can you take other wakeup sources (i.e. PGIO pin) during Hibernate mode to wake up the device? Once the device is woken up the UART can continue with its transmission.

     Please also consider Bruno's idea for feasibility.