发布时间:2026/7/13 8:35:55
MPC5744P (四)模式管理MC_ME 该章节位于手册第59章有芯片功耗优化需求、多种模式 运行需求的小伙伴可以着重研究这一章节。MC_MEMode Control / Mode Entry是MPC5744P 等 NXP 汽车级 MCU 的模式控制单元是芯片电源域、时钟域、低功耗管理的 “总开关”。简单来说它是整个芯片的 “状态机管理员”负责定义芯片所有的运行模式如正常运行、低功耗待机、深度休眠等控制模式之间的切换时序与条件管理不同模式下的电源域、时钟域的启用 / 禁用提供寄存器接口供应用程序配置和查询状态一MC_ME简介该模板框图如图所示MC_ME 模块具备以下特性通过ME_ME寄存器控制可用的工作模式使能和禁用工作模式通过ME__MC寄存器定义多种芯片模式配置配置某一种工作模式的时钟、功耗、模块使能通过ME_MCTL寄存器控制芯片的当前工作模式用于切换工作模式的寄存器通过ME_GS寄存器的内容捕获当前模式及各类资源状态看状态用的可选择生成多种模式切换中断为各类无效模式切换原因提供状态位基于ME_RUN_PC0…7、ME_LP_PC0…7及ME_PCTLn寄存器实现外设时钟门控控制关联时钟的、多种组合基于ME_CCTLn与ME_CADDRn寄存器实现额外核心时钟门控与启动地址控制捕获当前外设及额外核心时钟的门控 / 使能状态在低功耗模式与高功耗模式之间切换时支持系统时钟的渐进式切换双向切换均适用二各种模式及切换条件MC_ME 模块基于多种芯片模式实现这些模式对应芯片不同的使用场景。每种模式均可配置可定义对应的功耗与算力管理策略以适配特定的系统需求。应用程序可根据系统当前的需求在不同模式间轻松切换。MC_ME 控制的工作模式分为系统模式与用户模式两类系统模式包括 RESET复位、DRUN深度运行、SAFE安全、TEST测试用于简化系统的配置与监控。用户模式包括 RUN0…3运行模式 0~3、HALT0暂停模式 0、STOP0停止模式 0可根据应用在功耗管理与可用算力方面的需求进行配置。其中DRUN、SAFE、TEST 及 RUN0…3 模式属于芯片的软件运行模式。模式状态机如下图所示还有所有模式之间切换的条件1RESET模式芯片会在以下事件发生时进入该模式当ME_MCTL寄存器的TARGET_MODE位域写入0000功能型复位或1111破坏性复位时从 SAFE、DRUN、RUN0…3 或 TEST 模式进入当系统因不可恢复硬件故障由MC_RGM模块触发系统复位时从任意模式进入详见MC_RGM章节。切换到该模式的过程是瞬时完成的系统将保持在此模式直到复位序列执行完毕。该模式的配置信息由ME_RESET_MC寄存器提供拥有预定义配置并默认选择16 MHz 内部 RC 振荡器作为系统时钟。2DRUN模式芯片会在以下事件发生时进入该模式复位序列完成后自动从 RESET 模式进入当ME_MCTL寄存器的TARGET_MODE位域写入0011时从 RUN0…3、SAFE 或 TEST 模式进入上述任一事件发生后都会生成 DRUN 模式转换请求。该模式的配置信息由ME_DRUN_MC寄存器提供。在此模式下Flash、所有时钟源和系统时钟配置均可由软件按需控制。系统复位后软件执行将以默认配置启动选择16MHz 内部 RC 振荡器作为系统时钟。除系统时钟源 0 外其他时钟源配置可由 Flash 中预加载的信息决定该信息会在复位序列的 PHASE3 阶段加载到ME_DRUN_MC寄存器中。此模式主要供软件用于根据系统需求初始化所有寄存器注意如果在此模式下 Flash 被配置为低功耗或掉电状态软件必须确保代码在切换到该模式前已从 RAM 中执行。3SAFE模式芯片会在以下事件发生时进入该模式当ME_MCTL寄存器的TARGET_MODE位域写入0010时从除 RESET 以外的任意模式进入当系统出现可恢复硬件故障由MC_RGM模块生成 SAFE 模式请求时从除 RESET 以外的任意模式进入详见MC_RGM章节注意若复位过程中收到硬件 SAFE 模式请求根据请求发生的时机不同SAFE 模式可能在复位序列正常完成后立即进入也可能在进入 DRUN 模式后的几个系统时钟周期后进入。SAFE 模式请求本身不会影响复位序列的执行。上述任一事件发生后都会生成 SAFE 模式转换请求。该模式的配置信息由ME_SAFE_MC寄存器提供拥有预定义配置并默认选择16MHz 内部 RC 振荡器作为系统时钟。如果在其他模式转换过程中软件发起 SAFE 模式请求那么无论转换过程中存在其他待处理请求或新请求新的目标模式都将变为 SAFE 模式。在向 SAFE 模式转换的过程中任何新的模式请求都不会触发无效模式中断。注意如果软件请求切换到 SAFE 模式且在模式转换完成前又请求切换回原模式那么模式转换结束后芯片最终仍将处于 SAFE 模式并会触发无效模式转换中断。只要 SAFE 事件处于激活状态系统就会一直保持在 SAFE 模式期间任何软件模式请求都会被忽略并丢失。此模式主要供软件用于评估故障原因的严重程度并选择通过 DRUN 模式重新初始化芯片或通过 RESET 模式完全复位芯片。如果进入该模式时需要将系统 IO 输出强制为高阻态应设置ME_SAFE_MC寄存器的PDO位输入电平则保持不变。4TEST模式芯片会在以下事件发生时进入该模式当ME_MCTL寄存器的TARGET_MODE位域写入0001时从 DRUN 模式进入上述事件发生后将生成 TEST 模式转换请求。该模式的配置信息由ME_TEST_MC寄存器提供。在此模式下除主稳压器外系统的所有资源均可配置。通过将SYSCLK位域设置为1111可以停止整个系统的系统时钟在这种情况下退出该模式的唯一方式是芯片复位。此模式主要供软件用于执行软件测试例程注意如果在此模式下 Flash 被配置为低功耗或掉电状态软件必须确保代码在切换到该模式前已从 RAM 中执行。5RUN0...3模式芯片会在以下事件发生时进入这些模式之一当ME_MCTL寄存器的TARGET_MODE位域写入0100…0111时从 DRUN 模式或其他 RUN0…3 模式进入当发生中断事件时从 HALT0 模式进入当发生中断或唤醒事件时从 STOP0 模式进入。上述任一事件发生后都会生成 RUN0…3 模式转换请求。这些模式的配置信息由ME_RUN0…3_MC寄存器提供。在这些模式下Flash、所有时钟源和系统时钟配置均可由软件按需控制。这些模式主要供软件用于执行应用程序例程。注意如果在此模式下 Flash 被配置为低功耗或掉电状态软件必须确保代码在切换到该模式前已从 RAM 中执行。6HALT0模式芯片会在以下事件发生时进入该模式当ME_MCTL寄存器的TARGET_MODE位域写入1000时从 RUN0…3 模式进入。上述事件发生后将生成 HALT0 模式转换请求。该模式的配置信息由ME_HALT0_MC寄存器提供。此模式可配置性较强应根据系统需求对ME_HALT0_MC寄存器进行编程。Flash 可按需设置为低功耗或掉电模式。如果在中断请求处于激活状态时收到 HALT0 模式请求HALT0 模式转换将被中止芯片保持当前模式收到 SAFE 模式请求则进入 SAFE 模式复位时则进入 DRUN 模式且不会生成无效模式中断。如果 HALT0 模式转换请求与中断请求同时发生系统可能出现挂起需要上电复位才能恢复。应用软件应避免这种可能导致系统挂起的场景。在进入 HALT0 模式前应用软件应禁用所有中断若软件难以实现此操作则应确保所有可能产生中断的事务已完成且所有中断已被处理完毕再发起 HALT0 模式转换请求。因此从 HALT0 模式唤醒应始终由外部中断触发而非外设模块的内部中断。此模式是一种一级低功耗模式具有以下特点内核时钟冻结附加内核时钟也冻结在系统 HALT0 模式下XBAR 主机无法工作因为它们被时钟门控关闭。此外如果在调试器连接时发起模式转换应启用 NPC非侵入式调试仅少数外设保持运行软件可利用此模式等待任务触发并在中断事件发生后快速响应即在几个系统时钟周期内完成响应。注意软件在退出 HALT0 模式时应确保ME_GS寄存器中的S_MTRANS位已被清零以保证在执行关键代码前前序 RUN0…3 模式的配置已完全恢复这是良好的开发实践。7STOP0模式芯片会在以下事件发生时进入该模式当ME_MCTL寄存器的TARGET_MODE位域写入1010时从 RUN0…3 模式进入。上述事件发生后将生成 STOP0 模式转换请求。该模式的配置信息由ME_STOP0_MC寄存器提供。此模式完全可配置应根据系统需求对ME_STOP0_MC寄存器进行编程。在此模式下以下时钟源会被关闭主 PLL锁相环次 PLL锁相环Flash 存储器可按需设置为掉电模式。如果在任何中断或唤醒事件处于激活状态时收到 STOP0 模式请求STOP0 模式转换将被中止芯片保持当前模式并会生成无效模式转换中断中断原因标记为S_MRIG模式请求被忽略。如果正在向 SAFE 模式转换时收到 STOP0 模式请求也会生成S_MRIG中断如果正在向 DRUN 模式转换复位场景则不会生成中断。在尝试进入 STOP0 模式前软件应正确禁用所有不打算用作唤醒源的中断。如果 STOP0 模式转换请求与中断请求同时发生系统可能出现挂起需要上电复位才能恢复。应用软件应避免这种可能导致系统挂起的场景。在进入 STOP0 模式前应用软件应禁用所有中断若软件难以实现此操作则应确保所有可能产生中断的事务已完成且所有中断已被处理完毕再发起 STOP0 模式转换请求。因此从 STOP0 模式唤醒应始终由外部唤醒 / 中断触发而非外设模块的内部中断。此模式是一种高级低功耗模式具有以下特点内核时钟冻结附加内核时钟冻结在系统 STOP0 模式下XBAR 主机无法工作因为它们被时钟门控关闭。此外如果在调试器连接时发起模式转换应启用 NPC非侵入式调试几乎所有外设停止运行软件可利用此模式等待任务触发且无需快速响应例如等待系统时钟源重新启动。此模式可用于关闭所有时钟源从而保存芯片状态。退出 STOP0 模式时系统会先选择 16MHz 内部 RC 振荡器作为系统时钟直到目标时钟源可用。注意软件在退出 STOP0 模式时应确保ME_GS寄存器中的S_MTRANS位已被清零这是良好的开发实践。三寄存器MC_M模块的所有寄存器如下图所示我们主要关注这个地方需要注意的是片上外设对应的外设控制寄存器编号表在后续我们要给片上外设开时钟的时候就是对照这个表的编号使能对应的MC_ME_PCTL编号寄存器1MC_ME_GS全局状态寄存器查询全局状态可以用来确认是否正确进入目标模式和系统时钟是否切换完成while(ME.GS..B.S_CURRENTMODE ! 0x4); /*wait MCU totransmit to RUN0 mode*/注意以上语句对于在将Flash设置为掉电模式的时候不适用因为Flash处于掉电模式(power-downmode)不能正常工作所以不能运行放置在Flash的上述查询代码。2MC_ME_MCTL芯片模式切换控制寄存器该寄存器用于触发软件控制的模式切换。为了确保模式切换请求成功需确保在MC_ME_ME使能了目标模式使能RUN1-3、TEST、HALT0、STOP0其他模式默认使能下面举个例子MC_ME.MCTL.R 0x30005AF0; MC_ME.MCTL.R 0x3000A50F;上面的代码就是如下图配置的TARGET_MODE挺好理解的主要是看下KEY部分配置目标模式要配置两次寄存器第一次KEY为0x5AF0第二次KEY为0xA50F理解一下在手的59.4.1中也有解释3MC_ME_ME芯片模式使能寄存器该寄存器用于禁用芯片中特定应用场景下不需要的模式。RUN1-3、TEST、HALT0、STOP0是默认被禁用的如果要启用该位配置为1即可。其中RESET_FUNC、SAFE、DRUN、RUN0和RESET_DEST模式始终处于使能状态无法被禁用。4MC_ME__MC对应配置寄存器每种模式都有一个对应的寄存器如下图挑一个最常用的默认进入的工作模式来举例MC_ME_DRUN_MC该寄存器可以指示功耗等级、IO下电、指示主电压渐进调节状态、控制Flash下电、控制PLL、PLL1、XOSCON使能、选择系统时钟。例如MC_ME.DRUN_MC.R 0x001300F4;对应寄存器配置如下图开启了PLL、PLL1、XOSCON使能、系统时钟选择了secondary PLL也就是PLL1_PHI。5MC_ME_RUN_PCn外设运行模式配置寄存器通过外设运行模式配置寄存器ME_RUN_PC0..7使能8种不同外设运行状态配置下各种模式外设时钟是激活(Active)还是冻结(Frozen)。默认各种运行模式下外设时钟都是冻结的也就是不允许其正常工作。所以为了让外设在目标运行模式下正常工作必须将其相应的位设置为1(Active)。MC_ME_RUN_PCn寄存器可以配置各模式是否激活外设来达到不同外设分配不同的方案的目的可以把这个寄存器理解成在芯片模式和外设时钟门之间架起了一座桥梁置于不同的芯片模式要开哪些外设就取决于这个桥梁怎么关联了。6MC_ME_LP_PCn外设低功耗模式配置寄存器这个跟MC_ME_RUN_PCn寄存器原理是一样的只不过这个是低功耗模式下的对应STOP0和HALT0。7MC_ME_PCTL编号外设控制寄存器这个外设控制寄存器的功能就是选择自己要走哪座“桥”。四示例1疑问与解答我原先总在思考这个MC_ME_RUN_PCn的n是什么意思为什么要有多个寄存器以及示例代码中为什么要将MC_ME_RUN_PC0配置成全0要解答这个疑问需要结合MC_ME_RUN_PCn寄存器和MC_ME_PCTL编号 寄存器还有芯片模式一起来看。1MC_ME_RUN_PCn的n是什么意思为什么要有多个寄存器MC_ME_RUN_PCn寄存器负责要激活哪些芯片模式的时钟门而MC_ME_PCTL编号 寄存器负责选择要与哪个MC_ME_RUN_PCn寄存器连接起来。如下图就很清晰明了了比如RUN0被MC_ME_RUN_PC0和MC_ME_RUN_PC1激活时钟门而ME_ME_PCTL79、ME_ME_PCTL126选择了MC_ME_RUN_PC1ME_ME_PCTL144选择了MC_ME_RUN_PC0那么就意味着RUN0模式下已经开启了CAN0、ADC1、PWM1的时钟门。2示例代码中为什么要将MC_ME_RUN_PC0配置成全0因为我们在手册中看到所有MC_ME_PCTL编号 寄存器的默认配置都是0默认配置为0就是默认选择MC_ME_RUN_PC0和MC_ME_LP_PC0。所以将MC_ME_RUN_PC0配置为全0的目的是确保所有时钟门不会被打开。如下图在实际操作中我习惯用MC_ME_RUN_PC1来桥接MC_ME_PCTL编号 寄存器和芯片模式。这样可以自己选择性的配置要使能哪些外设的时钟门。当然在默认配置下让所有MC_ME_PCTL编号 寄存器选择MC_ME_RUN_PC0然后MC_ME_RUN_PC0再使能所有芯片模式也是可以的这样更简洁只不过所有的外设时钟门都被打开了。2示例代码在工程模板中的时钟配置部分代码如下MC_ME.DRUN_MC.R 0x001300F4配置的对应寄存器配置如下图开启了PLL、PLL1、XOSCON使能、系统时钟选择了secondary PLL也就是PLL1_PHI。MC_ME.MCTL.R 0x30005AF0; MC_ME.MCTL.R 0x3000A50F;进行了目标模式选择DRUN和密钥验证。while(MC_ME.GS.B.S_MTRANS 1); 检查模式转换是否完成。还有时钟门部分的代码MC_ME.RUN_PC[0].R 0x00000000 让MC_ME_RUN_PC0不激活任何芯片运行模式。MC_ME.RUN_PC[1].R 0x000000FE 让MC_ME_RUN_PC1激活所有芯片运行模式。MC_ME.PCTL126.R 0X00000001 让ADC1选择MC_ME_RUN_PC1。好了本章节的内容就到这里了通过本章节内容可以了解MPC5744P通过MC_ME模块实现了对MCU的各种模式控制、片上外设的时钟资源功耗的精确配置能够灵活实现不同的性能与功耗模式配置和切换。

相关新闻

2026/7/13 8:30:55

Windows 11 24H2中NI软件nimdsSP.dll被Local Security Authority拦截

阅读时间:6分钟 适用人群:LabVIEW开发者、NI软件部署工程师、Windows系统管理员问题背景在Windows 11 24H2(Build 26100.2454)系统中安装或运行LabVIEW 2024 Q3、LabVIEW 2022 Q3或NI Runtime System时,出现错误提示…

2026/7/13 8:30:55

《雷暴区域》:密闭空间叙事与4K HDR技术的完美融合

最近一部名为《雷暴区域》的4K画质惊悚片在影视圈引发热议,这部作品以其独特的极端天气设定和高山哨所密闭空间叙事,为观众带来了一场视听与心理的双重震撼。如果你正在寻找一部既能满足技术流画质追求,又能提供深度人性探讨的影片&#xff0…

2026/7/13 9:51:04

Python PDF表格提取实战:从文字型到扫描件的完整破译方案

1. 项目概述:为什么一张PDF里的表格,会让90%的Python新手卡住整整半天?“用Python从PDF里提取表格”——这行字看起来平平无奇,甚至在招聘JD里都快被写成默认技能了。但实操过的人心里都清楚:它根本不是“调个库、读个…

2026/7/13 9:51:04

2026年10款主流新手AI Coding工具选购指南

2026年,AI编程工具已全面进化——从代码补全插件发展为覆盖需求分析、代码生成、调试优化、部署上线的全链路智能开发平台。据麦肯锡2026年软件研发效能白皮书,引入前沿Coding Agent的团队人均代码吞吐量平均提升35%以上。对于编程新手而言,选…

2026/7/13 9:51:04

BetterJoy实战指南:突破Switch手柄跨平台兼容的技术壁垒

BetterJoy实战指南:突破Switch手柄跨平台兼容的技术壁垒 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.co…

2026/7/13 9:51:04

C++实现LCA算法:从倍增到Tarjan的树上最近公共祖先全解析

1. 项目概述:从树形结构到LCA的桥梁 在算法竞赛和实际工程中,我们常常需要处理一种特殊的数据结构——树。无论是文件系统的目录结构、公司组织的层级关系,还是网络拓扑,树形结构无处不在。而在处理树上的问题时,一个高…

2026/7/13 9:51:04

微软官方原版系统镜像下载全攻略:安全获取纯净Windows安装文件

在日常开发或系统维护中,我们经常需要重装操作系统。无论是搭建新的开发环境、修复系统故障,还是部署测试服务器,一个纯净、稳定的官方原版系统都是成功的第一步。然而,网络上充斥着各种修改版、Ghost版系统,这些系统往…

2026/7/13 6:38:38

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/12 0:01:29

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/12 0:01:29

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/13 0:00:24

广氟 PTFE 高速线缆膜 —— 高端线缆绝缘材料新选择

PTFE高速线缆膜的基本概念与特点 PTFE 高速线缆膜是以聚四氟乙烯树脂为原料,经膨化双向拉伸制成的多孔绝缘薄膜,作为高速高频通信线缆的核心介质材料,内部形成均匀连通的微孔结构,兼具极低介电常数与介电损耗,能有效降…

2026/7/12 11:21:32

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…