|
@@ -189,25 +189,24 @@ void MC_Fault_NTCSensor_Process(uint8_t T_PCB_Result, uint8_t T_Roil_Result, MC_
|
|
|
static uint8_t T_PCB_Old = 0;
|
|
|
static uint8_t T_Roil_Old = 0;
|
|
|
|
|
|
- //为初始化预留1s
|
|
|
- if((HAL_GetTick() < 1000) || (MC_RunInfo.T_MCU > 90))//50度以上,不检测NTC故障
|
|
|
+ //初始化2s,且50度以上,不检测NTC故障
|
|
|
+ if((HAL_GetTick() < 2000) || (MC_RunInfo.T_MCU > 90))
|
|
|
{
|
|
|
TrigTimeCnt_PCB = HAL_GetTick();
|
|
|
TrigTimeCnt_PCB = HAL_GetTick();
|
|
|
+ NTC_Check_PeriodTimeCnt = HAL_GetTick();
|
|
|
+ NTC_Check_Count = 0;
|
|
|
+
|
|
|
T_PCB_Old = T_PCB_Result;
|
|
|
T_Roil_Old = T_Roil_Result;
|
|
|
|
|
|
- if(HAL_GetTick() < 1000)
|
|
|
- {
|
|
|
- NTC_Check_PeriodTimeCnt = HAL_GetTick();
|
|
|
- return;
|
|
|
- }
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
if(p_MC_ErrorCode->ERROR_Bit.Fault_NtcSensor == 0)
|
|
|
{
|
|
|
//PCB上NTC短路或开路检测,判断AD值是否为异常值
|
|
|
- if((T_PCB_Result < 20) || (T_PCB_Result > 140))//20:AD为3812,140:AD为227
|
|
|
+ if((T_PCB_Result < 10) || (T_PCB_Result > 180)) //10(-30度):AD为3940,180(140度):AD为80
|
|
|
{
|
|
|
if((HAL_GetTick() - TrigTimeCnt_PCB) > 200)
|
|
|
{
|
|
@@ -221,8 +220,8 @@ void MC_Fault_NTCSensor_Process(uint8_t T_PCB_Result, uint8_t T_Roil_Result, MC_
|
|
|
}
|
|
|
|
|
|
//NTC短路或开路检测,判断AD值是否为异常值
|
|
|
- if(((T_Roil_Result < 20) || (T_Roil_Result > 140)) ||
|
|
|
- ((T_PCB_Result < 20) || (T_PCB_Result > 140))
|
|
|
+ if(((T_Roil_Result < 10) || (T_Roil_Result > 180)) || //10:AD为3940,180:AD为80
|
|
|
+ ((T_PCB_Result < 10) || (T_PCB_Result > 180))
|
|
|
)
|
|
|
{
|
|
|
if((HAL_GetTick() - TrigTimeCnt_Roil) > 200)
|
|
@@ -236,7 +235,7 @@ void MC_Fault_NTCSensor_Process(uint8_t T_PCB_Result, uint8_t T_Roil_Result, MC_
|
|
|
TrigTimeCnt_Roil = HAL_GetTick();
|
|
|
}
|
|
|
|
|
|
- //NTC为固定值的检测,检测3min内母线电流平均值 > 5A 时的前后温差
|
|
|
+ //NTC为固定值的检测,检测3min内母线电流平均值 > 10A 时的前后温差
|
|
|
if((HAL_GetTick() - NTC_Check_PeriodTimeCnt) >= 100)
|
|
|
{
|
|
|
NTC_Check_PeriodTimeCnt = HAL_GetTick();
|
|
@@ -248,8 +247,8 @@ void MC_Fault_NTCSensor_Process(uint8_t T_PCB_Result, uint8_t T_Roil_Result, MC_
|
|
|
NTC_Check_Count = 0;
|
|
|
BusCurrentAvg = BusCurrentSum >> 11;
|
|
|
BusCurrentSum = 0;
|
|
|
- //平均电流超过5A,判断是否有温升
|
|
|
- if(BusCurrentAvg > 39) // 39 * 1.28 = 50
|
|
|
+ //平均电流超过10A,判断是否有温升
|
|
|
+ if(BusCurrentAvg > 79) // 79 * 1.28 = 101
|
|
|
{
|
|
|
if((abs(T_PCB_Result - T_PCB_Old) < 2) || //PCB 温升低于2度
|
|
|
(abs(T_Roil_Result - T_Roil_Old) < 2)) //绕组温升低于2度
|
|
@@ -265,94 +264,6 @@ void MC_Fault_NTCSensor_Process(uint8_t T_PCB_Result, uint8_t T_Roil_Result, MC_
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-//踏频传感器故障检测
|
|
|
-void MC_Fault_CadenceSensor_Process(uint16_t Torque, uint16_t BikeSpeed, MC_ErrorCode_Struct_t* p_MC_ErrorCode)
|
|
|
-{
|
|
|
- static uint8_t Hall_1_Trg = 0; //霍尔1信号变化标志
|
|
|
- static uint8_t Hall_1_Cont = 0;//霍尔1状态
|
|
|
- static uint32_t Hall_1_Fault_TrigTimeCnt = 0;
|
|
|
- static uint8_t Hall_2_Trg = 0; //霍尔2信号变化标志
|
|
|
- static uint8_t Hall_2_Cont = 0;//霍尔2状态
|
|
|
- static uint32_t Hall_2_Fault_TrigTimeCnt = 0;
|
|
|
- static uint8_t Hall_1_2_EQA_Flag = 1;
|
|
|
- static uint32_t Hall_1_2_EQA_TrigTimeCnt = 0;
|
|
|
- uint8_t Hall_1_State;
|
|
|
- uint8_t Hall_2_State;
|
|
|
-
|
|
|
- Hall_1_State = HAL_GPIO_ReadPin(CADENCE_1_GPIO_Port, CADENCE_1_Pin);
|
|
|
- Hall_2_State = HAL_GPIO_ReadPin(CADENCE_2_GPIO_Port, CADENCE_2_Pin);
|
|
|
-
|
|
|
- //更新霍尔1信号变化状态
|
|
|
- Hall_1_Trg = Hall_1_State ^ Hall_1_Cont;
|
|
|
- Hall_1_Cont = Hall_1_State;
|
|
|
- //更新霍尔2信号变化状态
|
|
|
- Hall_2_Trg = Hall_2_State ^ Hall_2_Cont;
|
|
|
- Hall_2_Cont = Hall_2_State;
|
|
|
- //更新霍尔1和霍尔2相同标志
|
|
|
- Hall_1_2_EQA_Flag = Hall_1_State ^ Hall_2_State;
|
|
|
-
|
|
|
- if(HAL_GetTick() < 1000)
|
|
|
- {
|
|
|
- Hall_1_Fault_TrigTimeCnt = HAL_GetTick();
|
|
|
- Hall_2_Fault_TrigTimeCnt = HAL_GetTick();
|
|
|
- Hall_1_2_EQA_TrigTimeCnt = HAL_GetTick();
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- if(p_MC_ErrorCode->ERROR_Bit.Fault_CadenceSensor == 0)
|
|
|
- {
|
|
|
- //两个霍尔传感器分别检测是否存在开路或短路
|
|
|
- if((Torque > 1000) && (BikeSpeed > 50))
|
|
|
- {
|
|
|
- //判断霍尔1
|
|
|
- if(Hall_1_Trg == 0)
|
|
|
- {
|
|
|
- if((HAL_GetTick() - Hall_1_Fault_TrigTimeCnt) > 300)
|
|
|
- {
|
|
|
- p_MC_ErrorCode->ERROR_Bit.Fault_CadenceSensor = 1;
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- Hall_1_Fault_TrigTimeCnt = HAL_GetTick();
|
|
|
- }
|
|
|
- //判断霍尔2
|
|
|
- if(Hall_2_Trg == 0)
|
|
|
- {
|
|
|
- if((HAL_GetTick() - Hall_2_Fault_TrigTimeCnt) > 300)
|
|
|
- {
|
|
|
- p_MC_ErrorCode->ERROR_Bit.Fault_CadenceSensor = 1;
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- Hall_2_Fault_TrigTimeCnt = HAL_GetTick();
|
|
|
- }
|
|
|
- //判断霍尔1和霍尔2黏连
|
|
|
- if(Hall_1_2_EQA_Flag == 0)
|
|
|
- {
|
|
|
- if((HAL_GetTick() - Hall_1_2_EQA_TrigTimeCnt) > 300)
|
|
|
- {
|
|
|
- p_MC_ErrorCode->ERROR_Bit.Fault_CadenceSensor = 1;
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- Hall_1_2_EQA_TrigTimeCnt = HAL_GetTick();
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- Hall_1_Fault_TrigTimeCnt = HAL_GetTick();
|
|
|
- Hall_2_Fault_TrigTimeCnt = HAL_GetTick();
|
|
|
- Hall_1_2_EQA_TrigTimeCnt = HAL_GetTick();
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
//指拨故障检测
|
|
|
void MC_Fault_GasSensor_Process(uint16_t ADC_Data, MC_ErrorCode_Struct_t* p_MC_ErrorCode)
|
|
|
{
|
|
@@ -424,95 +335,41 @@ void MC_Fault_MOS_Process(ADC_3ShuntCurrent_Struct_t ShuntCurrent, MC_ErrorCode_
|
|
|
|
|
|
//TE故障检测
|
|
|
void MC_Fault_TE_Process(MC_TE_SensorStatus_Struct_t* p_MC_TE_SensorStatus, TrueOrFalse_Flag_Struct_t ComOK_Flag, MC_ErrorCode_Struct_t* p_MC_ErrorCode)
|
|
|
-{
|
|
|
- static uint32_t TrigTimeCnt_Com = 0;
|
|
|
- static uint32_t TrigTimeCnt_Sensor = 0;
|
|
|
- static uint32_t DelayTimeCnt_Sensor = 0;
|
|
|
- static FlagStatus SensorCheckFault_Falg = RESET;
|
|
|
- static FlagStatus TE_ComFault_Flag = RESET;
|
|
|
- static FlagStatus TE_SyncClockFault_Flag = RESET;
|
|
|
-
|
|
|
- //传感器检测异常判断
|
|
|
- if(SensorCheckFault_Falg == RESET)
|
|
|
+{
|
|
|
+ //TE电路故障异常判断,存在TE与主控采集值差异较大(故障位bit0-9),或主MCU工作电压大于4.2V
|
|
|
+ if(((p_MC_TE_SensorStatus->TE_ErrorCode.Code & 0x03FF) != 0) || (p_MC_TE_SensorStatus->MCU_Voltage > 4200))
|
|
|
{
|
|
|
- if((p_MC_TE_SensorStatus->TE_ErrorCode.Code != 0) || (p_MC_TE_SensorStatus->MCU_Voltage > 3800)) //存在传感器检测异常,或主MCU工作电压大于4.2V
|
|
|
- {
|
|
|
- if((HAL_GetTick() - TrigTimeCnt_Sensor) > 1000)
|
|
|
- {
|
|
|
- SensorCheckFault_Falg = SET;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- TrigTimeCnt_Sensor = HAL_GetTick();
|
|
|
- }
|
|
|
+ p_MC_ErrorCode->ERROR_Bit.Fault_Circuit = 1;
|
|
|
}
|
|
|
- //传感器检测异常恢复判断
|
|
|
- else
|
|
|
+ //TE电路故障异常恢复判断
|
|
|
+ else if(((p_MC_TE_SensorStatus->TE_ErrorCode.Code & 0x03FF) == 0) && (p_MC_TE_SensorStatus->MCU_Voltage < 3600))
|
|
|
{
|
|
|
- if((p_MC_TE_SensorStatus->TE_ErrorCode.Code == 0) && (p_MC_TE_SensorStatus->MCU_Voltage < 3600))
|
|
|
- {
|
|
|
- if((HAL_GetTick() - DelayTimeCnt_Sensor) > 1000)
|
|
|
- {
|
|
|
- SensorCheckFault_Falg = RESET;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- DelayTimeCnt_Sensor = HAL_GetTick();
|
|
|
- }
|
|
|
+ p_MC_ErrorCode->ERROR_Bit.Fault_Circuit = 0;
|
|
|
}
|
|
|
|
|
|
- //TE通信异常判断
|
|
|
- if(TE_ComFault_Flag == RESET)
|
|
|
+ //主控MCU异常判断,主控发送TE的数据超时或时钟频率异常
|
|
|
+ if(((p_MC_TE_SensorStatus->TE_ErrorCode.Code & 0x0C00) != 0))
|
|
|
{
|
|
|
- if(ComOK_Flag == FALSE)
|
|
|
- {
|
|
|
- if((HAL_GetTick() - TrigTimeCnt_Com) > 3000)
|
|
|
- {
|
|
|
- TE_ComFault_Flag = SET;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- TrigTimeCnt_Com = HAL_GetTick();
|
|
|
- }
|
|
|
+ p_MC_ErrorCode->ERROR_Bit.Fault_MCU = 1;
|
|
|
}
|
|
|
- //TE通信异常恢复判断
|
|
|
- else
|
|
|
+ //主控MCU异常恢复判断
|
|
|
+ else if((p_MC_TE_SensorStatus->TE_ErrorCode.Code & 0x0C00) == 0)
|
|
|
{
|
|
|
- if(ComOK_Flag == TRUE)
|
|
|
- {
|
|
|
- TE_ComFault_Flag = RESET;
|
|
|
- }
|
|
|
+ p_MC_ErrorCode->ERROR_Bit.Fault_MCU = 0;
|
|
|
}
|
|
|
-
|
|
|
-// //TE时钟判断
|
|
|
-// if( (MC_TE_SyncClockFreqScan < (p_MC_TE_SensorStatus->SyncClockFreq - 200))
|
|
|
-// ||(MC_TE_SyncClockFreqScan > (p_MC_TE_SensorStatus->SyncClockFreq + 200)))
|
|
|
-// {
|
|
|
-// TE_SyncClockFault_Flag = SET;
|
|
|
-// }
|
|
|
-// else
|
|
|
-// {
|
|
|
-// TE_SyncClockFault_Flag = RESET;
|
|
|
-// }
|
|
|
-
|
|
|
- //故障码输出
|
|
|
- if((SensorCheckFault_Falg == RESET) && (TE_ComFault_Flag == RESET) && (TE_SyncClockFault_Flag == RESET))
|
|
|
+
|
|
|
+ //TE MCU异常判断,TE发送主控的数据超时、时钟频率异常或TE检测的MCU故障位置位
|
|
|
+ if( (ComOK_Flag == FALSE) //UART接收数据超时
|
|
|
+ || ((MC_TE_SyncClockFreqScan < (p_MC_TE_SensorStatus->SyncClockFreq - 200)) //TE发送的时钟频率超限
|
|
|
+ || (MC_TE_SyncClockFreqScan > (p_MC_TE_SensorStatus->SyncClockFreq + 200)))
|
|
|
+ || ((p_MC_TE_SensorStatus->TE_ErrorCode.Code & 0x1000) != 0) //TE MCU异常
|
|
|
+ )
|
|
|
{
|
|
|
- p_MC_ErrorCode->ERROR_Bit.Fault_MCU = 0;
|
|
|
+ p_MC_ErrorCode->ERROR_Bit.Fault_TE_MCU = 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if(SensorCheckFault_Falg == SET)
|
|
|
- {
|
|
|
- p_MC_ErrorCode->ERROR_Bit.Fault_Circuit = 1; //认为电路故障
|
|
|
- }
|
|
|
- if((TE_ComFault_Flag == SET) || (TE_SyncClockFault_Flag == SET)) //认为MCU故障
|
|
|
- {
|
|
|
- p_MC_ErrorCode->ERROR_Bit.Fault_MCU = 1;
|
|
|
- }
|
|
|
+ p_MC_ErrorCode->ERROR_Bit.Fault_TE_MCU = 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -522,7 +379,7 @@ void MC_Fault_Circuit_Process(MC_ErrorCode_Struct_t* p_MC_ErrorCode)
|
|
|
static uint32_t C31_SC_TrigTimeCnt = 0;//C32 短路判断计时
|
|
|
static uint32_t PowerDriver_TrigTimeCnt = 0; //驱动电源判断计时
|
|
|
|
|
|
- //为初始化预留3s
|
|
|
+ //为初始化预留5s
|
|
|
if(HAL_GetTick() < 5000)
|
|
|
{
|
|
|
PeriodTimeCnt = HAL_GetTick();
|
|
@@ -576,11 +433,8 @@ void MC_Fault_Circuit_Process(MC_ErrorCode_Struct_t* p_MC_ErrorCode)
|
|
|
//检测母线电流和相电流是否为异常
|
|
|
static uint8_t i = 0, CurrentFaultCount = 0;
|
|
|
static uint32_t BusCurrent_Flt = 0, PhasesCurrentA_Flt = 0, PhasesCurrentB_Flt = 0, PhasesCurrentC_Flt = 0;
|
|
|
- #if 1 //正常运行
|
|
|
+
|
|
|
BusCurrent_Flt += ADC1_Result_Filt[ADC1_RANK_CURRENT];
|
|
|
- #elif 1 //模拟母线电流采样为固定值
|
|
|
- BusCurrent_Flt += 2048;
|
|
|
- #endif
|
|
|
PhasesCurrentA_Flt += ADC2_Result_Filt[ADC2_RANK_CURRENT_A];
|
|
|
PhasesCurrentB_Flt += ADC2_Result_Filt[ADC2_RANK_CURRENT_B];
|
|
|
PhasesCurrentC_Flt += ADC2_Result_Filt[ADC2_RANK_CURRENT_C];
|
|
@@ -598,7 +452,7 @@ void MC_Fault_Circuit_Process(MC_ErrorCode_Struct_t* p_MC_ErrorCode)
|
|
|
p_MC_ErrorCode->ERROR_Bit.Fault_Circuit = 1;
|
|
|
}
|
|
|
|
|
|
- if((IqFdbFlt >> 10) > 200)
|
|
|
+ if((IqFdbFlt >> 10) > 200) //250时,相电流为9.6A;330时,相电流为12.4A;350时,相电流为13.6A。得到,相电流 = 0.038 * IqFdb
|
|
|
{
|
|
|
if(((BusCurrent_Flt >> 5) - uw_current_offset) < 50) //50对应的母线电流约1.2A
|
|
|
{
|
|
@@ -632,7 +486,7 @@ void MC_Fault_Circuit_Process(MC_ErrorCode_Struct_t* p_MC_ErrorCode)
|
|
|
static uint32_t DelayTimeCnt = 0;
|
|
|
if((MC_RunInfo.GearSt == 0) && (MC_RunInfo.MotorSpeed == 0))
|
|
|
{
|
|
|
- if((HAL_GetTick() - DelayTimeCnt) > 3000) // 由运动转为静止3s后进行判断
|
|
|
+ if((HAL_GetTick() - DelayTimeCnt) > 5000) // 由运动转为静止5s后进行判断
|
|
|
{
|
|
|
BusCurrent_Array[j] = ADC1_Result_Filt[ADC1_RANK_CURRENT];
|
|
|
PhaseCurrentA_Array[j] = ADC2_Result_Filt[ADC2_RANK_CURRENT_A];
|
|
@@ -723,6 +577,94 @@ void MC_Fault_HallSensor_Process(MC_HallSensorStatus_Struct_t HallSensorStatus,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+//踏频传感器故障检测
|
|
|
+void MC_Fault_CadenceSensor_Process(uint16_t Torque, uint16_t BikeSpeed, MC_ErrorCode_Struct_t* p_MC_ErrorCode)
|
|
|
+{
|
|
|
+ static uint8_t Hall_1_Trg = 0; //霍尔1信号变化标志
|
|
|
+ static uint8_t Hall_1_Cont = 0;//霍尔1状态
|
|
|
+ static uint32_t Hall_1_Fault_TrigTimeCnt = 0;
|
|
|
+ static uint8_t Hall_2_Trg = 0; //霍尔2信号变化标志
|
|
|
+ static uint8_t Hall_2_Cont = 0;//霍尔2状态
|
|
|
+ static uint32_t Hall_2_Fault_TrigTimeCnt = 0;
|
|
|
+ static uint8_t Hall_1_2_EQA_Flag = 1;
|
|
|
+ static uint32_t Hall_1_2_EQA_TrigTimeCnt = 0;
|
|
|
+ static uint8_t Hall_1_State;
|
|
|
+ static uint8_t Hall_2_State;
|
|
|
+
|
|
|
+ Hall_1_State = HAL_GPIO_ReadPin(CADENCE_1_GPIO_Port, CADENCE_1_Pin);
|
|
|
+ Hall_2_State = HAL_GPIO_ReadPin(CADENCE_2_GPIO_Port, CADENCE_2_Pin);
|
|
|
+
|
|
|
+ //更新霍尔1信号变化状态,相同为0,不同为1
|
|
|
+ Hall_1_Trg = Hall_1_State ^ Hall_1_Cont;
|
|
|
+ Hall_1_Cont = Hall_1_State;
|
|
|
+ //更新霍尔2信号变化状态,相同为0,不同为1
|
|
|
+ Hall_2_Trg = Hall_2_State ^ Hall_2_Cont;
|
|
|
+ Hall_2_Cont = Hall_2_State;
|
|
|
+ //更新霍尔1和霍尔2相同标志,相同为0,不同为1
|
|
|
+ Hall_1_2_EQA_Flag = Hall_1_State ^ Hall_2_State;
|
|
|
+
|
|
|
+ if(HAL_GetTick() < 1000)
|
|
|
+ {
|
|
|
+ Hall_1_Fault_TrigTimeCnt = HAL_GetTick();
|
|
|
+ Hall_2_Fault_TrigTimeCnt = HAL_GetTick();
|
|
|
+ Hall_1_2_EQA_TrigTimeCnt = HAL_GetTick();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(p_MC_ErrorCode->ERROR_Bit.Fault_CadenceSensor == 0)
|
|
|
+ {
|
|
|
+ //两个霍尔传感器分别检测是否存在开路或短路
|
|
|
+ if((Torque > 1200) && (BikeSpeed > 70))
|
|
|
+ {
|
|
|
+ //判断霍尔1
|
|
|
+ if(Hall_1_Trg == 0)
|
|
|
+ {
|
|
|
+ if((HAL_GetTick() - Hall_1_Fault_TrigTimeCnt) > 300)
|
|
|
+ {
|
|
|
+ p_MC_ErrorCode->ERROR_Bit.Fault_CadenceSensor = 1;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Hall_1_Fault_TrigTimeCnt = HAL_GetTick();
|
|
|
+ }
|
|
|
+ //判断霍尔2
|
|
|
+ if(Hall_2_Trg == 0)
|
|
|
+ {
|
|
|
+ if((HAL_GetTick() - Hall_2_Fault_TrigTimeCnt) > 300)
|
|
|
+ {
|
|
|
+ p_MC_ErrorCode->ERROR_Bit.Fault_CadenceSensor = 1;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Hall_2_Fault_TrigTimeCnt = HAL_GetTick();
|
|
|
+ }
|
|
|
+ //判断霍尔1和霍尔2黏连
|
|
|
+ if(Hall_1_2_EQA_Flag == 0)
|
|
|
+ {
|
|
|
+ if((HAL_GetTick() - Hall_1_2_EQA_TrigTimeCnt) > 300)
|
|
|
+ {
|
|
|
+ p_MC_ErrorCode->ERROR_Bit.Fault_CadenceSensor = 1;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Hall_1_2_EQA_TrigTimeCnt = HAL_GetTick();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Hall_1_Fault_TrigTimeCnt = HAL_GetTick();
|
|
|
+ Hall_2_Fault_TrigTimeCnt = HAL_GetTick();
|
|
|
+ Hall_1_2_EQA_TrigTimeCnt = HAL_GetTick();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
//故障检测
|
|
|
void MC_Fault_Check_Process(void)
|
|
|
{
|
|
@@ -741,9 +683,6 @@ void MC_Fault_Check_Process(void)
|
|
|
//温度传感器故障检测
|
|
|
MC_Fault_NTCSensor_Process(MC_RunInfo.T_PCB, MC_RunInfo.T_Roil, &MC_ErrorCode);
|
|
|
|
|
|
- //踏频传感器故障检测
|
|
|
- MC_Fault_CadenceSensor_Process(ADC_SensorData.TorqueSensor, MC_RunInfo.BikeSpeed, &MC_ErrorCode);
|
|
|
-
|
|
|
//指拨故障检测
|
|
|
MC_Fault_GasSensor_Process(ADC1_Result[ADC1_RANK_GAS], &MC_ErrorCode);
|
|
|
|
|
@@ -751,7 +690,7 @@ void MC_Fault_Check_Process(void)
|
|
|
MC_Fault_MOS_Process(ADC_3ShuntCurrent_RMSValue, &MC_ErrorCode);
|
|
|
|
|
|
//TE故障检测
|
|
|
- MC_Fault_TE_Process(&MC_TE_SensorStatus, IsComOK_TE, &MC_ErrorCode);
|
|
|
+ MC_Fault_TE_Process(&MC_TE_SensorStatus, IsComOK_TE.IsOK_Flag, &MC_ErrorCode);
|
|
|
|
|
|
//电路故障检测
|
|
|
MC_Fault_Circuit_Process(&MC_ErrorCode);
|