初识EFR32BG22 ---- 能源管理篇
EFR32BG22是一款低功耗蓝牙soc,
优点是封装小,对比其他同类芯片,功耗表现出色且集成硬件加密加速器,方便做物联网信息安全。
缺点是资料多且杂,上手简单但精细设计需要花费的时间较多。
配套的IDE软件simpicity studio v5本意是降低开发难度,使工程师可以以组件的方式开发。但缺少组件代码引导,经常出现加入新组件后找不到相关代码的情况,且组件配置缺少详细的说明。
本文主要介绍EFR32BG22的能源管理方法。
目录
1、低功耗模式切换的硬件底层实现方法
2、低功耗模式切换的触发源
2.1、进入EM4
2.2、EM4的唤醒
3、低功耗模式切换的软件实现方法
EFR32BG22支持5种能源模式,功耗由高到底如下:
- EM0-active:可使用最高时钟频率,且射频和全部外设可用,功耗最高。
- EM1-sleep:除计算模块以外的其他外设(包括射频)可用
- EM2-deep sleep:射频,usart,flash等不可用,是最常用的低功耗状态。在这个状态下快启动RC振荡器工作,便于快速恢复高速运行状态。
- EM3-stop:只有片上外设,I2C和外部中断可用。
- EM4-shutoff:最低功耗模式,只有低功耗时钟,射频OOK检测,GPIO等工作。系统从EM4唤醒后会复位。
1、低功耗模式切换的硬件底层实现方法
EFR32BG22实现低功耗的途径有以下几点:
- 外设电源管理:当前功耗状态下不可用的外设,能源管理单元会切断它的电源
- 内核电压调整:内核电压通过LDO给出,分为三个挡位(由低到高VSCALE0(EM2/3),VSCALE1(EM0/1低频),VSCALE2(EM0/1高频))。能源管理单元会根据能源状态切换内核电压。也就意味着可以通过测量DECOUPLE管脚电压,判断当前能源状态。
- 区分三个外设电源域,可通过配置,在EM2/3期间关闭某些电源域的供电
2、低功耗模式切换的触发源
EM1/2/3之间的切换支持外设自动进行,不需要额外的处理。EM0切换其他状态需要发起指令(写寄存器相关位)。EM1/2/3状态切换到EM0可通过所有的软硬中断实现,EM4只能唤醒到EM0(因为EM4唤醒等同于复位)
2.1、进入EM4
方法:
可通过软件指令进入EM4: 向EM4CTRL->EM4ENTRY写2,3,2,3,2,3,2,3,2
gecko_SDK为我们提供了便捷的函数:
EMU_EnterEM4();
在进入EM4前需要保证:
- 看门狗没有设置EM4BLOCK位
- DCDC设置为bypass模式
- 射频等模块不活动
否则CPU会阻止进入EM4的请求,导致进入EM4失败。
2.2、EM4的唤醒
唤醒方式如下:
- BURTC中断
- Reset管脚或断电复位
- RFSENSE(需要使用OOK协议)
- gpio中断(只可用带有EM4WU功能的gpio管脚,且需要配置EM4WUEN)
其中最常见的是gpio中断唤醒。
带有EM4WU功能的管脚如下:
只有以上管脚可配置为EM4唤醒管脚,配置方法为:
GPIO_EM4EnablePinWakeup(pin, polarity);
其中pin可以使用宏GPIO_IEN_EM4WUIENx,x对照上表根据管脚选择,比如使用PB03作为EM4的唤醒脚,x = 4。
polarity表示唤醒极性,若设置低电平唤醒,则写0,若设置高电平唤醒,也可以使用宏GPIO_IEN_EM4WUIENx进行设置。
pin和polarity都是bitmap的形式可同时设置多个管脚作为唤醒源,分别设置不同的唤醒电平
调试初期,请注意在启动后进入EM4前留存足够的等待时间,用于重新烧录程序。否则若EM4唤醒失败,则芯片无法再次烧录
3、低功耗模式切换的软件实现方法
em_emu.c中提供了一组用于低功耗模式切换的api:EMU_EnterEMx系列函数,用于功耗高到低的切换,其中EMx代表要切换到的能量状态名。
当然,若要实现系统的低功耗,需要各个功耗状态频繁的切换,除了EMU_EnterEMx系列函数,还需要一套通用的结构化的方法,帮助我们完成切换时机的判定,切换前后的外设配置等工作。
gecko_SDK贴心的为我们提供了这样一套机制,也就是power_manager组件。
这套组件使得应用开发变得很简单,只要在裸机实现的主循环中调用函数:
sl_power_manager_sleep();
这个函数提供了保姆级别的电源管理服务,帮助我们使系统永远保持在能够保证系统实现的最低功耗模式。
后续我们将更深入细节的探究power_manager的实现方法,和设计要点。
初识EFR32BG22 ---- 能源管理篇相关推荐
- 京东自建数据中心核心技术解密——运营管理篇
随着电子商务.云计算.大数据.人工智能.互联网金融等应用的快速发展,数据中心单体规模越来越大.系统越来越复杂,应对的挑战也越来越多. 一个好的数据中心需要通过科学的运维管理,充分利用技术和设备资源,将 ...
- 初识阿里云(云计算)--发展历程和技术架构、地域和可用区
文章目录 一.初识阿里云 1.概述 2.阿里云log 3.品牌口号 4.云计算价值 二.阿里云整体架构 1.阿里云发展历程 2.阿里云技术架构 3.地域和可用区 三.云端实践 1.杭州城市大脑 2.1 ...
- EFR32--如何在EFR32BG22透传中添加AT指令控制
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/MemsanGZmInG/article ...
- 2022-2028年中国能源期货市场深度调研及投资前景预测报告
[报告类型]产业研究 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了能源期货行业相关概述.中国能源期货行业运行环境.分析了中国能源期货行 ...
- day3----编码-集合-深浅copy-文件操作-函数初识
day3----编码-集合-深浅copy-文件操作-函数初识 本文档主要内容: 一 编码 二 集合 三 深浅copy 四 文件操作 五 函数初识 首先,我们来看看两个字符串的比较 打开cmd,进入do ...
- ⑥python模块初识、pyc和PyCodeObject
一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...
- 初识java类的接口实现
初识java类的接口实现 如果两个类之间不存在继承关系,且两个类都想实现同一个接口,两个类都必须实现接口中全部方法,否则报语法错误 如果两个类之间存在继承关系也想实现同一个接口,父类如果实现了某个接口 ...
- vba 编辑combobox内容_初识Visual Basic编辑器并建立一段简单的代码
大家好,从今日开始我正式推出"VBA之EXCEL应用"教程,这个教程是面向初学人员的教程,教程一共三册,十七个章节,从简单的录制宏实现一直讲到窗体的搭建,都是我们在利用EXCEL工 ...
- 16.1、python初识面向对象(1)
初识面向对象 楔子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人 ...
最新文章
- win7操作系统在哪显示隐藏文件夹
- 微信小程序之后台https域名绑定以及免费的https证书申请
- 排序算法---希尔排序(java版)
- [转]带宽计算-大B与小b的区别
- 加减法叫做什么运算_小学四则运算基础知识,赶快给孩子存下吧!
- oracle数据库连接 ORA-12638:身份证明检索失败
- 【CF1215E】Marbles【状压DP】
- linux 终端 画圆,Linux Bash Shell快速入门
- ae缺少效果opticalflares_新版镜头光晕插件来袭,Optical Flares 1.3.5 for Win/Mac,含注册机...
- 使用js实现复选框的全选、取消功能
- LibreOJ β Round #2 E. 数论只会 GCD
- 在线编辑Word——插入表格
- 软件测试工程师职业规划怎么写,软件测试工程师的职业生涯规划
- python为循环线条增加颜色_python – Matplotlib:如何将线条颜色设置为橙色,并指定线条标记?...
- win10连接打印机问题:不能访问此共享文件夹
- 关于QRCode生成二维码(背景图、Logo)
- c语言中指数形式怎么表示_C语言编程基础知识汇总学习,适合初学者!
- Vue中使用把汉字转化为拼音字母
- Office Tool Plus(安装visio)
- QuickJS 快速入门 (QuickJS QuickStart)