Kaynağa Gözat

1. 修正soc休眠状态下的功耗
2. 进入低功耗1天后没有唤醒事件,也需要恢复正常模式,主要是补偿休眠功耗

Signed-off-by: huhui <huhui@sharkgulf.com>

huhui 5 yıl önce
ebeveyn
işleme
03321aa113

+ 1 - 1
Application/app/sox/soc.c

@@ -263,7 +263,7 @@ static void soc_update_by_current_and_time(float current_now, float delta_time,
 }
 }
 
 
 void soc_update_for_deepsleep(float sleep_time){
 void soc_update_for_deepsleep(float sleep_time){
-	soc_update_by_current_and_time(-1.0f, sleep_time, 0);
+	soc_update_by_current_and_time(-0.31f, sleep_time, 0); //ÐÝÃß¹¦ºÄ310uA(300uA + 10uA¹Ì¶¨ÏûºÄ)
 }
 }
 
 
 void soc_update(void){
 void soc_update(void){

+ 2 - 2
Application/bsp/mcu_power_sleep.c

@@ -124,13 +124,13 @@ void mcu_enter_deepsleep(void){
 			wdog_reload();
 			wdog_reload();
 			while (shark_rtc_start_alarm(RTC_ALARM_FOR_SLEEP) < 0){
 			while (shark_rtc_start_alarm(RTC_ALARM_FOR_SLEEP) < 0){
 				wdog_reload();
 				wdog_reload();
-				if (_is_wakeup_source()){
+				if (_is_wakeup_source() || (_sleep_second_time_now >= (24 * 60 * 60))){
 					break;
 					break;
 				}
 				}
 			}
 			}
 			wait_for_enter_dsleep();
 			wait_for_enter_dsleep();
 		}
 		}
-	}while(!_is_wakeup_source());
+	}while(!_is_wakeup_source() && (_sleep_second_time_now < (24 * 60 * 60)));
 	_sleep_second_time += _sleep_second_time_now;
 	_sleep_second_time += _sleep_second_time_now;
 	disable_wakeup_irq();
 	disable_wakeup_irq();
 	post_deepsleep();
 	post_deepsleep();