编辑: 迷音桑 2019-09-30
HT32 低功耗模式 AN0473S

1 /

9 December 26,

2017 HT32 低功耗模式 文件编码:AN0473S 概述 简介 此篇应用范例用于帮助系统设计者对 HT32 系列产品的低功耗模式, 在软硬件方面有简要地 了解.

用户可以学习使用 HT32 产品及如何安排低功耗模式,以实现在低功耗应用方面的最 优化处理. 相关档 HT32 系列规格书 HT32 系列使用手册 功耗和唤醒时间测量 简介 阅读此节后,用户可以了解 HT32 系列低功耗模式功耗和唤醒时间的测量问题. 功耗测量 用户可通过此应用范例附带的 Zip 文件中提供的韧体实际测量 HT32F52352 的功耗.该韧体 存放在 CurrentMeasurements 文件夹中. 可以在下列的低功耗模式中进行功耗测量: 休眠模式 休眠模式下仅有 CPU 内核的时钟停止运行. 此模式下的功耗可由时钟源及有效的外设决 定.为涵盖此模式的所有功能,测量时用到不同时钟源 (HSI 和HSE)、时钟频率 (1MHz~48MHz)、APB 外设配置 (所有外设时钟开启或所有外设时钟关闭,包括 Flash 和SRAM). 深度休眠模式

1 深度休眠模式

1 中,1.5V 电源域的所有时钟停止运行.高速振荡器 (HSI、HSE) 和PLL 停止振荡,1.5V 电压源为 LDO (处于低电流模式时). 深度休眠模式

2 除了 1.5V 电压源为 DMOS 外,深度休眠模式 2,其余条件与深度休眠模式

1 相同. HT32 低功耗模式 AN0473S

2 /

9 December 26,

2017 暂停模式 关闭 1.5V 电源域,保留 VDD 和Backup 电源域. 注意:1. 更多不同低功耗模式的说明,请参考 HT32 系列的用户手册及规格书. 2. 处于休眠模式和深度休眠模式时,所有未使用的 I/O 脚都配置为输入浮空状态, 斯密特触发输入除能,因此,这些 I/O 引脚的功耗为 0. 如何测量功耗 HT32系列开发板的功耗测量可通过两种方式测得: 首先利用电表代替 MCU Power Jumper (以HT32F52352 Starter Kit 为例 Power Jumper 是J1),并且由外部供电给开发板;

或者直接使用 USB 线供电. 韧体描述 头文件(main.h)中,可通过选择几个 #define 参数化范例. 取消相应行定义的注释,选择休眠模式所需的时钟配置 #define HSE_PLL_ON #define HSE_PLL_ON_48MHz //#define HSE_PLL_ON_24MHz //#define HSE_PLL_ON_12MHz //#define HSE_PLL_OFF //#define HSE_PLL_OFF_8MHz //#define HSE_PLL_OFF_1MHz //#define HSI_PLL_ON //#define HSI_PLL_ON_48MHz //#define HSI_PLL_ON_24MHz //#define HSI_PLL_ON_12MHz //#define HSI_PLL_OFF //#define HSI_PLL_OFF_8MHz //#define HSI_PLL_OFF_1MHz 取消相应行定义的注释,选择所需的低功耗模式 #define SLEEP //#define DEEP_SLEEP_1 //#define DEEP_SLEEP_2 //#define POWER_DOWN 取消相应行定义的注释,选择所需外设时钟 (门控时钟) //#define SLEEP_ALLPERIPH_ENABLE #define SLEEP_ALLPERIPH_DISABLE 休眠模式下,用户可通过取消相应行定义的注释来选择所需的 FMC 时钟选项 //#define SLEEP_FMC_ENABLE #define SLEEP_FMC_DISABLE 休眠模式下,用户可通过取消相应行定义的注释来选择所需的 SRAM 时钟选项 //#define SLEEP_SRAM_ENABLE //#define SLEEP_SRAM_DISABLE 注意:无论时钟源来自 HSI 还是 HSE,若系统时钟频率等于或小于 8MHz,PLL 都将关闭. 执行低功耗范例后, 若用户想重新载入 Flash 内存的内容, 需先将启动模式由主 Flash 切换到 Boot Loader (Boot Option 在Starter Kit 板子背面),并且要按下复位键.此举是 因为当 HT32 系列处于低功耗模式时,调试器无法连接到 HT32.接着启动模式需重 新配置到主 Flash.而后,重启目标板开始进行测量. HT32 低功耗模式 AN0473S

3 /

9 December 26,

2017 测量结果 测量结果如表

1 和表

2 所示.(关于低功耗数据,可参考 HT32 系列规格书) 条件 fHCLK 所有 APB 外设使能 所有 APB 外设除能 运行 HSE. AHB 预分频器用于减小频率, 休眠模式下 FMC 和SRAM 时钟开启 48MHz 9.92mA 2.85mA 24MHz 4.92mA 1.94mA 12MHz 3.47mA 1.47mA 8MHz 1.89mA 0.85mA 1MHz 0.76mA 0.57mA 运行 HSE. AHB 预分频器用于减小频率, 休眠模式下 FMC 和SRAM 时钟关闭 48MHz 9.44mA 2.38mA 24MHz 4.77mA 1.69mA 12MHz 3.36mA 1.34mA 8MHz 1.81mA 0.76mA 1MHz 0.69mA 0.56mA 运行 HSI. AHB 预分频器用于减小频率, 休眠模式下 FMC 和SRAM 时钟关闭 48MHz 9.77mA 2.65mA 24MHz 4.95mA 1.96mA 12MHz 3.61mA 1.61mA 8MHz 2.09mA 1.04mA 1MHz 0.97mA 0.84mA 表1休眠模式下功耗测量结果(以HT32F52352 为范例) 模式 条件 VDD/VBAT = 3.3V 深度休眠

1 模式 VDD15 来自 LDO,LDO 处于低功耗模式,RTC on,使用 LSI 42.5μA 深度休眠

2 模式 VDD15 来自 DMOS,LDO Off,RTC on,使用 LSI 13.3μA 暂停模式 VDD15 Off,RTC on,使用 LSI 1.5μA 表2深度休眠模式和暂停模式下功耗测量(以HT32F52352 为范例) 唤醒时间测量 此节描述了如何测量 HT32 系列由不同低功耗模式下唤醒的时间. 此应用范例提供了相关的 韧体,韧体位于提供的 Zip 压缩包内的 Wakeup Timing 以及 Wakeup Timing(PowerDownMode) 文件夹下. 唤醒时间定义 休眠模式和深度休眠模式 唤醒时间起始于 RTCOUT (以HT32F52352 为例脚位是 PB12) 的上升沿,结束于 WFE 后 执行完第一条指令. 暂停模式 从暂停模式中唤醒后,与遇到复位条件相同,程序重新执行.暂停模式的唤醒时间介于 RTCOUT (以HT32F52352 为例脚位是 PB12) 的上升沿与执行完第一条指令之间. 韧体描述 头文件(main.h)中,可通过选择几个 #define 参数化范例. 取消相应行定义的注释,选择所需的低功耗模式 //#define SLEEP //#define DEEP_SLEEP_1 //#define DEEP_SLEEP_2 HT32 低功耗模式 AN0473S

4 /

9 December 26,

2017 取消相应行的注释,选择所需的系统时钟源 /* Define the system clock */ #define HCLK_HSI //#define HCLK_HSI_PLL //#define HCLK_HSE //#define HCLK_HSE_PLL 在主文档(main.c)中.进入低功耗模式前,PA5 配置为输出推挽式,复位到低电压状态.由 低功耗模式唤醒后: 如果从休眠模式和深度休眠模式唤醒,则执行直接写入 GPIOA_SRR (输出设定复位控制 寄存器) 以设定 PA5 为高电平. 如果从暂停模式唤醒,则在代码启动时 PA5 脚应被设定 (此部分代码以 HT32F52352 为 例在 startup_ht32f520xx_01.s,如下所示). ;

/* Enable peripheral clocks of AFIO and GPIOA */ LDR R0, = 0x4008802C LDR R1, = 0x00004000 STR R1,[R0] LDR R0, = 0x40088024 LDR R1, = 0x00010000 STR R1,[R0] ;

/* PA5 output high */ LDR R0, = 0x4001A000 LDR R1, = 0x0020 STR R1,[R0, #0x24] STR R1,[R0] 注意:执行低功耗范例后,若用户想重载 Flash 内存的内容,需........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题