TI-RTOS实时操作系统开发之低功耗模式和外部唤醒

写在前面
本文章适用基于TI-RTOS开发的芯片
以下说明是以CC2640R2F为例,低功耗模式分为两种:1、掉电模式(shutdown),2、睡眠模式(sleep或者standby)

API说明

1、睡眠模式

即规格书中说的Standby模式,电流功耗1.1uA,只有RTC,RAM/CPU保持运行
int_fast16_t Power_sleep(uint_fast16_t sleepState)
参数: sleepState=PowerCC26XX_STANDBY(=1)

2、掉电模式

只能通过外部中断唤醒,电流功耗100nA
int_fast16_t Power_shutdown(uint_fast16_t shutdownState, uint_fast32_t shutdownTime)
参数:
shutdownState:无效
shutdownTime:无效
注意:调用该API时需要先禁用所有中断

3、外部唤醒

PIN_Status PINCC26XX_setWakeup(const PIN_Config aPinCfg[])
举例:
Board_BUTTON0配置为外部中断唤醒

/* Wake-up Button pin table */
PIN_Config ButtonTableWakeUp[] = {
    Board_BUTTON0     | PIN_INPUT_EN | PIN_PULLUP | PINCC26XX_WAKEUP_NEGEDGE,
    PIN_TERMINATE                                 /* Terminate list */
};
PINCC26XX_setWakeup(ButtonTableWakeUp);
4、注册监听电源状态

API:

int_fast16_t Power_registerNotify(Power_NotifyObj * pNotifyObj,
    uint_fast16_t eventTypes, Power_NotifyFxn notifyFxn, uintptr_t clientArg);

参数:
1、eventTypes:

宏定义 代码 说明
PowerCC26XX_ENTERING_STANDBY 0x1 电源事件:设备进入STANDBY睡眠状态
PowerCC26XX_ENTERING_SHUTDOWN 0x2 电源事件:器件进入SHUTDOWN状态
PowerCC26XX_AWAKE_STANDBY 0x4 电源事件:设备从STANDBY睡眠状态唤醒
PowerCC26XX_AWAKE_STANDBY_LATE 0x8 电源事件:器件从STANDBY唤醒(此事件稍后在唤醒期间,重新启用中断后发送)
PowerCC26XX_XOSC_HF_SWITCHED 0x10 电源事件:高频(HF)时钟源已切换为XOSC_HF
PowerCC26XX_JTAG_PD_TURNED_ON 0x20 请注意,此电源事件仅受CC2640R2器件支持!

2、notifyFxn:
当系统中有调用int_fast16_t Power_sleep(uint_fast16_t sleepState)或者int_fast16_t Power_shutdown(uint_fast16_t shutdownState, uint_fast32_t shutdownTime)就会产生下面的回调
static uint8_t rFSwitchNotifyCb(uint8_t eventType, uint32_t *eventArg, uint32_t *clientArg)

你可能感兴趣的:(CC1310,TI-RTOS,CC2640R2F)