[MM32软件] 【灵动微电子MM32F5330测评】06 功耗测试

[复制链接]
 楼主| 怀揣少年梦 发表于 2024-8-3 17:10 | 显示全部楼层 |阅读模式
<
本帖最后由 怀揣少年梦 于 2024-8-3 17:11 编辑

本篇测评主要是测试一下进入几种功耗模式的功耗。
一、功耗模式
1、查看用户手册MM32F5330一共有以下六种低功耗模式为:
  • 低功耗运行模式:CPU、所有芯片外设包括 CPU 外设如 NVICSysTick 等在运行,系统工作时钟不能高于 2MHz
  • 睡眠模式:CPU 停止,所有芯片外设包括 CPU 的外设,如 NVICSysTick 等仍在运行。
  • 低功耗睡眠模式:CPU 停止,所有芯片外设包括 CPU 的外设,如 NVICSysTick 等仍在运行,工作时钟不能高于 2MHz

  • 停机模式:CORE 域以低功耗模式工作,CPU 及所有外设时钟都停止,只保持寄存器和 RAM 的内容。
  • 深度停机模式:CORE 域以更低功耗模式工作,CPU 及所有外设时钟都停止,只保持寄存器和 RAM的内容。

  • 待机模式:CORE 域停止供电,此域寄存器和 SRAM 的内容全部丢失,备份域除外


2、几种功耗模式切换关系
  • 运行模式可以进入低功耗运行模式,并且从低功耗运行模式退出到运行模式。
  • 运行模式可以进入睡眠模式,并且从睡眠模式退出到运行模式。

  • 运行模式可以进入停机模式,并且从停机模式退出到运行模式。
  • 运行模式可以进入深度停机模式,并且从深度停机模式退出到运行模式。
  • 运行模式可以进入待机模式,并且从待机模式退出到运行模式。
  • 低功耗运行模式可以进入低功耗睡眠模式,并且从低功耗睡眠模式退出到低功耗运行模式。
  • 低功耗运行模式可以进入停机模式,并且从停机模式退出到低功耗运行模式。
  • 低功耗运行模式可以进入深度停机模式,并且从深度停机模式退出到低功耗运行模式。
  • 低功耗运行模式可以进入待机模式,并且从待机模式只能退出到运行模式

切换图,如图
切换.jpg
3、切换条件
POWER1.jpg
POWER2.jpg
4、降低功耗的方法:
1)在满足应用的条件下,尽可能地降低主频;
2)关闭不使用引进的时钟;
3)尽量共用一组IO口的GPIO;
4)可以选择用时打开外设,不用时关闭外设的策略。

二、功耗测试
本次测试将以时钟频率为2Mhz为基础,测试几种模式下的功耗
1、修改系统时钟
由于主频默认是180MHz.
将SYSCLK_HSI_XXMHz修改为低于25Mhz;则HSI默认将8M作为系统时钟
CLK.jpg
将系统分频为2Mhz;
CLK.png
2、编写主函数
  1. /***********************************************************************************************************************
  2.     [url=home.php?mod=space&uid=288409]@file[/url]    main.c
  3.     [url=home.php?mod=space&uid=187600]@author[/url]  FAE Team
  4.     [url=home.php?mod=space&uid=212281]@date[/url]    08-May-2023
  5.     [url=home.php?mod=space&uid=247401]@brief[/url]   THIS FILE PROVIDES ALL THE SYSTEM FUNCTIONS.
  6.   **********************************************************************************************************************
  7.     @attention

  8.     <h2><center>© Copyright(c) <2023> <MindMotion></center></h2>

  9.       Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
  10.     following conditions are met:
  11.     1. Redistributions of source code must retain the above copyright notice,
  12.        this list of conditions and the following disclaimer.
  13.     2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
  14.        the following disclaimer in the documentation and/or other materials provided with the distribution.
  15.     3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or
  16.        promote products derived from this software without specific prior written permission.

  17.       THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
  18.     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  19.     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  20.     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  21.     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  22.     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  23.     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  24.   *********************************************************************************************************************/

  25. /* Define to prevent recursive inclusion */
  26. #define _MAIN_C_

  27. /* Files include */
  28. #include "platform.h"
  29. #include "main.h"

  30. /**
  31.   * @addtogroup MM32F5330_LibSamples
  32.   * @{
  33.   */

  34. /**
  35.   * @addtogroup TIM2_5
  36.   * @{
  37.   */

  38. /**
  39.   * @addtogroup TIM2_5_TimeBase
  40.   * @{
  41.   */

  42. /* Private typedef ****************************************************************************************************/

  43. /* Private define *****************************************************************************************************/
  44. #define DEEP_STOP_MODE 1
  45. #define STOP_MODE 0
  46. #define LOW_SLEEP_POWER_MODE 0
  47. #define SLEEP_MODE 0
  48. #define STADNY_MODE 0
  49. /* Private macro ******************************************************************************************************/

  50. /* Private variables **************************************************************************************************/

  51. /* Private functions **************************************************************************************************/

  52. /***********************************************************************************************************************
  53.   * @brief  This function is main entrance
  54.   * [url=home.php?mod=space&uid=536309]@NOTE[/url]   main
  55.   * @param  none
  56.   * @retval none
  57.   *********************************************************************************************************************/
  58. int main(void)
  59. {
  60.         
  61.     PLATFORM_Init(); //初始化串口以及LED;
  62.         #if LOW_SLEEP_POWER_MODE
  63.         PWR_LowPowerSleep_WFI_Wakeup_Sample();
  64.       #elif DEEP_STOP_MODE
  65.         PWR_DeepStop_EXTI_Wakeup_Sample();
  66.         #elif SLEEP_MODE
  67.         PWR_Sleep_WFI_Wakeup_Sample();
  68.         #elif STOP_MODE
  69.         PWR_Stop_EXTI_Wakeup_Sample();
  70.         #elif STADNY_MODE
  71.         PWR_Standby_RTC_Wakeup_Sample();
  72.         #elif LOW_POWER_RUN_MODE
  73.         PWR_LowPowerRun();
  74.         #endif
  75.     while (1)
  76.     {
  77.     }
  78. }
  79. /**
  80.   * @}
  81.   */

  82. /**
  83.   * @}
  84.   */

  85. /**
  86.   * @}
  87.   */

  88. /********************************************** (C) Copyright MindMotion **********************************************/

3、测量几种功耗模式的功耗
1、DEEP_STOP_MODE
467.80 uA
467uA.jpg
2、STOP_MODE
467.31uA
467.31uA.jpg
3、LOW_SLEEP_POWER_MODE  
4.97mA
4.97.jpg
4、SLEEP_MODE
4.40mA
4.4.jpg
5、STANDY_MODE
2.64mA
2.64.jpg

总体来看,相比ST STM32L151系列还是挺高的。不过M5330主打性能。


micoccd 发表于 2024-8-14 16:18 | 显示全部楼层
SLEEP模式功耗怎么这么高
 楼主| 怀揣少年梦 发表于 2024-8-15 08:41 | 显示全部楼层
micoccd 发表于 2024-8-14 16:18
SLEEP模式功耗怎么这么高

我也有一点奇怪,不应该这么高,没有找到具体原因。看官方能不能测一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:一切皆有可能

45

主题

473

帖子

3

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