S32K3学习笔记_电源管理

news2024/9/27 9:28:57

S32K3学习笔记_电源管理

1、缩略词

PMC:Power Management Controller,电源管理控制器

FPM:Full Performance mode,全性能模式

LPM:Low Performance mode,低性能模式

LPCMP:低功耗比较器

SIRC:slow internal reference clock,慢速内部参考时钟

FIRC:fast internal reference clock,快速内部参考时钟

SXOSC:slow external oscillator,慢速外部晶振

FXOSC:fast external oscillator,快速内部晶振

RGM:Reset Generation Module

MC_RGM:Ensures a clean state and Run domain sanity by controlling the reset sequence

WKPU:Wake Up Unit,唤醒单元

PCU:Power Control Unit,电源控制单元

MC_PCU:Controls entry into and exit from Low-Power mode,控制进入和退出低功率模式

PIT:Periodic Interrupt Timer (PIT),周期性中断定时器

RTI:Real Time Interrupt,时时中断

RTC:real Time Clock (RTC),实时时钟

DCM:设备配置模块(DCM)

2、前言

芯片在某些对电源功耗要求严苛的条件下或者以较长时间周期工作时,需要使用电源管理,使芯片进入低功耗的模式以达到节能的效果。想要学习S32K312的电源管理,首先需要思考以下几个问题

1.S32K312有几种工作模式? 2
2.S32K312各工作模式下允许运行哪些外设? adc等
3.S32K312在低功耗的模式下唤醒后程序从哪里运行? 从main开始
4.S32K312降低功耗有哪些思路方法? 降低时钟频率,进入低功耗模式

3、S32K312的电源模式

S32K1xx有Run、Sleep、Deep Sleep三种电源状态,是因为S32k1xx使用的ARM Cortex M4的内核,其内核就规定了这三种电源模式:

Run:正常工作模式,允许PLL 倍频,内核、系统、总线频率运行在芯片的最高频率,功耗可达数十mA–上百mA
Sleep:普通睡眠模式,大部分外设停止工作,内核、系统和总线部分关闭或降频工作,功耗可降至几个mA
Deep Sleep:深度睡眠,几乎所有外设停止工作、NVIC停止工作,内核、系统和总线关闭,CPU内核停止工作,仅AWIC(异步唤醒中断控制器)这个用于唤醒的外设保持功能,功耗仅几十个uA。
ARM cortex M系列内核进入低功耗模式是通过CPU执行汇编指令WFI(Wait for Interrupt)或者WFE(Wait for Event)完成。

S32K312不同于S32K1xx,它只有两种工作模式:RUN和Standby模式。
在这里插入图片描述

RUN模式(FPM):与待机模式相比,主运行模式具有全性能和更高的电流消耗。

Standby模式(LPM):关闭Run域的芯片的低性能模式。大多数核心和外围设备在此模式下关闭。

4、S32K312两种模式下允许运行哪些外设

在这里插入图片描述

由上图Power management system可以看出:

RUN模式中所有外设都可以运行,时钟是能够以160MKz运行的;而Standby模式下锁相环PLLDIG是关闭了的,因此需要再开一组时钟源为FIRC的时钟作为Standby模式下的时钟。如下图:
在这里插入图片描述

在Standby中允许的外设包括定:PIT_0、RTC等模块以及SIRC、FIRC、SXOSC时钟。

RUN模式
在这里插入图片描述

Standby模式
在这里插入图片描述

5、S32K312从Standby模式唤醒后程序从哪里开始

由上图‘Power management system’可以看出,在Standby模式中Flash memory是挂掉了的,因此在Standby模式唤醒之后程序是从启动代码开始运行,相当于进行了一次Reset,程序重新从main()开始运行。

6、S32K312降低功耗两种思路方法

S32K312只有两种工作模式,RUN模式和Standby模式,因此降低功耗可以有以下两种方式

6.1、降低时钟频率

在RUN模式下,降低时钟继续运行,以此来降低功耗

优点:还可以继续运行外设,例如ADC等
缺点:功耗降低效果不明显

6.2、进入Standby模式

进入Standby模式,以此来降低功耗

优点:功耗降低效果明显
缺点:Standby模式中允许运行的外设少;唤醒基本等价于复位,会丢失历史数据,可以将数据写入flash中解决

7、电源管理的配置

软件平台:S32 Design Studio for S32 Platform

Version3.4

SDK VersionPlatformSDK_S32K3_2022_03

1.配置两种工作模式

1.1为Standby模式增加一个以FIRC为时钟源的时钟

在这里插入图片描述

1.2根据需要的外设在Standby组时钟中选择开启哪些功能的时钟(注:WKPU外设时钟一定要开启)

在这里插入图片描述

1.3在Drivers的POWER模块中增加STANDBY模式(注:STANDBY模式就是待机模式,涵盖了上面几个xxx_STANDBY)

Drivers层是POWER模块配置芯片的工作模式,MCAL层是在MCU模块中配置芯片工作模式。需要注意的是MCAL层的MCU还能配置时钟组等功能,开启MCU模块后也要在MCU中对应配置出刚刚添加的Standby时钟组才能生成时钟的源码。

在这里插入图片描述

1.4选择开启需要外设的时钟(注:同样必须开启WKPU外设)
在这里插入图片描述

1.5RUN模式的配置也是一样的

在这里插入图片描述

2.进入各工作模式
进入各工作模式步骤主要为两步:先初始化时钟,然后进入对应模式。用到的只有两条函数。

在这里插入图片描述

在进入Standby模式之前需要先初始化Wkpu模块和Standby时钟,然后进入Standby模式

在这里插入图片描述

在Standby模式中可以使某些IO电平继续工作

在这里插入图片描述

例如需要使PTC6在Standby模式中保持高电平
在这里插入图片描述

只需在进入Standby模式之前进行如下配置

在这里插入图片描述

3.低功耗唤醒配置
根据数据手册可知,退出Standby Mode的条件有三个:

MC_RGM functional reset event
MC_RGM destructive reset event
WKPU wake-up events, WKPU[0]–WKPU[63]

我们使用event进行唤醒。S32K3xx总共有60个外部引脚中断唤醒源,以及内部的SWT ,RTC ,LPCMP以及RTI四个唤醒源

在这里插入图片描述

3.1唤醒事件设置-RTI

3.1.1在Drivers的Rit模块中选择PIT_0的CH_RTI通道

在这里插入图片描述

3.1.2勾选’GPT Stanbdy Wakeup Support’选项

在这里插入图片描述

3.2唤醒事件设置-RTC

3.2.1在Drivers的Rtc模块中选择RTC时钟源,时钟源为32KHz SIRC

在这里插入图片描述
在这里插入图片描述

3.2.2勾选’GPT Stanbdy Wakeup Support’选项

在这里插入图片描述

3.3唤醒事件设置-SWT

3.3.1在Drivers的Swt模块中使能Standby模式下的运行,设定超时时间
在这里插入图片描述

3.4WKPU模块设置

3.4.1在Drivers的Wkpu模块中增加对应的唤醒通道,并使能中断
在这里插入图片描述

3.4.2选择对应唤醒通道

在这里插入图片描述

3.4.3绑定唤醒通道,设置触发边沿
在这里插入图片描述

电源管理的配置项就只有上述这些,接下来自己实现一个小功能:

将MCU串口1与电脑连接,MCU上电进入RUN模式空循环,一旦MCU串口1接收到数据就进入低功耗模式。同时串口1的rx引脚作为唤醒源,当MCU在Standby模式中一旦检测到串口1rx引脚电平有上升沿变化就执行唤醒工作,重新进入RUN模式

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

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

相关文章

C语言单链表

本节目标: ①定义单链表结构体 ②初始化单链表 ③单链表增加结点(头插法、尾插法) ④删除指定结点 ⑤打印输出 目录 导入头文件 定义单链表结构体 初始化单链表 头插法 尾插法插入 删除指定结点 打印单链表 全部代码展示 导入头文件 …

NP完全性PART1:多项式时间与形式化语言体系

算法导论第三版,CH34笔记 NP完全性 Chapter Introduction 一般来说,我们认为可以在多项式时间内求解的问题是易处理的问题,在超多项式时间内解决的问题是不易处理的问题。 下面列出的几对问题,前者可以用多项式时间算法求解&…

MATLAB 点云法向量计算与可视化 (9)

MATLAB 点云法向量计算与可视化 (9) 一、实现效果二、算法介绍三、函数说明四、具体代码(注释详细)一、实现效果 红色线即代表该点位处的法向量计算结果 二、算法介绍 用于拟合局部平面的法线,以 M 乘3或 M 乘 N 乘3矩阵的形式返回。法向量由 k 值定义的邻域数局部计算。…

Packet Tracer - 配置 IP ACL 来缓解攻击

Packet Tracer - 配置 IP ACL 来缓解攻击 拓扑图 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 交换机端口 R1 G0/1 192.168.1.1 255.255.255.0 不适用 S1 F0/5 S0/0/0 (DCE) 10.1.1.1 255.255.255.252 不适用 不适用 R2 S0/0/0 10.1.1.2 255.255.255…

10款UML建模工具更新(2023.4)Software Ideas Modeler 、Rhapsody、Papyrus

最近一段时间更新的工具有: 工具最新版本:Software Ideas Modeler 13.99 更新时间:2023年4月17日 工具简介 轻量级建模工具,支持UML、BPMN、SysML。 平台:Windows 获得地址 https://www.softwareideas.net/en/do…

java学习之异常二

目录 一、异常处理机制 一、try-catch-finally 二、throws 二、try-catch 异常处理使用细节 三、try-catch-finally练习 第一题 第二题 第三题 第四题 一、异常处理机制 共有两种异常处理机制 一、try-catch-finally 处理机制图示 二、throws 关于第二点,如E…

Linux性能分析工具perf和火焰图使用方法

简介 perf是linux上的性能分析工具,perf可以对event进行统计得到event的发生次数,或者对event进行采样,得到每次event发生时的相关数据(cpu、进程id、运行栈等),利用这些数据来对程序性能进行分析。 perf可以统计或采样的event有…

JVM学习随笔02——虚拟机内存区组成与内存溢出异常

一、Java虚拟机内存区组成图 1、程序计数器: 每个线程独占一个计数器,用来指示该线程下一条要执行的指令的地址。这一部分不会导致内存异常。PS:如果一个线程进入的是一般的Java方法,计数器指示的是下一条指令地址;如果…

taro小程序中如何引入css_moudle?配置后不生效的解决方法

1.根据文档Taro配置 编译配置存放于项目根目录下的 config 目录中,包含三个文件: index.js 是通用配置dev.js 是项目预览时的配置prod.js 是项目打包时的配置 参考Taro官网,我们要做的是:找到项目根文件夹下的 config 文件&…

【Android车载系列】第12章 车载渲染-SurfaceFlinger单独绘制到界面

1 SurfaceFlinger渲染方案 车载的倒车影像同学们知道是怎么实现的吗?等待Android设备开机再打开倒车影像App?车子挂到R档倒车如果等待这个流程实在太久,是否还有其它办法可以让车子挂R档直接展示倒车影像呢?大家思考一下。 我们从…

opencv_c++学习(四)

图像在opencv中的存储方式 在上图中可以看出,在opencv中采用的是像素值来代表每一个像素三通道颜色的深浅。 Mat对象 Mat对象是在OpenCV2.0之后引进的图像数据结构、自动分配内存、不存在内存泄漏的问题,是面向对象的数据结构。分了两个部分&#xff0…

Graph—随机游走

Random Walk Approaches for Node Embeddings 一、随机游走基本概念 想象一个醉汉在图中随机的行走,其中走过的节点路径就是一个随机游走序列。 随机行走可以采取不同的策略,如行走的方向、每次行走的长度等。 二、图机器学习与NLP的关系 从图与NLP的…

《计算机网络—自顶向下方法》 第二章Wireshark实验:HTTP协议分析

HTTP 协议工作于客户端-服务端架构上。浏览器作为 HTTP 客户端通过 URL 向 HTTP 服务端即 WEB 服务器发送所有请求。 WEB 服务器有:Apache服务器,IIS服务器(Internet Information Services)等。URL:即统一资源定位符(…

手写自己的Springboot-1-整合tomcat

文章目录 创建自己的Springboot创建项目注册、启动Spring容器启动tomcat 引用测试 创建自己的Springboot 首先明确本文章想要达到的目的,就是引入我们自己写的Springboot项目的依赖,无需配置,就可以达到处理普通请求的效果. 这里有一个非常简单的Springboot项目,项目里面就只…

将 Segment Anything 扩展到医学图像领域

文章目录 前言技术交流SAM 拆解分析从医学角度理解 SAM 的效用MedSAM实验总结 前言 SAM 是一种在自然图像分割方面取得成功的模型,但在医学图像分割方面表现不佳。MedSAM 首次尝试将 SAM 的成功扩展到医学图像,并成为用于分割各种医学图像的通用工具。为…

22.网络爬虫—APP数据抓取详讲

网络爬虫—APP数据抓取详讲 Fiddler工作原理安装完成Fiddler后的配置前提条件工具配置 手机数据抓取Fiddler手机端配置手机端操作 实战演示后记 前言: 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️:Python领域新…

springboot+mybatis搭建maven多模块工程

最近看了一篇博客,选定springbootmybatis作为框架,在idea中搭建maven的多模块工程,下面也再温习一下,并将搭建过程分享出来,供小伙伴们参考。 1、开发工具及系统环境 Idea 2020.3系统环境为win10mysql5.7springboot2.…

GNN学习/GCN学习/GNN环境配置cuda安装/GCN代码展示

参考: A Gentle Introduction to Graph Neural Networks https://distill.pub/2021/gnn-intro/Understanding Convolutions on Graphs https://distill.pub/2021/understanding-gnns/Graph neural networks: A review of methods and applications https://arxiv.org/pdf/1812…

【Java】认识异常

目录 1.异常概念和分类 2.异常的抛出 3.异常的捕获 3.1异常声明throws 3.2异常捕获try-catch 3.3finally 3.4.异常的处理流程 4.自定义异常类 1.异常概念和分类 public class Test {public static void test() {test();}public static void main(String[] args) {Sy…

详解数据集safety-pilot-model-deployment-data

safety-pilot-model-deployment-data这个数据集是由美国交通部的联邦航空管理局(FAA)和交通运输部(DOT)主导的“安全试点”(Safety Pilot Model Deployment)项目所提供的。该项目旨在研究汽车与飞机之间的通…