Forráskód Böngészése

屏蔽过流检测。

dail 3 éve
szülő
commit
12aa8af0e1

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 2413 - 2413
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/MC_VR7500_V8r0r0_20210414_2.bin


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 40 - 1
User/Src/protect_check.c

@@ -304,9 +304,48 @@ void MC_Protect_VoltageChange_Process(uint16_t Voltage, uint16_t Current, MC_Err
 	}
 }
 
+//软件过流保护检测
+void MC_OverCurrent_SoftProtect_Process(uint16_t BusCurrent, uint16_t MaxCurrent, MC_ErrorCode_Struct_t* p_MC_ErrorCode)
+{
+  static uint32_t Protect_TimeCnt = 0;
+	static uint32_t Fault_TimeCnt = 0;
+	uint16_t Current_Th;
+	
+	Current_Th = (MaxCurrent * 3) >> 1;//1.5倍
+	
+	if(p_MC_ErrorCode->ERROR_Bit.Protect_OverCurrent == 0)
+	{
+		if(BusCurrent < Current_Th)
+		{
+			Protect_TimeCnt = HAL_GetTick();
+		}
+		if((HAL_GetTick() - Protect_TimeCnt) > 5000)
+		{
+			p_MC_ErrorCode->ERROR_Bit.Protect_OverCurrent = 1;
+			//记录故障日志
+			MC_ErrorLogSaveInfo.NotesInfo1 = 2;
+			MC_ErrorLogSaveInfo.NotesInfo2 = Current_Th;
+			ErrorLogSave_Update(&MC_ErrorLogSaveInfo);
+		  IsErrorLogSaveInfoUpdateFlag = TRUE;
+			//存储故障次数
+			MC_RunLog1.OC_ProtectCnt++;
+			RunLogSaveIndex = 1;	
+			Fault_TimeCnt = HAL_GetTick();
+		}
+	}
+	else
+	{
+		//过流保护恢复
+		if((HAL_GetTick() - Fault_TimeCnt) > 5000)
+		{
+			MC_ErrorCode.ERROR_Bit.Protect_OverCurrent = 0;
+		}
+	}
+}
+
 /******************************全局函数定义******************************/
 #define OC_CLEARFLAG_DELAYTIME 15 //过流标志间隔清零延时,单位ms
-#define OC_COUNTER_TH 100         //过流保护计数判断阈值
+#define OC_COUNTER_TH 200         //过流保护计数判断阈值
 //过流保护检测
 /*
 检测原理:

+ 0 - 2
User/Src/pwm_driver.c

@@ -44,8 +44,6 @@ void	Enable_Pwm_Output(void)
 	HAL_TIMEx_PWMN_Start(&PWM_TIMER,TIM_CHANNEL_4);
 	
 	Pwm_Timer_Start();
-	HAL_NVIC_SetPriority(TIM1_BRK_IRQn, 0, 0);
-  HAL_NVIC_EnableIRQ(TIM1_BRK_IRQn);
 }
 
 /**

+ 0 - 1
User/Src/remain_distance.c

@@ -545,4 +545,3 @@ uint8_t Battery_SocCal(uint16_t Voltage_mV)
 		return Result;
 	}
 }
-

+ 3 - 1
User/Src/tasks.c

@@ -17,6 +17,7 @@
 #include "key_driver.h"
 #include "encrypt.h"
 #include "ICM20600.h"
+#include "light_driver.h"
 
 /************************全局变量************************/
 TrueOrFalse_Flag_Struct_t IsInitFinish_Flag = FALSE;
@@ -537,9 +538,10 @@ void PowerOff_Process(TrueOrFalse_Flag_Struct_t ReturnEnable)
 	static uint32_t PeriodTimeCnt = 0;
 	static uint8_t Count = 0;
 	
-	//关闭助力档位
+	//关闭助力档位,关闭车灯
 	MC_ControlCode.GearSt = MC_GearSt_OFF;
 	MC_ControlCode.LightSwitch = MC_LightSwitch_OFF;
+	LightDriver_Process(MC_ConfigParam2.MC_TailLight_Mode, IsBreakTrig_Flag, MC_ControlCode.LightSwitch);
 	Update_MC_ControlCode_Back();
 	
 	#if 1 //存储到Flash,下次开机时从Flash取出转移到EEPROM

+ 2 - 5
User/Src/tim.c

@@ -184,11 +184,6 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
     /* Peripheral interrupt init*/
     HAL_NVIC_SetPriority(TIM1_UP_IRQn, 1, 1);
     HAL_NVIC_EnableIRQ(TIM1_UP_IRQn);
-		
-		HAL_NVIC_SetPriority(TIM1_BRK_IRQn, 0, 0);
-    HAL_NVIC_EnableIRQ(TIM1_BRK_IRQn);
-		
-		__HAL_TIM_ENABLE_IT(&htim1, TIM_IT_BREAK);
   /* USER CODE BEGIN TIM1_MspInit 1 */
 
   /* USER CODE END TIM1_MspInit 1 */
@@ -411,7 +406,9 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
 	MC_RunInfo.MotorSpeed = MotorSpeedCal(MC_HallSensorData.SVM_Angle, MC_HallSensorData.IsStopFlag);
 	
 	//过流检测
+	#if 0 //已出货的QD007E板子,R60是未焊接状态,此功能无效
 	MC_Protect_OverCurrent_Process(&MC_Protect_OverCurrentTrig_Flag, &MC_ErrorCode);
+	#endif
 	
 	//FOC运算	
 	if(((uint8_t)(MC_CalParam.AssistRunMode ^ MC_CalParam_Back.AssistRunMode) != (uint8_t)~0) ||

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott