查看: 1421|回复: 1

[分享] LPC43XX低功耗Deep Power Down模式唤醒问题

[复制链接]

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
20009
最后登录
2024-4-24
发表于 2021-7-28 16:43:02 | 显示全部楼层 |阅读模式
本帖最后由 小恩GG 于 2021-7-28 17:07 编辑

LPC43XX低功耗Deep Power Down模式唤醒问题
       在MCU开发中,低功耗永远是衡量产品性能的一个重要指标。有些客户在使用LPC43XX系列进入低功耗模式后,出现无法唤醒的情况,本文对此进行说明。

1.     LPC43XX无法唤醒的原因
LPC43XX有四种低功耗模式,分别是睡眠模式(Sleep mode),深度睡眠模式( Deep Sleep mode),掉电模式(Power Down mode)和深度掉电模式(Deep Power Down mode)。低功耗模式选择性地关掉系统时钟、关掉外设时钟、掉电SRAM等,并且在一定条件下唤醒MCU进入正常模式,唤醒触发源有唤醒引脚、ATIMER、RTC。
用户在使用LPC43XX的misc_pmc_states案例时,发现在Deep Power Down mode模式下,使用ATIMER无法唤醒MCU。这是在写ATIMER寄存器时,由于设计原因,无法立即写入DOWNCOUNTER与PRESET寄存器,大约需要2~3ms才可写入成功,所以在写入寄存器后需要判断和等待这两个寄存器写入成功,代码实现如下:
Chip_ATIMER_UpdatePresetValue(LPC_ATIMER,ui32_calc);
LPC_ATIMER->DOWNCOUNTER = ui32_calc;
while(LPC_ATIMER->PRESET != ui32_calc){}
while(LPC_ATIMER->DOWNCOUNTER != ui32_calc){}

2.     测试Deep Power Down mode模式下唤醒
       当Deep Power Down mode模式下唤醒MCU时,MCU会进行复位。在main函数中添加如下代码用来测试唤醒:
Board_LED_Set(0,1); //blue led on
delay(3000);
Board_LED_Set(0,0);//blue ledoff
pwr_goto_deep_powerdown_for_ms(3000);//go to deep powerdown mode

附件中,示例唤醒成功的现象为,LED小灯大约三秒钟闪烁一次。
工程见附件

deep_powerd_down_wakeup.zip

5.19 MB, 下载次数: 17, 下载积分: 威望 1

回复

使用道具 举报

该用户从未签到

1

主题

2

帖子

0

注册会员

Rank: 2

积分
53
最后登录
2024-3-26
发表于 2024-1-6 14:37:53 | 显示全部楼层
楼主辛苦,感谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /4 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2024-4-25 08:31 , Processed in 0.113649 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表