Просмотр исходного кода

V7.2.0.0.0_20220721
1 去掉MOS管温度采集,还原为TTKZ019A电路板程序;
2 死区时间由150ns改为500ns;

white.xu 3 лет назад
Родитель
Сommit
0d7bc6e177

+ 3 - 22
Core/Src/adc.c

@@ -458,10 +458,10 @@ void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
 	if(T_Filt_Cnt >= 3000)
 	{
 	  //计算PCB温度
-		MC_RunInfo.T_PCB = GetNTCTempera_20K(T_PCB_Sum / 3000);
+		MC_RunInfo.T_PCB = GetNTCTempera(T_PCB_Sum / 3000);
 		T_PCB_Sum = 0;
 		//计算绕组温度
-		MC_RunInfo.T_Coil = GetNTCTempera_20K(T_Coil_Sum / 3000);
+		MC_RunInfo.T_Coil = GetNTCTempera(T_Coil_Sum / 3000);
 		T_Coil_Sum = 0;
 		//MCU温度根据PCB初始温度进行校准
 		if(T_MCU_Init_Flag == FALSE)
@@ -471,26 +471,7 @@ void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
 			T_MCU_Init_Flag = TRUE;
 		}
 		//计算MCU温度 		
-		if( HAL_GetTick() < 3000)  MC_RunInfo.T_MCU = 65;  //前11s默认为25度
-		else
-		{		
-			if(MC_HallSensorData.InverterExistFlag == TRUE) //旧电路板使用MCU内部温度传感器
-			{
-				MC_RunInfo.T_MCU = T_MCU_Init + ((int16_t)(T_MCU_Init_AD - T_MCU_Sum / 3000) * 192 >> 10);//4.3mV/度, 3300 / 4095 / 4.3 * 1024 = 192
-			}
-			else
-			{
-				if(MOS_NTC_InitFinishedFlag == FALSE)
-				{
-					MOS_NTC_InitFinishedFlag = TRUE;
-					MOS_NTC_Init();  //PA0切换为AD,采集MOS管温度
-				}
-				else
-				{
-					MC_RunInfo.T_MCU = GetNTCTempera_20K(T_MCU_Sum / 3000);
-				}
-			}
-		}
+		MC_RunInfo.T_MCU = T_MCU_Init + ((int16_t)(T_MCU_Init_AD - T_MCU_Sum / 3000) * 192 >> 10);//4.3mV/度, 3300 / 4095 / 4.3 * 1024 = 192
 		T_MCU_Sum = 0;
 		
 		T_Filt_Cnt = 0;

Разница между файлами не показана из-за своего большого размера
+ 2183 - 2183
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 1 - 1
User/Inc/tim.h

@@ -56,7 +56,7 @@ extern TIM_HandleTypeDef htim3;
 #define PWM_PERIOD      ((uint16_t)(CKTIM / (uint32_t)(2 * PWM_FREQ * (PWM_PRSC+1))))
 	 
 #define CKTIM	          ((uint32_t)72000000uL)	 
-#define DEADTIME_NS	    ((uint16_t)150)	 
+#define DEADTIME_NS	    ((uint16_t)500)	 //150ns
 #define DEADTIME        (uint16_t)((unsigned long long) CKTIM / 2 * (unsigned long long) DEADTIME_NS / 1000000000uL) 
 /* USER CODE END Private defines */
 

+ 1 - 0
User/Inc/var.h

@@ -489,6 +489,7 @@ extern MC_AvgPower_Struct_t MC_AvgPower;
 extern MCU_Manufacturter_Struct_t MCUManufacturer;                         
 extern uint16_t SpeedRatio;
 extern uint16_t HardwareVersion_AD;
+extern TrueOrFalse_Flag_Struct_t VersionIdentifyExecuteFlag;
 /**************************全局变量声明End***************************/
 
 /**************************全局函数声明Begin*************************/

+ 2 - 2
User/Src/hardware_check.c

@@ -30,7 +30,7 @@ void GetHardware_Versin(uint16_t VolaVal)
 {
 	uint8_t Count;
 	static uint16_t timecount = 0;
-	static TrueOrFalse_Flag_Struct_t VersionIdentifyExecuteFlag = FALSE, FirstExecuteFlag = FALSE;
+	static TrueOrFalse_Flag_Struct_t FirstExecuteFlag = FALSE;
 	
 	if(FirstExecuteFlag == FALSE)
 	{
@@ -65,7 +65,7 @@ void GetHardware_Versin(uint16_t VolaVal)
 					if(VolaVal <= Hardware_ADTable[Count])
 					{
 						strncpy(MC_VerInfo.HW_Version, (char*)"TTKZ019A.", 9);
-						MC_VerInfo.HW_Version[7] =Hardware_VersionTable[Count];
+						MC_VerInfo.HW_Version[7] = Hardware_VersionTable[Count];
 						return ;
 					}
 				}

+ 7 - 28
User/Src/protect_check.c

@@ -253,20 +253,10 @@ void MC_Protect_OverHeat_Process(uint8_t T_MCU, uint8_t T_PCB, uint8_t T_Coil, u
 	
 	if(p_MC_ErrorCode->ERROR_Bit.Protect_OverTemp == 0)
 	{
-		//TTKZ019A之前的电路板,单片机100度保护,绕组130度保护
-		if( MC_HallSensorData.InverterExistFlag==TRUE ) 
+		//单片机100度保护,绕组130度保护
+		if( (T_PCB < (TH - 25))&&(T_Coil < (TH + 5)) ) 
 		{
-			if( (T_PCB < (TH - 25))&&(T_Coil < (TH + 5)) ) 
-			{
-				OT_Set_TimeCnt = HAL_GetTick();
-			}
-		}
-		else //TTKZ019A之后的电路板,单片机90度保护,绕组130度保护,MOS管110度保护,
-		{
-			if( (T_PCB < (TH - 35))&&(T_Coil < (TH + 5))&&(T_MCU < (TH - 15)) ) 
-			{
-				OT_Set_TimeCnt = HAL_GetTick();
-			}
+			OT_Set_TimeCnt = HAL_GetTick();
 		}
 		//过热保护判断
 		if((HAL_GetTick() - OT_Set_TimeCnt) > 5000)
@@ -283,22 +273,11 @@ void MC_Protect_OverHeat_Process(uint8_t T_MCU, uint8_t T_PCB, uint8_t T_Coil, u
 	}
 	else
 	{
-		//过热保护恢复
-		if( MC_HallSensorData.InverterExistFlag==TRUE ) 
+		//过热保护恢复 PCB温度小于100度,绕组温度小于105度,且保护时间大于5分钟
+		if(( (T_PCB < (TH - 25)) && (T_Coil < (TH  - 20)) ) && ((HAL_GetTick() - OT_Reset_TimeCnt) > 300000))
 		{
-			if(( (T_PCB < (TH - 25)) && (T_Coil < (TH  - 20)) ) && ((HAL_GetTick() - OT_Reset_TimeCnt) > 300000))
-			{
-				p_MC_ErrorCode->ERROR_Bit.Protect_OverTemp = 0;
-				OT_Set_TimeCnt = HAL_GetTick();
-			}
-		}
-		else
-		{
-			if(( (T_PCB < (TH - 35)) && (T_Coil < (TH  - 20))&&(T_MCU < (TH  - 15)) ) && ((HAL_GetTick() - OT_Reset_TimeCnt) > 300000))
-			{
-				p_MC_ErrorCode->ERROR_Bit.Protect_OverTemp = 0;
-				OT_Set_TimeCnt = HAL_GetTick();
-			}
+			p_MC_ErrorCode->ERROR_Bit.Protect_OverTemp = 0;
+			OT_Set_TimeCnt = HAL_GetTick();
 		}
 	}
 }

+ 2 - 1
User/Src/var.c

@@ -41,6 +41,7 @@ MC_AvgPower_Struct_t MC_AvgPower;                         //
 MCU_Manufacturter_Struct_t MCUManufacturer;               //MCU生厂商
 uint16_t SpeedRatio;
 uint16_t HardwareVersion_AD=0;
+TrueOrFalse_Flag_Struct_t VersionIdentifyExecuteFlag = FALSE;
 //BMS默认设计信息
 const BMS_DesignInfo_Struct_t BMS_DesignInfo_Default =
 {
@@ -499,7 +500,7 @@ void Var_Init(void)
 		
 	//MC版本信息初始化,Mode和SN从EEPROM读取
 	strncpy(MC_VerInfo.HW_Version, (char*)"TTKZ010D.       ", 16);
-	strncpy(MC_VerInfo.FW_Version, (char*)"V7r2r0_20220717C", 16);
+	strncpy(MC_VerInfo.FW_Version, (char*)"V7r2r0_20220720C", 16);
   #if NormalWork
 	MC_VerInfo.FW_Version[15] = '.';
   #endif

Некоторые файлы не были показаны из-за большого количества измененных файлов