WCH沁恒单片机
直播中

张勇

7年用户 1479经验值
私信 关注
[问答]

CH573 LowPower_Shutdown低功耗问题求解

我在573方案上挂备用电池,计划在12V电源丢失后进入 shutdown 模式维持RTC时钟。
目前用的PB22口检测12V电源丢失,启用下降延中断,在中断中开启PB22口上升延中断唤醒后,用 LowPower_Shutdown(0) 掉电。

目前发现掉电几秒后能唤醒重启,但掉电时间再久一些,比如10秒以上,就再也启不来,得拨掉所有电源才行。

即使掉电几秒后重启时间也觉得蛮久的,大概5-6秒后才重启。

回帖(4)

吴思莹

2022-8-5 09:35:53
贴一下代码
static void __vin_go_shutdown(void) {        GPIOB_ModeCfg(GPIO_Pin_22, GPIO_ModeIN_Floating);        GPIOB_ITModeCfg(GPIO_Pin_8, GPIO_ITMode_RiseEdge);         PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Edge_LongDelay);        PFIC_EnableIRQ(GPIO_B_IRQn);        LowPower_Shutdown(0);}//初始化掉电static void __vin_lost_detect_init(void) {        GPIOB_ModeCfg(GPIO_Pin_22, GPIO_ModeIN_PD);        GPIOB_ITModeCfg(GPIO_Pin_8, GPIO_ITMode_FallEdge);        PFIC_EnableIRQ(GPIO_B_IRQn);        //        if (GPIOB_ReadPortPin(GPIO_Pin_22) == 0 && GPIOB_ReadPortPin(GPIO_Pin_22) == 0) {                __vin_go_shutdown();        }}__attribute__((interrupt("WCH-Interrupt-fast")))__attribute__((section(".highcode")))void GPIOB_IRQHandler(void) {        GPIOB_ClearITFlagBit(GPIO_Pin_8);        __vin_go_shutdown();}
举报

董英灏

2022-8-5 09:35:57
1、12V电源输入需加LDO进行降压;
2、使用ShutDown睡眠唤醒之后会默认进行复位,不需要手动开启;
3、使用例程的PA5引脚进行外部唤醒,验证是否可行。
举报

李天竹

2022-8-5 09:36:02
我也遇到觉得很奇怪的问题 ,休眠后,短时间 唤醒都是好的,时间长了,就不行了,后来在初始化部分加了 大概200ms延时就好了
举报

杨文田

2022-8-5 09:36:06
理论上是不会出现这个问题
1、我发给你的代码是否有出现这个现象,如果有问题可同我说明,我会进一步排查;
2、是否在代码上进行了修改导致出现了这个现象,如果是,可以排除一下是添加哪些功能导致出现这个问题。
举报

更多回帖

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