当前位置: 首页>行业 >

痞子衡嵌入式:从功耗测试角度了解i.MXRTxxx系列片内SRAM分区电源控制

来源: 博客园 | 时间: 2023-07-06 19:29:38 |

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是从功耗测试角度了解i.MXRTxxx系列片内SRAM分区电源控制


(资料图)

我们知道配合 MCU 一起工作的存储器包含 ROM(Flash) 和 RAM 两类,前者主要放 RO 代码和数据,后者放 RW 数据。MCU 可以没有片内 ROM,但是一般都会包含片内 RAM,这个片内 RAM 功耗是 MCU 整体功耗的重要组成部分。

恩智浦 i.MXRT 四位数系列片内 RAM 主要由 FlexRAM 和 OCRAM 组成,痞子衡写过一篇文章 《FlexRAM模块详解》,里面介绍了 FlexRAM 的电源控制策略。虽然 FlexRAM 也是由多个 Bank 组成,但是其无法做到任意开关每个 Bank,其受既定的组合策略控制(跟随系统 Low Power 模式),而 OCRAM 则直接是整体开关。就这方面设计而言,i.MXRT 三位数系列片内 SRAM 电源控制则灵活得多,今天痞子衡就重点聊聊这个话题:

一、片内SRAM分区控制

恩智浦 i.MXRT 三位数系列目前主要是 RT500 和 RT600 两大型号,前者包含 5MB 片内 SRAM,后者包含 4.5MB 片内 SRAM。因为片内 RAM 够大,所以为其设计的电源控制策略就更精细。

下图是 RT500 上 AXI-to-RAM 架构图,从图里我们知道 5MB SRAM 一共被分成了 32 块(注意不是等分,有 32KB/64KB/128KB/256KB 四种不同大小)。

- RT500 一共 32 个 SRAM 分区(SRAM0-31):- RT600 一共 30 个 SRAM 分区(SRAM0-29):- 不同大小的 SRAM 分区:  SRAM0-7   : 32KB  SRAM8-11  : 64KB  SRAM12-15 : 128KB  SRAM16-31 : 256KB

因为 RT500/600 都是基于 ARM Cortex-M33,所以片内 SRAM 在系统地址映射里有 Secure 和 Non-Secure 两个不同起始地址,再加上可以通过 Code 和 Data 两个不同总线去访问,所以应用里可以通过如下 4 个不同起始地址来访问到这同一块物理 SRAM。

这些 SRAM 分区除了大小不同之外,有一些还被赋予了特殊用途。比如 SRAM2,3 被 ROM API 征用了,如果应用里需要调用 ROM API,需要释放 SRAM2,3 使用权。SRAM0 则更特殊,它是唯一的一个软复位后依旧能保持内容的分区(其它分区复位后默认是Power down状态,不过上电 BootROM 执行时会将全部分区都打开)。

-(适用RT500/600)The SRAM2,3   region [0x10000-0x1BFFF] is reserved for ROM code. -(适用RT500/600)The SRAM0,3   region [0x0-0xFFFF], [0x1C000-0x1FFFF] are reserved for app-specific use cases. -(适用RT500/600)The SRAM4-11  region [0x20000-0x7FFFF] is reserved for Non-cached shared memory between M33 and DSP. -(适用RT500)    The SRAM12-21 region [0x80000-0x27FFFF] is reserved for DSP code and data.

全部 SRAM 分区的电源开关在 SYSCTL0->PDRUNCFG2,3寄存器中,其中 PDRUNCFG2 控制的是 SRAM 各分区存储介质的电,PDRUNCFG3 控制的是 SRAM 各分区外围支持电路(线性驱动器、感测放大器)的电。如果我们想在保持 SRAM 中内容的情况下省电,可以仅操作 PDRUNCFG3 去关闭外围。

二、功耗测量方法

功耗测量最简单的办法就是找一个万用表,调节到电流测量模式,将其串到 VDDCORE 信号上,MIMXRT595-EVK (Rev.D3) 板卡特地设计了 JS25 接头,方便测量电流。

板子上电,应用程序加载执行后,便可以实时观测到运行时电流。不过电流测量有几个注意事项:

1. 不要挂载调试器在线运行时测量电流,会导致结果偏大。2. 应用程序里如果有涉及模块电源开关代码,不要使能编译器优化等级,防止代码优化影响结果(电源开关有顺序要求)。3. 如果是 CPU 高频运算相关代码,不同编译器下会导致结果不同,因为代码密度可能有差异。4. 即使是单纯 while (1) 执行(可以在前面按需要加多个 NOP() 改变 while(1) 指令地址),指令地址不同也可能导致结果不同。
三、功耗测量结果

最后痞子衡在 MIMXRT595-EVK (Rev.D3) 板上借助 \SDK_2_13_1_EVK-MIMXRT595\boards\evkmimxrt595\demo_apps\hello_world\iar 模板例程(debug Build,需要修改 main 函数以及相应修改链接文件),来测试代码在不同 SRAM 分区下执行的电流情况:

void sram_power_cfg(void){    PRINTF("CPU Frequency %d\n", CLOCK_GetFreq(kCLOCK_CoreSysClk));    PRINTF("Main Clock %d\n", CLOCK_GetFreq(kCLOCK_BusClk));    // 控制 SRAM 分区电源    SYSCTL0->PDRUNCFG2_SET = 0xFFFFFFFC;    SYSCTL0->PDRUNCFG3_SET = 0xFFFFFFFC;    PRINTF("PDRUNCFG 0x%x, 0x%x, 0x%x, 0x%x\n", SYSCTL0->PDRUNCFG0, SYSCTL0->PDRUNCFG1, SYSCTL0->PDRUNCFG2, SYSCTL0->PDRUNCFG3);}int main(void){    BOARD_InitPins();    BOARD_BootClockRUN();    BOARD_InitDebugConsole();    sram_power_cfg();    // 增减 nop 指令数量来控制 while(1) 指令地址    asm("nop");    //asm("nop");    //asm("nop");    //asm("nop");    while (1)    {    }}

最终测试结果如下,不同大小的 SRAM 分区功耗是有差异的,并且即使 SRAM 分区大小相同,功耗也可能有差异。此外 while(1) 指令地址不同导致的运行功耗差异也不小:

RO section in SRAMx RW section in SRAM0SYSCTL0->PDRUNCFG2,3值NOP数控制 while(1)指令地址VDDCORE电流
10xFFFFFFFC0xbe50/0xbe52/0xbe58/oxbe5a29.39 - 30.52mA
10xFFFFFFFC0xbe54/0xbe56/0xbe5c/oxbe5e32.55 - 33.86mA
80xFFFFFEFE0x43e50/0x43e52/0x43e58/ox43e5a~30.4mA
80xFFFFFEFE0x43e54/0x43e56/0x43e5c/ox43e5e~34.3mA
120xFFFFEFFE0x83e50/0x83e52/0x83e58/ox83e5a~31.97mA
120xFFFFEFFE0x83e54/0x83e56/0x83e5c/ox83e5e~37.03mA
160xFFFEFFFE0x103e50/0x103e52/0x103e58/ox103e5a~31.45mA
160xFFFEFFFE0x103e54/0x103e56/0x103e5c/ox103e5e~34.7mA
300xBFFFFFFE0x483e50/0x483e52/0x483e58/ox483e5a~34.66mA
300xBFFFFFFE0x483e54/0x483e56/0x483e5c/ox483e5e~42.2mA

至此,从功耗测试角度了解i.MXRTxxx系列片内SRAM分区电源控制痞子衡便介绍完毕了,掌声在哪里~~~

欢迎订阅

文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

关键词:

 

热文推荐

痞子衡嵌入式:从功耗测试角度了解i.MXRTxxx系列片内SRAM分区电源控制

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是**

2023-07-06

保利发展半年销售增12.65%至2368.21亿 归母净利润提升10.84%

保利发展期内实现签约金额2368 21亿元,同比增长12 65%。

2023-07-06

奔驰电动车率先认输?宝马奥迪和特斯拉比亚迪怎么看

奔驰、宝马、奥迪等传统一线豪华品牌由于在电动化进程中的步履蹒跚,推

2023-07-06

胡锡进“炒股记”第8集:盈利还剩757.99元,称想趁大盘低位赶快加仓以防止踏空

7月6日,胡锡进进股市第8天,老胡还是一如既往地发文,他称自己今天账

2023-07-06

呼气要浅吸气宜深 这些防溺水知识全是重点

齐鲁网·闪电新闻7月6日讯炎炎夏日,暑期已至。夏季是溺水事故的高发期

2023-07-06

7月6日三元生物发生1笔大宗交易 成交金额642.6万元

大宗交易成交价格32 13元,相对当日收盘价折价0 8%,成交20万股,成交

2023-07-06

国内动画电影票房排名TOP10,你贡献了哪部的票房?|焦点关注

延续着前两部的温馨搞笑风格,聚焦格鲁和露西的婚后生活,继续讲述格鲁

2023-07-06

环球头条:所罗门群岛总理索加瓦雷将访华

据外交部网站7月6日消息,外交部发言人汪文斌宣布:应国务院总理李强邀

2023-07-06

上半年全国演出票房收入167.93亿元 观众人数比去年增长10倍 环球聚焦

据中国演出行业协会演出票务信息采集平台数据监测分析,2023年二季度,

2023-07-06

大兴区西红门持续开展垃圾分类进社区系列活动 全球今头条

近日,大兴区西红门镇联合兴海家园星苑居委会在星苑小区持续开展垃圾分

2023-07-06

王力宏方回应李靓蕾:法院并无认定其有任何过错

王力宏和李靓蕾新浪娱乐讯据报道,王力宏李靓蕾在纽约的离婚官司告一段

2023-07-06

潜水员戴夫乌贼的皮肤碎片怎么获得 潜水员戴夫乌贼的皮肤碎片获取攻略 资讯

潜水员戴夫游戏中的乌贼的皮肤碎片怎么获得呢,很多太清楚乌贼的皮肤碎

2023-07-06

长安汽车王俊:中国汽车产业发展面临四大挑战|天天快资讯

7月6日,长安汽车总裁王俊在2023中国汽车论坛上表示,中国汽车产业发展

2023-07-06

离线空间迅雷(离线空间) 微速讯

来为大家解答以上的问题。离线空间迅雷,离线空间这个很多人还不知道,

2023-07-06

身上红痣与血痣图片大全_身上红痣与血痣图片

你们好,最近小活发现有诸多的小伙伴们对于身上红痣与血痣图片大全,身

2023-07-06

商业地产在多业态运营中通过招商CRM和运营系统实现管理和决策|热点评

商业地产行业是以商业综合体、购物中心、写字楼等商业物业为主的房地产

2023-07-06

夏季梅江车展将开幕这些停车场可以停车 焦点消息

记者自交管部门了解到,2023天津夏季梅江车展将于明日至7月10日在梅江

2023-07-06

港媒:中国为民企排忧解难提振信心 观热点

参考消息网7月6日报道据香港《南华早报》网站7月4日报道,中国高层经济

2023-07-06

天天新资讯:7月5日基金净值:易方达科创板两年定开混合最新净值1.0338,跌1.9%

7月5日,易方达科创板两年定开混合最新单位净值为1 0338元,累计净值为

2023-07-06

健康食品环境,优化营商 全球观察

全媒体记者陈向革通讯员王红进入盛夏季节,天气以晴热高温为主,是食品

2023-07-06

资讯

冲刺“运动科技第一股”!Keep递表再次申请港交所主板

2022年9月6日,Keep递表港交所主板,冲刺运动科技第一股,高盛和中金公司为联席保荐人。这是继2022年2月25日递表失效后的再次申请。招股书

2022-09-16     
北京推出14条秋游文化线路

金秋时节,北京市文化和旅游局以赏银杏品文化为主题,推出14条“叶落的季节——漫步北京赏银杏品文化主题线路”,邀市民和游客以步行、骑行

2021-10-27     
基因编辑发力,培育高质量人源化供体猪

此次人体试验,仅仅验证了基因编辑猪克服异种器官移植的超急性排斥反应,还需解决延迟性排斥反应、消耗性血栓等问题。但通过这次试验,能更

2021-10-27     
中国经济高质量发展步伐稳健 长期向好基本面未变

在全球疫情走势和经济走势趋于复杂的背景下,中国经济巨轮将驶向何方,举世关注。2020年10月26日至29日,党的十九届五中全会在京举行,明确

2021-10-27     
南美解放者杯决赛允许近4.5万观众入场

南美洲足联主席多明格斯25日与今年解放者杯决赛对阵的两支俱乐部负责人会晤,宣布决赛现场观众人数增加到球场容量的75%,即近4 5万人。今年

2021-10-27     
22年从警生涯 面对荣誉他说:不要给我报功 给最辛苦的

9月24日,时任安徽省安庆市公安局迎江分局刑警大队大要案中队中队长周磊因在工作中激烈搏斗引发心源性猝死,倒在了工作岗位上,经医院抢救

2021-10-27