当前文档版本为 v0.1.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

Low Power

1 功能概述

本例程演示芯片 Low Power 低功耗模式。

2 环境准备

  • 硬件设备与线材:

    • PAN271x EVB 核心板底板各一块

    • JLink 仿真器(用于烧录例程程序)

    • USB-TypeC 线一条(用于底板供电和查看串口打印 Log)

    • 杜邦线数根或跳线帽数个(用于连接各个硬件设备)

    • 逻辑分析仪,用于抓取debug io状态

  • 硬件接线:

    • 将 EVB 核心板插到底板上

    • 连接串口转USB调试模块:

      • 使用 USB-TypeC 线,将 PC USB 插口与 EVB 底板 USB->UART 插口相连

      • 使用杜邦线或跳线帽将 EVB 底板 J8 排针对 (P06 & TXD) 和 J9 排针对 (P05 & RXD) 分别短接起来

    • 连接 Jlink,使用杜邦线将 JLink 仿真器的:

      • SWD_CLK 引脚与 EVB 底板的 P00 排针相连

      • SWD_DAT 引脚与 EVB 底板的 P01 排针相连

      • SWD_GND 引脚与 EVB 底板的 GND 排针相连

  • PC 软件:

    • 串口调试助手(UartAssist)或终端工具(SecureCRT),波特率 115200(用于串口交互)

3 编译和烧录

例程位置:<PAN271x-DK>\01_SDK\samples\miscellaneous\low_power

双击 Keil Project 文件打开工程进行编译烧录。

4 低功耗模式说明

模式名称

唤醒

时钟

电源

STANDBY_M0

所有GPIO,BOD,LVR(可选,需开启慢时钟)PIN RESET

全部关闭

LPLDOH:PMU, GPIO, WDT, BOD,LVR

STANDBY_M1

所有GPIO(边沿去抖)SLPTMR,WDT,BOD,LVR(可选)PIN RESET

慢时钟其他全部关闭

LPLDOH:PMU, GPIO, WDT, BOD,LVR LPLDOL/LPLDOH: PHY REG, MAC REG, SRAM,RCC REG,SYSTEM REG

DEEPSLEEP

所有GPIO,SLPTMR,WDT,BOD,LVR(可选)PIN RESET

慢时钟其他全部关闭

LPLDOH:PMU, GPIO, WDT, BOD,LVR LPLDOL/LPLDOH: ALL OTHER DIG MODULES

SLEEP

所有外设中断BOD,LVR(可选)PIN RESET

慢时钟CPU_CLK关闭RCH/XTH/DPLL根据软件配置选择打开

HP_LDO: ALL DIG MODULES

5 例程演示说明

  1. 烧录完成后,芯片会通过串口打印初始化 Log:

    sram addr 0x20000B00,value=15d34c13
    +--------------------------------------------------------------------------+
    |                      PAN271x LowPower Sample Code.                       |
    +--------------------------------------------------------------------------+
    |    press key to start test                                               |
    |    Input'1'   LP_SleepModeTest();                                        |
    |    Input'2'   LP_DeepSleepPwmOutTest();                                  |
    |    Input'3'   LP_ContinuesSleepWakeByGpioClk32k();                       |
    |    Input'4'   LP_StandbyModeTest();                                      |
    |    Input'5'   LP_ContinuesStdbyWakeByGpio32k();                          |
    +--------------------------------------------------------------------------+
    
  2. 串口输入字符‘1’,sleep休眠唤醒功能,此模式下仅关闭CPU时钟,任何中断均可以唤醒,例程演示32K定时器、gpio及wdt唤醒,唤醒后输出中断类型,程序继续执行。

    Choose wake up mode:
     'A'  for sleep timer wake up
     'B'  for gpio wake up
     'C'  for wdt wake up
    输入‘A’:
    wake up by rcl 32k
    slptmr int
    sleep mode run continue
    输入‘B’:
    wake up by gpio P12
    p1 interrupt
    sleep mode run continue
    输入‘C’:
    wake up by watchdog
    WDT interrupt
    sleep mode run continue
    
  3. 串口输入字符‘2’,deepsleep休眠唤醒及低功耗下pwm输出演示,唤醒方式为32K timer,pwm通道为P13,唤醒触发slptmr及lp中断并输出中断log,同时逻辑分析仪抓取P13的波形(正常输出pwm波形),程序继续执行。

    wake up by rcl 32k(wait for wake up)
    slptmr int
    Deepsleep
    deep sleep mode run continue
    
  4. 串口输入字符‘3’,deepsleep多唤醒源休眠唤醒演示,唤醒方式支持32k timer及gpio P12,32k timer定时2s唤醒,gpio随机唤醒,循环进入休眠,通过逻辑分析仪抓取唤醒波形。

    Input lpldol trim(输入LPLDOL电压档位,范围0~15)
    4
    lpldol = 4
    Input lpldoh trim(输入LPLDOH电压档位,范围0~15)
    4
    lpldoh = 4
    
    wake up by gpio P12 or 32K(进入休眠)
    

    deepsleep_wake_by_p12_32k

  5. 串口输入字符‘4’,standby m0/m1休眠唤醒功能,standby m0唤醒仅支持gpio/bod/lvr。

    • 例程演示使用的sram版本芯片,芯片掉电程序丢失,故不演示bod/lvr唤醒。

    • 例程演示的standby m0/m1唤醒后均发生复位

    • 例程演示的standby m0/m1唤醒后产生lp中断

    • 例程输入参数根据串口输出的log信息输入

    standby m1(32k唤醒):
    wake up by rcl 32k
    Standby M1
    slptmr int
    
    sram addr 0x20000B00,value=20000348
    +--------------------------------------------------------------------------+
    |                      PAN271x LowPower Sample Code.                       |
    +--------------------------------------------------------------------------+
    ...
    
    standby m0(gpio唤醒):
    wake up by normal gpio
    Standby M0
    
    sram addr 0x20000B00,value=20000348
    +--------------------------------------------------------------------------+
    |                      PAN271x LowPower Sample Code.                       |
    +--------------------------------------------------------------------------+
    ...
    
  6. 串口输入字符‘5’,standby m1 cpu保持及多唤醒源持续唤醒,唤醒方式支持32k timer及gpio P12,32k timer定时2s唤醒,gpio随机唤醒,循环进入休眠,唤醒后程序表现为不复位重新执行而是继续执行,输出结果同第4点。

6 RAM/Otp资源使用情况

  • Otp Size: 10.71kB

  • RAM Size: 0.82kB