Commit ad844758 authored by 时昊's avatar 时昊

feat:修改电源管理模式,增加唤醒引脚,增加时钟初始化,

parent b8266562
...@@ -27,5 +27,6 @@ ...@@ -27,5 +27,6 @@
#include "Data_ESpeed.h" #include "Data_ESpeed.h"
#include "Data_VSpeed.h" #include "Data_VSpeed.h"
#include "BackLight.h" #include "BackLight.h"
#include "RTC\RTE_RTC.h"
#endif #endif
#include "PowerManagement.h" #include "PowerManagement.h"
#include "Components.h" #include "Components.h"
//RTC_Information_st_t g_stRTCInformation; RTC_Information_st_t g_stRTCInformation;
static void Power_KL30_Init(void); static void Power_KL30_Init(void);
static void Power_Wakeup_Init(void); static void Power_Wakeup_Init(void);
...@@ -10,14 +10,11 @@ static void Power_OVP_Init(void); ...@@ -10,14 +10,11 @@ static void Power_OVP_Init(void);
static void Power_IG_OFF_Init(void); static void Power_IG_OFF_Init(void);
static void Power_IG_ON_Init(void); static void Power_IG_ON_Init(void);
static void Power_Sleep_Init(void); static void Power_Sleep_Init(void);
static Power_Status_em Power_Stay_ON(void); static Power_Status_em Power_Stay_ON(void);
static Power_Status_em Power_Stay_OFF(void); static Power_Status_em Power_Stay_OFF(void);
static Power_Status_em Power_Stay_Protect(void); static Power_Status_em Power_Stay_Protect(void);
static Power_Status_em Power_Stay_Sleep(void); static Power_Status_em Power_Stay_Sleep(void);
static const st_PowerGroup g_stPwrTasks = { static const st_PowerGroup g_stPwrTasks = {
Power_KL30_Init, Power_KL30_Init,
Power_IG_OFF_Init, Power_IG_OFF_Init,
...@@ -56,20 +53,19 @@ static void Power_KL30_Init(void) ...@@ -56,20 +53,19 @@ static void Power_KL30_Init(void)
Data_User_Mileage_KL30Init(); Data_User_Mileage_KL30Init();
Fuel_KL30_Init(); Fuel_KL30_Init();
Amt630hInit(); Amt630hInit();
//Telltales_Init();
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 64000000); TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 64000000);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High); TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High);
g_stRTCInformation.u8RTCSecond = 0;
g_stRTCInformation.u8RTCMinute = 0;
// g_stRTCInformation.u8RTCSecond = 0; g_stRTCInformation.u8RTCHour = 0;
// g_stRTCInformation.u8RTCMinute = 0; g_stRTCInformation.u8RTCDayOfMonth = 1;
// g_stRTCInformation.u8RTCHour = 0; g_stRTCInformation.u8RTCMonth = 1;
// g_stRTCInformation.u8RTCDayOfMonth = 1; g_stRTCInformation.u8RTCYear = 20;
// g_stRTCInformation.u8RTCMonth = 1; RTE_RTC_Init(g_stRTCInformation);
// g_stRTCInformation.u8RTCYear = 20;
// RTE_RTC_Init(g_stRTCInformation);
// RTE_DEEPSLEEP_GPIO_Interrupt_Enable(WAKEUP_KL15_In,Trigger_Rising);
Menu_User_Init(); Menu_User_Init();
Protocol_KL30_Wakeup_Init(); Protocol_KL30_Wakeup_Init();
RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising);
} }
//extern uint32_t PowerIgnOffTimeLine; //extern uint32_t PowerIgnOffTimeLine;
static void Power_Wakeup_Init(void) static void Power_Wakeup_Init(void)
...@@ -77,11 +73,9 @@ static void Power_Wakeup_Init(void) ...@@ -77,11 +73,9 @@ static void Power_Wakeup_Init(void)
// PowerIgnOffTimeLine = 0; // PowerIgnOffTimeLine = 0;
Gpio_Init(Gpio_WakeUp_Init); Gpio_Init(Gpio_WakeUp_Init);
eeprom_StoreInfo_Init(); eeprom_StoreInfo_Init();
Analog_Signal_Conv_Init(); Analog_Signal_Conv_Init();
Data_User_Mileage_WakeupInit(); Data_User_Mileage_WakeupInit();
Sys_WakeUp_Init(); Sys_WakeUp_Init();
Data_Vehicle_Speed_KL30_Wakeup_Init(); Data_Vehicle_Speed_KL30_Wakeup_Init();
Data_Engine_Speed_KL30_Wakeup_Init(); Data_Engine_Speed_KL30_Wakeup_Init();
...@@ -93,10 +87,10 @@ static void Power_Wakeup_Init(void) ...@@ -93,10 +87,10 @@ static void Power_Wakeup_Init(void)
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 64000000); TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 64000000);
TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High); TimerM_PWM_CH_Output_init(TIMERM_COUNTER1, TIMERM_CHB, ActiveLevel_High);
//Telltales_Init(); //Telltales_Init();
// RTE_DEEPSLEEP_GPIO_Interrupt_Enable(WAKEUP_KL15_In,Trigger_Rising);
Key_KL30_Init_EXample(); Key_KL30_Init_EXample();
Menu_User_WAKEUP(); Menu_User_WAKEUP();
Protocol_KL30_Wakeup_Init(); Protocol_KL30_Wakeup_Init();
RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising);
} }
static void Power_LVP_Init(void) static void Power_LVP_Init(void)
...@@ -111,7 +105,6 @@ static void Power_OVP_Init(void) ...@@ -111,7 +105,6 @@ static void Power_OVP_Init(void)
static void Power_IG_OFF_Init(void) static void Power_IG_OFF_Init(void)
{ {
Line_In_KL15_OFF_Init(); Line_In_KL15_OFF_Init();
} }
static void Power_IG_ON_Init(void) static void Power_IG_ON_Init(void)
...@@ -125,19 +118,15 @@ static void Power_IG_ON_Init(void) ...@@ -125,19 +118,15 @@ static void Power_IG_ON_Init(void)
static void Power_Sleep_Init(void) static void Power_Sleep_Init(void)
{ {
TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 0); TimerM_PWM_counter_Output_Init(TIMERM_COUNTER1, 400, 0);
// //RTC_Stop(); rte_can_deinit(CAN_CH_0);
// rte_can_deinit(CAN_CH_0);
TMM0_Stop(); TMM0_Stop();
TMM1_Stop(); TMM1_Stop();
TMM_All_Stop(); TMM_All_Stop();
RTE_ADC_DeInit(); RTE_ADC_DeInit();
// //CGC->CSC = 1 ; //HIOSTOP = 1
Gpio_Init(Gpio_Sleep_Init); Gpio_Init(Gpio_Sleep_Init);
AMT630H_Sleep(); AMT630H_Sleep();
Analog_Signal_Conv_Stop(); Analog_Signal_Conv_Stop();
// RTE_DEEPSLEEP_Enable(); RTE_DEEPSLEEP_Enable();
} }
static Power_Status_em Power_Stay_ON(void) static Power_Status_em Power_Stay_ON(void)
...@@ -168,15 +157,19 @@ static Power_Status_em Power_Stay_OFF(void) ...@@ -168,15 +157,19 @@ static Power_Status_em Power_Stay_OFF(void)
} }
else else
{ {
if ((Common_GetIgnOffTime() < 20000)) if ((Common_GetIgnOffTime() < 1000))
{ {
u8PowerSts = EM_IGN_OFF; u8PowerSts = EM_IGN_OFF;
} }
else else
{
//igoff大于1s且下15电才进休眠,否则一直保持在igoff状态
if(Sys_Read_KL15_Voltage() < 5000)
{ {
u8PowerSts = EM_IGN_Sleep_Init; u8PowerSts = EM_IGN_Sleep_Init;
} }
} }
}
return u8PowerSts; return u8PowerSts;
} }
...@@ -190,7 +183,6 @@ static Power_Status_em Power_Stay_Protect(void) ...@@ -190,7 +183,6 @@ static Power_Status_em Power_Stay_Protect(void)
/* 关闭所有外设,坪保留AD采集,电溝状思切�? */ /* 关闭所有外设,坪保留AD采集,电溝状思切�? */
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 0); TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 0);
} }
u8PowerSts = EM_IGN_OFF_Init; u8PowerSts = EM_IGN_OFF_Init;
...@@ -206,6 +198,12 @@ static Power_Status_em Power_Stay_Protect(void) ...@@ -206,6 +198,12 @@ static Power_Status_em Power_Stay_Protect(void)
{ {
return u8PowerSts; return u8PowerSts;
} }
//进入异常电压,电源库里直接将15电等于0,则直接退出,状态是igoff,下15则进入休眠
if ( SYS_OPR_STAT_IGN_OFF )
{
break;
}
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment