WCH沁恒单片机
直播中

王越建

8年用户 1509经验值
私信 关注
[问答]

CH571/573唤醒休眠必然死机是为什么?怎么解决?

反复测试了很多次,使用TMOS与不使用TMOS,唤醒休眠唤醒休眠不断循环,shutdown+RTC4秒或多秒唤醒,必然死机。deepsleep电源全关只开核心也必然死机。只有deepsleep至少开启RAM16K电源,测试了N天不会死机。
也就是说手册上的shutdow+RTC 0.6UA的功耗是做不到的,因为会死机。deepsleep+RAM16K电源至少5UA,也就是这个芯片用来说标签类产品至少要5UA电流(外扩主控用复位按钮唤醒除外)。
不知道这样理解是否有错误,只是想尽量降低功耗。开启RAM16K电源不知道是否是因为中断向量在RAM16K的开头,唤醒需要用到,但是不开启这个电源也能唤醒,只是运行一段时间后死机。
不知道能否做到周期唤醒蓝牙发送,而休眠又能在1.4UA以下。
  

回帖(1)

单雅丽

2022-8-31 09:41:46
尝试在执行shutdown 前做以下处理:

1,//R8_SLP_WAKE_CTRL 寄存器中的RB_WAKE_DELAY 设置位长延时:

PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_GPIO_WAKE, Edge_LongDelay )
2, 降频:

SetSysClock( CLK_SOURCE_HSE_6_4MHz );


example code:

PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_GPIO_WAKE, Edge_LongDelay );

uint32_t rtc_cnt = RTC_GetCycle32k();
rtc_cnt = 3276+current_rtc_cnt;
if( rtc_cnt > 0xA8C00000 ) {
rtc_cnt -= 0xA8C00000;
}
RTC_SetTignTime(current_rtc_cnt);
SetSysClock( CLK_SOURCE_HSE_6_4MHz );
LowPower_Shutdown( 0 );
举报

更多回帖

发帖
×
20
完善资料,
赚取积分