笔记使用的 KF32 IDE 与 KF32Lxxx 外设固件库及代码例程可以从 ChipON 官方网站 www.chipon-ic.com 下载
1. KF32L/LS 系列的低功耗特性
KF32L/LS 系列提供多种工作模式,内置两个电压调节器:主电压调制器 MR 和低功耗
电压调制器 LPR,在不同模式下,客户可以根据不同的需求开启或关闭调节器。内置灵活
的电压结构,可以灵活的配置关闭不需要的外设电压以达到省电的目的。
微控制器的功耗主要在运行动态功耗和休眠静态功耗,KF32L/LS 系列提供的低至
60uA/MHz 的运行动态功耗及低至 0.2uA 的 shutdown 模式。
KF32L/LS 系列提供一个带有侵入检测功能的备份区,此备份区可以用于保存数据。寄
存器组在 VDD 电源被切断时,仍然可以通过 VBAT 维持供电。备份域内寄存器只会在初始
上电复位时被复位,不会因为 VDD 掉电上电而复位(由 VBAT 保持)。
2. 停止模式
KF32L/LS 系列提供两种停止模式:Stop0 和 Stop1。
在 Stop0 模式下,CPU 停止运行,RAM 保持,FLASH 掉电;外设被允许使用低频时
钟工作在停止模式,高频时钟和 PLL 被禁止,只允许使用内部低频时钟和外部低频时钟;
所有 I/O 口均可被分配给相关外设或者保持状态。允许工作在停止模式下的外设中断和外
部引脚中断,可以将单片机唤醒至正常运行模式或者低功耗运行模式。
在 Stop1 模式下,Vcore 域(包括内核、大部分外设和大部分 SRAM)和 FLASH 掉电;
LP-SRAM 可以通过软件配置是否断电;小部分外设被允许工作在 Stop1 模式,只允许使用
内部低频时钟和外部低频时钟;部分 I/O 口可被分配给相关外设或者保持状态。
STOP 模式下可运行工作的外设:
LCD
LP-TIMER
LP-UART
LP-CAN
RTC
STOP 模式的唤醒方式:
NRST 引脚复位(备份域被复位)
IWDT 复位(备份域不复位)
外部唤醒引脚唤醒
RTC 闹钟中断/节拍中断唤醒
LCD
LP-TIMER
LP-UART
LP-CAN
唤醒时间:
96us/2ms 可选
3. 待机模式
在待机模式下,CPU 停止运行且进入掉电状态,同时 FLASH /SRAM 也进入掉电状态;
DPRAM_A 和 LPRAM 可以通过软件配置选择保持数据或者进入掉电状态;高频时钟和 PLL
被禁止使用,内部低频时钟和外部低频时钟被允许使用;少部分外设(BOR/RTC/IWDT)被
允许工作在待机模式,其余模拟外设被禁止使用,以及数字外设均进入掉电状态;所有 I/O
口均可通过 I/O 口状态锁存位锁存需要的状态。
STOP 模式的唤醒方式:
NRST 引脚复位(备份域被复位)
IWDT 复位(备份域不复位)
外部唤醒引脚唤醒
RTC 闹钟中断/节拍中断唤醒
唤醒时间:
160us/4ms 可选
/* MCU运行所需头文件 */
#include "system_init.h"
/* 功耗管理所需头文件 */
#include "PowerManger.h"
/* 调用外部函数 */
extern void startup();
void main()
{
/* 备份域使能 */
SystemBKPEnable();
if (Query_System_PowerOn_State() == TRUE)
{
/* 系统时钟配置 */
SystemInit();
/* RAM初始化 */
startup();
/* 写入上电标志 */
Write_SystemPowerOn_State();
/* standby模式配置,使能节拍中断 */
System_Standby_Configuration();
System_GotoSleep();
}
else
{
INT_All_Enable(FALSE); //关闭系统总中断
INT_Interrupt_Enable(INT_EINT19TO17, FALSE); //关闭RTC节拍中断
SFR_CLR_BIT_ASM(PM_CTL2, PM_CTL2_RTCTPEN_POS);
SFR_CLR_BIT_ASM(PM_CTL2, PM_CTL2_RTCTWEN_POS);
/* 系统时钟配置 */
SystemInit();
/* RAM初始化 */
startup();
}
while(1)
{
/* do something...
...
*/
System_GotoSleep();
}
}
|