TSI PM Features

Introduction

In order to meet the demand of ultra-low power consumption, the TLSR8258 has been designed to achieve independent control of each power domain to ensure that one power domain is turned on or off according to requirements. Ultra-low power management is essentially the control of these power domains.It is quite necessary to be familiar with all the power domains of the system before introducing PM performance.

Power domain of TLSR8258 mainly includes:

  • Radio Frequency: BLE,802.15.4,2.4GHz
  • Audio: I2S,DMIC,AMIC
  • USB: USB Device
  • Power Management Module: RESET,DCDC,ower-On RESET,Brown out,Power Management Controller
  • Clock: 24MHz Crystal,24MHz RC,32.768KHz Crystal,32KHz RC
  • Memory: SRAM(8KB+8KB+16KB+32KB),FLASH(512KB)
  • Core and Other Modules:Some modules in Other modules can also independently control the power domain, but in the power management is treated as a sort of view.
Block Diagram of the System Power Domain

Status of each power domain at initial power-on and normal working(with simple code runing):

Power Domain Initial Power-on Status Normal Working Status
Radio Frequency OFF ON/OFF
Audio OFF ON/OFF
USB OFF ON/OFF
Power Management Module ON ON
Clock-24M CRYSTAL ON ON
Clock-24M RC ON ON
Clock-32M CRYSTAL OFF OFF/ON
Clock-32M RC ON ON/OFF
Memory ON ON
Core and Other Modules ON ON

Working Mode Switch

The multi-stage Power Management(PM) module is flexible to control power state of the whole chip or individual funcational blocks. There are 6 working modes available to the user in this chip:

  • Active Mode: MCU is active, the PM Module is active, all SRAMs are accessible, and other modules are selectable whether to be at working state.
  • Idle Mode: MCU stalls, the PM Module is active, all SRAMs are still accesssible, and other modules such as RF transceiver, Audio and USB are still selectable whehther to be at working state.
  • Suspend Mode: MCU stalls, the PM Module is active, all SRAMs are still accesssible, modules such as RF transceiver, Audio and USB are powered down
  • Deepsleep with SRAM Retention Mode: MCU power down, the PM Module is active, most of analog and all digital modules except two 8KB and one 16KB retention SRAMS are powered down,while the retention SRAMs can be retained and not accessible.
  • Deepsleep Mode: Only the PM Module is active,while most of analog and all digital modules including the retention SRAMS are powered down.
  • Shutdown Mode: Only the PM Module is active,while all analog and all digital modules are powered down

The power domain status corresponding to each mode is as follows:

Power Domain Active Mode Idle Mode Suspend Mode Deepsleep with SRAM Retention Mode Deepsleep Mode Shutdown Mode
Radio Frequency ON ON OFF OFF OFF OFF
Audio ON ON OFF OFF OFF OFF
USB ON ON OFF OFF OFF OFF
Power Management Module ON ON ON ON ON ON
Clock-24M CRYSTAL ON ON OFF OFF OFF OFF
Clock-24M RC ON ON OFF OFF OFF OFF
Clock-32M CRYSTAL OFF OFF OFF OFF OFF OFF
Clock-32M RC ON ON ON ON ON OFF
SRAM 8K/16K/32K retention ON ON ON ON OFF OFF
SRAM 32K ON ON ON OFF OFF OFF
FLASH ON ON OFF OFF OFF OFF
MCU ON STALL STALL OFF OFF OFF
Analog Register ON ON ON OFF OFF OFF
Analog Register(WathchDog) ON ON ON ON ON OFF
Analog Register(Power-On) ON ON ON ON ON OFF
Digital Register ON ON OFF OFF OFF OFF


The switching between different modes is implemented as follows:

Mode Switch Active Mode Idle Mode Suspend Mode Deepsleep
with SRAM Retention Mode
Deepsleep Mode Shutdown
Acive Mode - mcu_stall_wakeup_by_timer0()
mcu_stall_wakeup_by_timer1()
mcu_stall_wakeup_by_timer2()
pm_sleep_wakeup() pm_sleep_wakeup() pm_sleep_wakeup() pm_sleep_wakeup()
Idle Mode mcu_stall_wakeup_by_timer0()
mcu_stall_wakeup_by_timer1()
mcu_stall_wakeup_by_timer2()
- - - - -
Suspend Mode PAD/32k Timer/RESET Pin - - - - -
Deepsleep
with SRAM Retention Mode
PAD/32k Timer/RESET Pin - - - - -
Deepsleep Mode PAD/32k Timer/RESET Pin - - - - -
Shutdown Mode RESET Pin - - - - -

Note: Active Mode can directly switch to other mode, but other modes cannot directly switch to each other. You must switch to the active mode before switching to another mode.

PM APIs List

In order to facilitate users to quickly develop products according to their own needs, TSI provide the following related APIs and examples.

APIs list Description Example Update Date Status
blc_pm_select_internal_32k_crystal() select internal 32K RC as the clock source of 32K timer API-PM-CASE1 2019-1-10 Done
blc_pm_select_external_32k_crystal() select external 32K Crystal as the clock source of 32K timer - 2019-1-10 Done
pm_get_32k_tick() get the tick of 32K timer - 2019-1-10 Done
cpu_set_gpio_wakeup() set polarity of gpio for PAD wakup and enable the specified gpio as PAD wakeup API-PM-CASE2 2019-1-10 Done
cpu_stall_wakeup_by_timer0() set timer0 as wakeup source and let mcu enter idle Mode API-PM-CASE1 2019-1-10 Done
cpu_stall_wakeup_by_timer1() set timer1 as wakeup source and let mcu enter idle Mode refer to API-PM-CASE1 2019-1-10 Done
cpu_stall_wakeup_by_timer2() set timer2 as wakeup source and let mcu enter idle Mode refer to API-PM-CASE1 2019-1-10 Done
cpu_sleep_wakeup() set PAD as wakeup source and let mcu enter suspend Mode API-PM-CASE2 2019-1-10 Done
set 32k timer as wakeup source and let mcu enter suspend Mode API-PM-CASE3 2019-1-10 Done
set PAD as wakeup source and let mcu enter deepsleep Mode API-PM-CASE4 2019-1-10 Done
set 32k timer as wakeup source and let mcu enter deepsleep Mode API-PM-CASE5 2019-1-10 Done
set PAD as wakeup source and let mcu enter deepsleep with Retention Mode API-PM-CASE6 2019-1-10 Done
set 32k timer as wakeup source and let mcu enter deepsleep with Retention Mode API-PM-CASE7 2019-1-10 Done
pm_get_wakeup_src() get the wakeup source - 2019-1-10 Done

TSI provides the following examples of this module to help users quickly understand and apply related modules.

Examples list Description Update Date Status
API-PM-CASE1 Timer0/1/2 wakeup from idle mode 2019-1-10 Done
API-PM-CASE2 PAD wakeup from suspend mode 2019-1-10 Done
API-PM-CASE3 32K timer wakeup from suspend mode 2019-1-10 Done
API-PM-CASE4 PAD wakeup from deepsleep mode 2019-1-10 Done
API-PM-CASE5 32K timer wakeup from deepsleep mode 2019-1-10 Done
API-PM-CASE6 PAD wakeup from deepsleep with retention mode 2019-1-10 Done
API-PM-CASE7 32K timer wakeup from deepsleep with retention mode 2019-1-10 Done

History Record

Date Description Author
2019-1-10 initial release LJW
2019-8-15 update api name for application LJW