[N32G03x] N32G031 LP RUN模式

[复制链接]
797|3
 楼主| sy12138 发表于 2022-8-31 17:19 | 显示全部楼层 |阅读模式
今天在看N32G031用户手册低功耗章节的时候发现有一个LPRUN模式,让系统处于LSI或者LSE的低频工作状态,以此来减小功耗。
然后深入了解发现LPRUN模式也有两种配置,一种是让flash处于正常工作状态,另一种是让Flash进入深度睡眠模式,这种状态下可以让功耗变得更低
为了验证用户手册这一说法,我配置好代码做了低功耗实验,代码配置如下:
flash正常工作状态:
  1. Delay(200);
  2.        
  3. PWR_EnterLowPowerRunMode(PWR_LPRUN_EFLASH_ACTIVE,LSI); //选择LPRUN模式下flash功耗状态、时钟源LSI或LSE
  4.        
  5. Delay(1);
  6.        
  7. PWR_ExitLowPowerRunMode();
  8.        
  9. SetSysClockToPLL(48000000,SYSCLK_USE_HSI);
flash深度睡眠模式
  1. Delay(200);
  2.        
  3. PWR_EnterLowPowerRunMode(PWR_LPRUN_EFLASH_DEEEPSTANDBY,LSI);
  4.                
  5. Delay(1);
  6.        
  7. PWR_ExitLowPowerRunMode();
  8.        
  9. SetSysClockToPLL(48000000,SYSCLK_USE_HSI);

 楼主| sy12138 发表于 2022-8-31 17:22 | 显示全部楼层
然后就发现一个很奇怪的现象,同样都是delay(1)之后离开低功耗,但是两者的时间却相差很大

flash深度睡眠

flash深度睡眠

flash正常运行

flash正常运行
 楼主| sy12138 发表于 2022-8-31 17:51 | 显示全部楼层
发现问题了,仔细看了用户手册才知道,flash深度睡眠模式需要在代码在SRAM中运行时才可以配置,如果在flash中运行就不能配置,怪不得测试的时候发现两个模式功耗差不多,原来是没有配置成功
9582fc95f841666e6101cf980963cce.png
 楼主| sy12138 发表于 2022-8-31 18:18 | 显示全部楼层
后续找了一下怎么让代码在SRAM中运行,发现了国民的一篇应用笔记,让代码在SRAM中运行

AN_N32G45x_FR_WB系列芯片_在SRAM中运行代码应用笔记_V1.0.pdf

1.65 MB, 下载次数: 7

您需要登录后才可以回帖 登录 | 注册

本版积分规则

92

主题

404

帖子

19

粉丝
快速回复 在线客服 返回列表 返回顶部