[综合信息] 【KF8L系列+超低功耗休眠模式详解】

[复制链接]
788|2
 楼主 | 2019-1-27 21:20 | 显示全部楼层 |阅读模式
超低功耗休眠模式
超低功耗模式的进入方法与普通和深度模式不同。需要通过寄存器的解锁进入。
 BKPCTL_bit0=1
 POWCTL_DSLPEN=X
 POWCTL_ULPEN=1
 ULPKEY=0xC0
       该模式下,内置电压调节器关闭,除备份区以外的数字逻辑部分(系统时钟/CPU/RAM/数
字外设等)掉电,最大程度节省功耗。在使能超低功耗模式之前,用户需要软件锁存 I/O 口的
状态。将 POWCTL 寄存器的 IOLATCH 位置 1 后,单片机将 I/O 口的 TRx 寄存器和 PxLR 寄存器的
状态进行锁存操作,以防止超低功耗模式下 I/O 口数字逻辑部分掉电后,对 I/O 口状态造成影
响。POWCTL 寄存器的 IOLATCH 位置 1 后,任何对 TRx 寄存器和 PxLR 寄存器进行写操作都不会改
变 I/O 口的状态。直到 IOLATCH 位清零,I/O 口状态才会被更新。POWCTL 寄存器在备份区内,
因此即使从超低功耗模式唤醒后(非复位),IOLATCH 位仍为 1,用户需要将该位清零。超低功
耗模式 IOLATCH 位不会对 ANSx 寄存器进行锁存操作,因此从超低功耗模式唤醒后,ANSx 寄存器
被复位为 FFH。
       进入超低功耗模式后,P0.1 和 P0.2 口将被强制为数字口,且 P0.2 口的弱上拉功能被强制使
能,以用于超低功耗模式下可能进行的编程操作。超低功耗模式下,禁止使用 P0.1 口和 P0.2 口
对应的 LCDS19 和 LCDS18。同时锁存 IO 口状态之前,将 P0.2 口配置为输入口(请勿配置为输
出口以防额外电流产生);如果 P0.1 口悬空,可将 P0.1 口配置为输出口;或者 P0.1 口外接低电
平或者高电平。也意味着应用的 P0.1 和 P0.2 不能做锁定,毕竟唤醒使芯片重新运行的丢失现场,
因为休眠需要稳定的 IO 状态,实际的 IO 锁定功能可以选择不使用,不能做应用的现场快速恢
复实现。
超低功耗休眠样例代码:
void PWR_Ultra_LowPowerMode_Configuration(void)
{
// 配置IO为固定状态,关闭使用的外设模块,唤醒源进一步后续配置。
_Config_Mcu_TO_IDLE();
//---------------------------------------------------------------------------
// 如果系统存在多种休眠,这里进行深度休眠或超低功耗关闭
BKP_Register_Unlock(BKP_Register_Unlock);
//--------------------------------------------------------------------------
// 如果需要的配置备份区专用看门狗,最大可约262秒
BKP_WDTPrescaler_Select(BKPWDT_Prescaler_512);
BKP_WDTPostscaler_Select(BKPWDT_Postscaler_8);
BKP_ExitWDTReset_Enable(BIT_SET);
BKP_WDT_Enable(ENABLE);
// 如果需要配置外部唤醒 P06 (上升沿)
PWR_WakeupExitPin_Enable(DISABLE); // 关闭使清零标志
GPIO_ChannelType_SelectMac (GPIO_P6, GPIO_PIN_0, DIGITAL );
GPIO_Direction_SelectMac (GPIO_P6, GPIO_PIN_0, IN_PUT );
PWR_WakeupExitPin_Enable(ENABLE); // 配置使能,P06需要上升沿系统。
// RTC中断的唤醒根据RTC 系统配置所需的中断源。
// 芯片外部复位功能同时会复位备份域,针对RTC尽量不做外部复位,此为配置字的控制功能
// P01 P02的特殊处理
GPIO_ChannelType_SelectMac (GPIO_P0, GPIO_PIN_1|GPIO_PIN_2, DIGITAL
);
GPIO_Direction_SelectMac (GPIO_P0, GPIO_PIN_2, IN_PUT );
GPIO_Direction_SelectMac (GPIO_P0, GPIO_PIN_1, OUT_PUT );
GPIO_P0_OutputLatch_SelectMac(GPIO_PIN_1,LOW_LEVEL);
// 锁定IO状态避免操作,锁定下唤醒后必须代码解除锁定,否则IO方向不可切换,不可控制输出
KF8L23 系列外设库使用说明

芯旺微电子 - 206/206 -
PWR_IOLatchState_Set(ENABLE);
// 配置进入超低功耗, 进入超低功耗休眠,休眠唤醒复位运行,不存在现场恢复
PWR_DeepSleepMode_Enable(DISABLE);
PWR_UltraLowPowerMode_Enable(ENABLE);
PWR_UltraLowPowerMode_Unlock();

| 2019-1-30 15:28 | 显示全部楼层
支持下,谢谢分享!

使用特权

评论回复
| 2019-1-30 16:54 | 显示全部楼层
用看门狗唤醒,还是用外部中断唤醒呢?

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表