怀揣少年梦 发表于 2024-12-6 23:26

【AT-START-L021测评】04 看看AT32L021的功耗有多低

本帖最后由 怀揣少年梦 于 2024-12-7 15:16 编辑

本篇测评来测试一下AT32L021这颗MCU在各个低功耗模式下功耗情况
一、官方数据
从官方的数据手册来看看,功耗数据。官方测试条件是:


1、运行模式功耗


2、睡眠模式


3、深度休眠和待机模式功耗


从以上数据可以看出:
睡眠模式>深度休眠模式>待机模式","marks":[]}]}],"state":{}}]">1)频率越高,功耗越高,因此要想功耗越低,必须让频率降低到合适的频率
2)在待机模式功耗最低,在同等条件下,在各模式功耗顺序为运行模式>睡眠模式>深度休眠模式>待机模式


二、测试官方数据
1、新建工程,只开启内部高速晶振,过程就赘述了。
2、编写进入功耗模式代码
/* add user code begin private define */
#define LOWER_POWER_SLEEP_MODE 0
#define LOWER_POWER_DEEP_SLEEP_MODE 1
#define LOWER_POWER_STANDY_MODE 0
/* add user code end private define */

/* private macro -------------------------------------------------------------*/
/* add user code begin private macro */

/* add user code end private macro */

/* private variables ---------------------------------------------------------*/
/* add user code begin private variables */

/* add user code end private variables */

/* private function prototypes --------------------------------------------*/
/* add user code begin function prototypes */

/* add user code end function prototypes */

/* private user code ---------------------------------------------------------*/
/* add user code begin 0 */

/* add user code end 0 */

/**
* @brief main function.
* @paramnone
* @retval none
*/
int main(void)
{
/* add user code begin 1 */
uint32_t i = 0;
/* add user code end 1 */

/* system clock config. */
wk_system_clock_config();

/* config periph clock. */
wk_periph_clock_config();

/* nvic config. */
wk_nvic_config();

/* add user code begin 2 */
      //wk_delay_ms(8000);
      for(i=0;i < 16000000;i++);
/* add user code end 2 */

while(1)
{
    /* add user code begin 3 */
                  /* disable systick */
    SysTick->CTRL &= (uint32_t)0xFFFFFFFE;

      #if LOWER_POWER_SLEEP_MODE
    /* enter sleep mode */
    pwc_sleep_mode_enter(PWC_SLEEP_ENTER_WFI);
      #endif
      
      #if LOWER_POWER_DEEP_SLEEP_MODE
                  /* reduce ldo before enter deepsleep mode */
    pwc_ldo_output_voltage_set(PWC_LDO_OUTPUT_1V0);
                        /* congfig the voltage regulator mode.only used with deep sleep mode */
    pwc_voltage_regulate_set(PWC_REGULATOR_LOW_POWER);
      /* enter deep sleep mode */
pwc_deep_sleep_mode_enter(PWC_DEEP_SLEEP_ENTER_WFI);
      #endif
      #if LOWER_POWER_STANDY_MODE
                /* enter standy mode */
      pwc_standby_mode_enter();
      #endif
    /* add user code end 3 */
}
}
      3、测试结果如下
MCU电压3.3V,运行时钟频率为16M
运行模式

睡眠模式

深度休眠模式

待机模式

根据实测数据,深度休眠模式只有7.5uA和待机模式下1.2uA,从数据来看还是不错的,但是相比STML051,还是逊色一点。它的待机模式只有0.27uA。相较之下,AT32还是有很大空间的





页: [1]
查看完整版本: 【AT-START-L021测评】04 看看AT32L021的功耗有多低