Browse Source

MC_VS65XX&VS75XX(125K)-TC011001-MS0001_V2.1.8.1.0_20210702
1、关闭过流信号关闭PWM,避免采用QD007E的主控板误报Error10;
2、取消Break管脚中断。

dail 4 years ago
parent
commit
3e547db10a

File diff suppressed because it is too large
+ 2412 - 2412
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/MC_VS65XX&VS75XX(125K)-TC011001-MS0001_V2.1.8.1.0_20210702.bin


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 43 - 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         //过流保护计数判断阈值
 //过流保护检测
 /*
 检测原理:
@@ -368,6 +407,7 @@ void MC_Protect_OverCurrent_Process(FlagStatus* OverCurrentTrigFlag, MC_ErrorCod
 				p_MC_ErrorCode->ERROR_Bit.Protect_OverCurrent = 1;
 				ocFaultTimeCnt = HAL_GetTick();
 				//记录故障日志
+				MC_ErrorLogSaveInfo.NotesInfo1 = 1;
 			  ErrorLogSave_Update(&MC_ErrorLogSaveInfo);
 		  	IsErrorLogSaveInfoUpdateFlag = TRUE;
 				//存储故障次数
@@ -411,4 +451,6 @@ void MC_Protect_Check_Process(void)
 	//电压波动异常保护检测
 	MC_Protect_VoltageChange_Process(MC_RunInfo.BusVoltage, MC_RunInfo.BusCurrent, &MC_ErrorCode);
 	
+	//软件过流保护检测
+	MC_OverCurrent_SoftProtect_Process(MC_RunInfo.BusCurrent, MC_ConfigParam1.CurrentLimit * 1000, &MC_ErrorCode);
 }

+ 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);
 }
 
 /**

+ 2 - 0
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;
@@ -540,6 +541,7 @@ void PowerOff_Process(TrueOrFalse_Flag_Struct_t ReturnEnable)
 	//关闭助力档位,关闭车灯
 	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) ||

+ 3 - 3
User/Src/var.c

@@ -489,9 +489,9 @@ void Var_Init(void)
 	memcpy((uint8_t*)&PBU_ConfigParam.GearsNum, (uint8_t*)&PBU_ConfigParam_Default.GearsNum, sizeof(PBU_ConfigParam_Struct_t));
 		
 	//MC版本信息初始化,Mode和SN从EEPROM读取
-  strncpy(MC_VerInfo.HW_Version, (char*)"QD007E/F/G/H.   ", 16);
-	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r8_20210414.", 16);
-	strncpy(Firmware_Special, (char*)"TC011000-MS0000-V0r0.           ", 32);
+  strncpy(MC_VerInfo.HW_Version, (char*)"QD007E.         ", 16);
+	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r8_20210702.", 16);
+	strncpy(Firmware_Special, (char*)"TC011001-MS0001-V1r0.           ", 32);
 		
 	//电机型号
 	strncpy(MC_VerInfo.Mode, (char*)"VL65XX & VS75XX.", 16);

+ 4 - 0
修改说明.txt

@@ -409,6 +409,10 @@ V2.1.8_20210414
 V2.1.8_20210414
 1、收到关机指令后,增加关闭车灯操作。
 
+MC_VS65XX&VS75XX(125K)-TC011001-MS0001_V2.1.8.1.0_20210702
+1、关闭过流信号关闭PWM,避免采用QD007E的主控板误报Error10;
+2、取消Break管脚中断。
+
 
 
 

Some files were not shown because too many files changed in this diff