4_Apollo4BlueLite电源管理

1.Cortex-M4 Power Modes

Apollo4BlueLite支持以下4种功耗模式:

▪ High Performance Active (not a differentiated power mode for the Cortex-M4)

▪ Active

▪ Sleep

▪ Deep Sleep

(1)High Performance Mode

高性能模式不是arm定义的标准模式,从arm的角度来看,该模式和arm定义的active模式比较类似。

Apollo4BlueLite定义的High Performance Mode是基于ambiq的turbo SPOT技术,实现了高频率,高性能的工作模式。

在该模式下M4核和内存可以在较高的时钟频率下工作,并且ARM的时钟(FCLK, HCLK)也在较高的时钟频率下工作,使处理器保持高性能并且外设传输速率也保持为高。使用期间所有外设也都保持正常的工作频率。

进入和退出该模式是软件可控的,实际由相应硬件完成。

(2)Active Mode

在Active模式下M4内核保持运行状态,时钟正常,并且指令正在运行。在这个模式下,所有使能的设备都被供电和时钟驱动以进行正常访问。同时,所有非调试Arm时钟(FCLK,HCLK)都是正常运行的。

要从Active模式转换到任何较低功耗模式,需要在M4核心上执行特定的指令序列。首先,必须设置ARMv7-M系统控制寄存器SCR中的特定位来确定要进入的模式。

在设置好系统控制寄存器SCR后,可以使用以下三种方法之一进入低功耗状态:

  • 执行等待中断(WFI)指令。
  • 执行等待事件(WFE)指令。
  • 设置SCR的SLEEPONEXIT位,使得从中断服务例程(ISR)退出后自动返回到睡眠状态。

在执行了其中一种方法(假设满足所有条件)后,M4将进入低功耗模式,并保持在该模式下,直到某个事件导致核心返回到活动模式。返回活动模式的可能原因包括:

  • 复位
  • NVIC接收到一个启用的中断
  • NVIC接收到一个事件
  • 从DAP接收到一个调试事件

(3)Sleep Mode

在Sleep模式下M4是上电的状态,但是时钟信号(HCLK、FCLK)被禁止传递给M4核心。换句话说,M4的处理器时钟被断开,因此M4不能执行任何指令。这种门控时钟的设计可以节省功耗,在特定条件下实现低功耗的待机模式。当M4需要唤醒时,时钟将被恢复,处理器开始正常运行。这种设计常用于嵌入式系统中,以提高能效。

(4)Deep Sleep Mode

在Deep Sleep模式下,M4会进入SRPG(Static Real Power Gated)模式,主要供电被切断,但寄存器中的状态数据(flops)仍然保持。此时时钟信号(HCLK、FCLK)是不活动的,SoC(System-on-Chip)中用于HCLK和FCLK的时钟源也可以被停用。

为了方便切断供电并进入SRPG模式,M4会与唤醒中断控制器和电源管理单元进行握手,设置可能的唤醒条件。这意味着M4会与相关模块进行通信,并共同商定在何种情况下可以唤醒M4。这些唤醒条件可以是外部中断信号、定时器到期、外部事件等。一旦满足了设置的唤醒条件,M4将被唤醒并恢复正常的运行状态。这种设计可以降低功耗,延长设备的待机时间,并确保在需要时能够及时唤醒M4以执行任务。

2. sleep模式和deepsleep模式的区别

M4的睡眠模式和深度睡眠模式有以下区别:

(1)能耗水平:睡眠模式和深度睡眠模式在功耗水平上有所不同。在睡眠模式下,M4仍然处于供电状态,尽管时钟被禁止,但一些功耗仍然存在。而在深度睡眠模式下,M4的主要供电被切断,功耗非常低,寄存器中的状态数据被保留。

(2)时钟状态:睡眠模式下,M4的时钟信号被禁止传递给M4核心,时钟处于门控状态。而在深度睡眠模式下,时钟信号是不活动的,SoC中的时钟源可以被停用。

(3)唤醒方式:睡眠模式下,M4可以相对较快地被唤醒,例如通过外部中断或定时器。而在深度睡眠模式下,M4主动与唤醒中断控制器和电源管理单元握手,并通过设置唤醒条件来进行唤醒。

(4)上下文保存:睡眠模式下,M4的上下文(寄存器的状态)被保留,可以快速恢复到睡眠前的状态。而在深度睡眠模式下,M4的上下文数据也被保存,但是主要供电被切断,需要重新初始化一些系统配置。

总的来说,睡眠模式适用于快速唤醒和低功耗要求不高的情况,而深度睡眠模式适用于要求更低功耗、保持状态数据的情况。不同的模式可以根据实际需求来选择以实现最佳的能效和性能平衡。

3. CPU电源管理

Apollo4 Blue Lite SoC上的电源管理是通过硬件和软件的组合处理的。

硬件部分负责处理调节器(regulators)与SoC内部各个电源域之间的接口和控制顺序。调节器是用来调节和稳定供电的电路组件,而电源域是指SoC内部的不同子系统或区域,它们可能有不同的供电要求。

软件部分通过处理器指令和系统级的电源控制命令来启动电源状态的转换。也就是说,软件负责通过指令或命令发出请求,硬件负责实际执行相应的电源转换操作。

整个电源管理系统由一个中央电源管理控制器(Power Management Controller)和各种针对每个主要子系统/域的电源管理单元(Power Management Unit,PMU)组成。其中,一些主要的PMU如下所示:

  • CPU-PMU:负责CPU子系统的电源顺序控制。CPU子系统包括处理器核心及其相关组件。
  • IO-PMU:负责每个I/O子系统的电源顺序控制。I/O子系统包括输入输出接口和相关外设。

通过这种结构,中央电源管理控制器和各个PMU协同工作,实现对SoC内不同子系统/域的电源管理和控制。这样可以确保各个子系统/域的电源状态得以管理,以实现功耗优化、能效提升和系统稳定性。

3.1 CPU-PMU

从Active Mode(活动模式)进入Deep Sleep Mode(深度睡眠模式)的过程。在这个过程中,CPU-PMU(CPU功耗管理单元)管理Cortex-M4核心中寄存器的状态保持能力,并根据需要控制与电压稳压器的接口,以支持CPU的各种操作模式。进入Deep Sleep Mode后,CPU-PMU与唤醒中断控制器一起等待唤醒事件的发生。当观察到事件时,CPU-PMU通过重新启用芯片上的电压稳压器和恢复CPU寄存器状态开始功耗恢复过程。只有当所有状态准备就绪后,M4才会恢复到活动模式中。

CPU-PMU支持以下Arm Cortex-M4定义的功耗模式:

  • OFF(关闭)
  • Deep Sleep(深度睡眠)
  • Sleep(睡眠)
  • Active(活动)

在Active模式下,M4的工作频率可以选择为低功耗/高效能模式下的96 MHz,或者高性能模式下的192 MHz。

3.2 IO-PMU

主要介绍了IO-PMU(输入输出功率管理单元)对I/O子系统的电源状态进行管理的功能。每个I/O子系统都支持以下电源模式。需要注意的是,每个I/O子系统可能有不同的实现方式来定义每个具体的电源状态。这是针对每个I/O控制器的具体实现方式。此外,并非每个IO-PMU都支持所有的电源模式(典型配置可能只支持OFF和Active LP两种)。具体的电源模式包括:

  • OFF:设备处于关闭状态;
  • Sleep:设备处于启用但没有活跃事务的状态;
  • Active:设备处于活跃状态,可以进行数据传输和交互。 需要根据具体的IO-PMU和I/O子系统的实际配置和支持情况来确定使用哪种电源模式。

3.3 Power Management Controller

电源管理控制器为每个供电调节器以及数字逻辑控制下的主要电源门提供控制功能。电源管理控制器(PWRCTL)接收来自所有电源管理单元(PMU)的输入,指示所需的电源电平,并通过软件(通过电源管理控制寄存器)进行控制。还提供了电源管理映射配置(从INFO1复制到PWRCTL),根据输入的电源请求来确定调节器接口的功能操作。该映射配置允许电源管理功能可编程化,可进行特性化、调优和/或错误修复。以下是供电调节器接口:

  • SIMO降压器
  • 核心低压差稳压器(LDO)
  • 存储器低压差稳压器(LDO)

PWRCTL还负责控制所有数字电源域的电源门使能。根据功率水平请求来控制电源门使能。当来自相应请求的PMU请求一个“关闭”电平,或通过软件进行强制关闭请求,或对于I/O请求者,当相应的I/O设备使能被取消时,相应的电源门使能被激活以关闭该域。对于其他功率级别请求,电源门被禁用以上电相应的域。

SRAM和NVM的电源域是基于依赖的请求域来进行控制的。对于NVM,如果所有的CPU PMU请求者都是“关闭”,而DMA请求者是“关闭”或“睡眠”,则NVM电源域将被关闭。对于SRAM,每个SRAM基于SKU存储器配置或者如果所有的CPU PMU请求者都是“关闭”,而DMA请求者是“关闭”或“睡眠”,并且基于功耗控制MEMPWDINSLEEP配置启用SRAM电源关闭。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/16014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】以图搜索- 2021sota repVgg来抽取向量 + facebook的faiss的做特征检索, 从环境搭建到运行案例从0到1

文章目录 前言安装小试牛刀用repVgg抽取向量构建Faiss索引进行相似性搜索本项目延伸其它项目拓展总结 前言 Faiss的全称是Facebook AI Similarity Search。 这是一个开源库,针对高维空间中的海量数据,提供了高效且可靠的检索方法。 暴力检索耗时巨大&a…

最全的3D动画软件介绍来了!良心总结9款3D动画制作必备软件

现在,市面上流行着的3D动画软件如此之多,以至于很难敲定到底哪一款更适合自己或自己的团队。本篇文章带来了一些热门的、被视为行业标准的3D动画软件的介绍,帮助您更好地做出选择。 不仅如此,您还能从文章中了解到在数字内容创建…

html/javascript-表格的创建和使用

html中表格的创建和使用 一 摘要二 使用html table标签创建表格(在html文件中)三 使用javascript创建表格(在js文件中)四 表格属性的设置:4.1. 右边框的设置:4.2. 只给表格单元格加右边框4.3. 动态设置右边…

费舍尔线性分辩分析(Fisher‘s Linear Discriminant Analysis, FLDA)

费舍尔线性分辩分析(Fisher’s Linear Discriminant Analysis, FLDA) 目录 费舍尔线性分辩分析(Fishers Linear Discriminant Analysis, FLDA)1. 问题描述2. 二分类情况3. 多分类情况4. 代码实现4.1 二分类情况4.2 多分类情况 5. 参考资料 1. 问题描述 为解决两个或多个类别的…

PS - Photoshop 抠图与剪贴蒙版功能与 Stable Diffusion 重绘

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131978632 Photoshop 的剪贴蒙版是一种将上层图层的内容限制在下层图层的形状范围内的方法,也就是说,上层图层只能在下层图…

【备战csp-j】 csp常考题型详解(1)

一.计算机基础知识 1. 微型计算机的问世是由于( ) 的出现。 A.中小规模集成电路 B.晶体管电路 C.(超)大规模集成电路 D.电子管电路 答案: C 解析: 年代 元件 第一代 1946-1958 电子管 第二代 1959-1964 晶体管 …

32.选择器

选择器 html部分 <div class"toggle-container"><input type"checkbox" id"good" class"toggle"><label for"good" class"label"><div class"ball"></div></label&…

云原生训练营课程大纲

第一部分&#xff1a;Go 语****言基础 模块一&#xff1a;Go 语言特性 教学目标&#xff1a; 理解 Go 语言基本语法 理解 Go 语言常用数据类型 理解 Go 语言常用小技巧 深入理解 Go 语言的多线程编程 针对的用户痛点&#xff1a; 云原生从业者因为未熟练掌握 Go 语言&#…

bash sh 和 ./ 的区别

bash&#xff1a; 这是Bash shell的解释器。当你使用bash script.sh运行脚本时&#xff0c;你是在告诉系统使用Bash解释器来执行脚本。这意味着脚本中的所有Bash特性都可以使用。 sh&#xff1a; 这是Bourne shell的解释器。当你使用sh script.sh运行脚本时&#xff0c;你是在告…

HTML的基础知识

HTML&#xff08;超文本标记语言&#xff09;是一种用于创建网页的标记语言。它提供了一套标记&#xff08;标签&#xff09;和元素&#xff08;元素&#xff09;的规范&#xff0c;用于描述网页结构和内容的呈现方式。HTML 文件是由一系列的标签组成&#xff0c;这些标签用于定…

uni-app云打包(android)(自有证书、云端证书、公共测试证书)

一、进入云打包入口 发行->原生App-云打包 二、证书选择 1、使用自有证书 ①进入香蕉云编&#xff08;这里采用的证书从香蕉云编进行生成&#xff09; 香蕉云编-app打包上架工具类平台 ②进入页面选择“生成签名证书”->"立即创建证书" ③选择“安卓证书生…

数字人会成为文旅行业的新增量吗?写实数字人定制包含哪些技术?

近年来&#xff0c;各大文旅机构均在围绕数字人展开了文旅营销创作&#xff0c;凭借着写实数字人定制技术&#xff0c;将数字人的人设、功能以及才艺得到创新&#xff0c;并由此在文旅形态上展开了诸多尝试。 比如会唱山歌多才多艺的数字人刘三姐&#xff0c;使用多种语言推介…

OrderApplication

目录 1 OrderApplication 2 /// 获提交订单页面数据 2.1.1 //设置会员信息 2.1.2 //获取订单商品信息 2.1.3 //获取收货地址 2.1.4 //发票信息 OrderApplication#region web公共方法

windows环境下adb 下载和配置,连接手机。

ADB下载地址&#xff1a; https://adbdownload.com/ 选择下载windows系统的。 下载后解压&#xff0c;查看adb.exe所在的目录&#xff0c;如下 这里将路径复制下来&#xff1a;D:\ADB 配置到系统环境变量中。 然后再打开cmd&#xff0c;输入adb version查看版本。 出现…

ThinkPHP8知识详解:ThinkPHP8是什么?

欢迎你来到PHP服务网学习最新的ThinkPHP8开发教程&#xff0c;本文介绍一下ThinkPHP8是什么&#xff1f; 1、ThinkPHP8是ThinkPHP框架的最新版本&#xff0c;它在之前版本的基础上进行了改进和优化。它采用了现代化的设计理念和架构&#xff0c;提供了更好的性能和更丰富的功能…

【机器学习】Linear Regression

Model Representation 1、问题描述2、表示说明3、数据绘图4、模型函数5、预测总结附录 1、问题描述 一套 1000 平方英尺 (sqft) 的房屋售价为300,000美元&#xff0c;一套 2000 平方英尺的房屋售价为500,000美元。这两点将构成我们的数据或训练集。面积单位为 1000 平方英尺&a…

【ubuntu|内核】ubuntu 22.04修改内核为指定版本

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 ubuntu 22.04 安装指定内核 1. 正文 查看已安装的内核镜像 dpkg --get-selections | grep linux-image1.1 安装指定版本的内核 安装镜像 sudo apt-g…

41. linux通过yum安装postgresql

文章目录 1.下载安装包2.关闭内置PostgreSQL模块:3.安装postgresql服务:4.初始化postgresql数据库:5.设置开机自启动:6.启动postgresql数据库7.查看postgresql进程8.通过netstat命令或者lsof 监听默认端口54329.使用find命令查找了一下postgresql.conf的配置位置10.修改postgre…

date日期相关操作汇总

一、若表中date字段存储形式为&#xff1a;2021-05-16 在表中找到2021年8月份数据的方法 方法1. like 语法&#xff1a;where date like 2021-08%; 前面能匹配上的就是2021年8月份。 方法2. year,month函数&#xff08;mysql中有&#xff0c;oracle中不确定&#xff09; 语法&…

基于Java+SpringBoot制作一个学生公寓管理小程序

制作一个学生公寓管理小程序,旨在优化和简化学生公寓的日常管理工作。该系统涵盖了各种功能模块,以满足学生住宿的需求,同时提供方便、高效的管理方式,该系统包含用户管理、卫生评比、来访登记、宿舍报修等模块。 一、小程序1.1 项目创建1.2 首页轮播图快捷导航iconfont图标…