竟有如此精細化片內SRAM電源控制的MCU?

      2023-07-07 11:31:04

      大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是從功耗測試角度了解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-MIMXRT595boardsevkmimxrt595demo_appshello_worldiar 模板例程(debug Build,需要修改 main 函數以及相應修改鏈接文件),來測試代碼在不同 SRAM 分區下執行的電流情況:

      voidsram_power_cfg(void){PRINTF("CPUFrequency%dn",CLOCK_GetFreq(kCLOCK_CoreSysClk));PRINTF("MainClock%dn",CLOCK_GetFreq(kCLOCK_BusClk));//控制SRAM分區電源SYSCTL0->PDRUNCFG2_SET=0xFFFFFFFC;SYSCTL0->PDRUNCFG3_SET=0xFFFFFFFC;PRINTF("PDRUNCFG0x%x,0x%x,0x%x,0x%xn",SYSCTL0->PDRUNCFG0,SYSCTL0->PDRUNCFG1,SYSCTL0->PDRUNCFG2,SYSCTL0->PDRUNCFG3);}intmain(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 SRAMxRW 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分區電源控制痞子衡便介紹完畢了,掌聲在哪里~~~

      關閉
      精彩放送
      亚洲影院天堂中文av色| 亚洲AV无码第一区二区三区| 亚洲av激情无码专区在线播放| 最新亚洲成av人免费看| 亚洲免费一区二区| 国产成人精品亚洲精品| 亚洲人妻av伦理| 国产精品V亚洲精品V日韩精品 | 日韩精品一区二区亚洲AV观看| 亚洲国产日韩在线视频| 久久亚洲国产欧洲精品一| 亚洲国产a∨无码中文777| 久久久综合亚洲色一区二区三区| 亚洲国产精品va在线播放| 亚洲Av无码精品色午夜| 亚洲AV日韩AV永久无码下载| 亚洲专区在线视频| 亚洲成人黄色在线观看| 激情内射亚洲一区二区三区爱妻| 国产精品亚洲午夜一区二区三区 | 亚洲精品无码AV中文字幕电影网站| 亚洲第一福利网站在线观看| 亚洲伦乱亚洲h视频| 伊人久久大香线蕉亚洲| 亚洲av无码乱码国产精品fc2| 亚洲人成在线观看| 亚洲午夜精品国产电影在线观看| 亚洲AV成人噜噜无码网站| 亚洲自偷自偷在线成人网站传媒 | 亚洲youwu永久无码精品| 亚洲AV无码不卡在线观看下载| 亚洲精品国产成人影院| 亚洲色WWW成人永久网址| 久久久久亚洲av无码尤物| 亚洲欧洲综合在线| 亚洲欧洲AV无码专区| 亚洲成a人一区二区三区| 亚洲人成77777在线播放网站| 亚洲国产综合专区在线电影| 亚洲人成777在线播放| 亚洲精品无码久久久久久|