MPC5744P (四)模式管理MC_ME

发布时间:2026/7/13 8:35:54

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的各种模式控制、片上外设的时钟资源功耗的精确配置能够灵活实现不同的性能与功耗模式配置和切换。

相关新闻

Godot 4.x 3D相机系统实战:从第一人称到第三人称的构建与优化

Godot 4.x 3D相机系统实战:从第一人称到第三人称的构建与优化

2026/7/13 8:25:53

1. 项目概述:为什么3D相机系统是游戏体验的基石在Godot Engine里折腾3D项目,无论是第一人称射击、第三人称冒险,还是俯视角解谜,你迟早会撞上一个绕不开的核心问题:如何让玩家“看”得舒服?这个“看”&…

跨平台Unity资源编辑终极指南:5个技巧快速掌握UABEAvalonia

跨平台Unity资源编辑终极指南:5个技巧快速掌握UABEAvalonia

2026/7/13 8:25:53

跨平台Unity资源编辑终极指南:5个技巧快速掌握UABEAvalonia 【免费下载链接】UABEA c# uabe for newer versions of unity 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA UABEAvalonia是一款功能强大的跨平台Unity资源包管理工具,专为游戏开…

炉石传说终极增强插件HsMod:55项功能全解锁,告别卡顿享受流畅游戏体验

炉石传说终极增强插件HsMod:55项功能全解锁,告别卡顿享受流畅游戏体验

2026/7/13 8:25:53

炉石传说终极增强插件HsMod:55项功能全解锁,告别卡顿享受流畅游戏体验 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 还在为炉石传说中繁琐的动画、恼人的弹窗和界…

Unity性能调优实战:使用MangoHud实时监控游戏构建版本性能

Unity性能调优实战:使用MangoHud实时监控游戏构建版本性能

2026/7/13 10:25:58

1. 项目概述与核心价值如果你是一名Unity开发者,尤其是在PC或Linux平台上打磨游戏,那么“性能调优”这四个字大概率是你的日常。我们常常在Unity编辑器的Profiler里埋头苦干,分析CPU、GPU的每一毫秒开销,但你是否想过,…

EDU资产测绘实战:FOFA/鹰图双引擎语法组合,精准定位10+类脆弱系统

EDU资产测绘实战:FOFA/鹰图双引擎语法组合,精准定位10+类脆弱系统

2026/7/13 10:25:58

EDU资产测绘实战:双引擎语法组合与脆弱系统精准定位 1. 教育行业资产测绘的特殊价值 教育行业数字化进程的加速带来了前所未有的安全挑战。与商业机构不同,高校信息系统往往呈现"三多"特征:历史遗留系统多、第三方服务多、临时业务…

Matlab版Tsai两步法相机标定工具包:含完整代码、测试数据与标定结果文件

Matlab版Tsai两步法相机标定工具包:含完整代码、测试数据与标定结果文件

2026/7/13 10:25:58

本文还有配套的精品资源,点击获取 简介:一套开箱即用的Matlab相机标定工具,实现Tsai提出的经典两步法标定流程。包含核心算法脚本Tsai.m和Tsai_8b.m,主控程序biaoding.m负责调用全流程;提供真实测试数据——图像坐标…

Git 浅克隆后恢复完整仓库:3 种方法(git fetch --unshallow 等)与 2 个常见错误排查

Git 浅克隆后恢复完整仓库:3 种方法(git fetch --unshallow 等)与 2 个常见错误排查

2026/7/13 10:25:58

Git浅克隆后恢复完整仓库的3种方法与常见错误排查为什么需要从浅克隆恢复完整仓库?在大型项目开发中,我们经常会遇到需要快速获取代码但又不希望下载整个仓库历史的情况。这时候git clone --depth1就成了开发者的利器——它只克隆最近一次提交&#xff0…

数据库应用系统需求分析:从 UML 用例图到数据字典的 4 步落地实践

数据库应用系统需求分析:从 UML 用例图到数据字典的 4 步落地实践

2026/7/13 10:25:58

数据库应用系统需求分析:从 UML 用例图到数据字典的 4 步落地实践在构建数据库应用系统时,需求分析是确保系统成功的关键第一步。许多开发团队在项目初期往往急于跳入技术实现,而忽略了深入的需求挖掘和结构化分析,导致后期频繁返…

STM32与LV3296条形码模块的硬件协同与UART通信优化

STM32与LV3296条形码模块的硬件协同与UART通信优化

2026/7/13 10:15:58

1. LV3296与STM32L4S5ZI的硬件协同架构解析 LV3296作为一款高性能条形码扫描模块,其核心优势在于集成了光学传感器、解码芯片和通信接口的三合一设计。这个仅有拇指大小的模块内部搭载了CMOS图像传感器,支持一维/二维条码的快速识别,典型解码…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/13 7:41:16

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/12 0:03:42

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/12 0:03:42

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

卡梅德生物技术快报|纯化重组蛋白:变异链球菌 SepM 截短蛋白载体构建、诱导优化与纯化重组蛋白全套参数方案

卡梅德生物技术快报|纯化重组蛋白:变异链球菌 SepM 截短蛋白载体构建、诱导优化与纯化重组蛋白全套参数方案

2026/7/13 0:05:25

1 研究背景与现存技术痛点(提出问题)在口腔微生物分子机制研究中,SepM 蛋白酶是调控变异链球菌群体感应、致龋菌素合成的核心功能蛋白,体外功能验证、抗体开发均依赖高纯度可溶性 SepM 蛋白。当前原核表达体系针对 SepM 存在三大技…

卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

2026/7/13 0:05:25

1 研究背景与现存技术痛点(提出问题)基因工程、蛋白质组学、生物制药研发流程中,蛋白质分离纯化是决定下游实验成败的关键环节。当前实验室常规蛋白质分离纯化工艺存在三类难以标准化的技术瓶颈:传统离子交换、分子筛层析无特异性…

卡梅德生物技术快报|蛋白质分离纯化:肠激酶可溶性原核表达 + 两步层析全参数|标准化蛋白质分离纯化 SOP

卡梅德生物技术快报|蛋白质分离纯化:肠激酶可溶性原核表达 + 两步层析全参数|标准化蛋白质分离纯化 SOP

2026/7/13 0:05:25

研究痛点提出(提出问题)重组肠激酶是融合标签切除核心工具酶,当前原核表达体系存在三大标准化难题,直接阻碍可复现的蛋白质分离纯化流程搭建:Trx、GST、单 SUMO 标签融合产物绝大多数为包涵体,沉淀占比超 9…