本帖最后由 怀揣少年梦 于 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 */
/**
* [url=home.php?mod=space&uid=247401]@brief[/url] main function.
* @param none
* @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还是有很大空间的
|