Преглед на файлове

1 硬件版本故障检测增加通讯标志记录;
2 修改温度保护逻辑,删掉MCU温度;

white.xu преди 3 години
родител
ревизия
0584ec2a50
променени са 6 файла, в които са добавени 1401 реда и са изтрити 1410 реда
  1. 1390 1390
      MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex
  2. BIN
      MDK-ARM/bin/QD007A_CTL_APP.bin
  3. 0 1
      User/Src/can_process.c
  4. 4 4
      User/Src/fault_check.c
  5. 2 1
      User/Src/hardware_check.c
  6. 5 14
      User/Src/protect_check.c

Файловите разлики са ограничени, защото са твърде много
+ 1390 - 1390
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 0 - 1
User/Src/can_process.c

@@ -587,7 +587,6 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 				  if(strncmp("CLEAR", (char*)Data, DataLength) == 0)
 					{
 					  EEPROM_24C02_ClearData(&I2C_Handle_EEPROM, EEPROM_24C02_ADDR_FLAG, EEPROM_24C02_ADDR_FLAG + 4, 0xFF);
-//						EEPROM_24C02_ClearData(&I2C_Handle_EEPROM, EEPROM_24C02_ADDR_FLAG, EEPROM_24C02_ADDR_END, 0xFF);
 						EEPROM_Flash_Erase(EEPROM_FLASH_BEGIN_ADDRESS, EEPROM_FLASH_END_ADDRESS);
 						EEPROM_Flash_Erase(LOG_ADDRESS_BEGIN, LOG_ADDRESS_END);
 						SendData(ID_MC_TO_CDL, MODE_REPORT, 0xA903, (uint8_t*)"ACK");

+ 4 - 4
User/Src/fault_check.c

@@ -898,7 +898,7 @@ void MC_Fault_Hardware_Identify(TrueOrFalse_Flag_Struct_t TEComOKFlag, uint16_t
 	
 	if( HAL_GetTick() < 5000) return;
 	
-	if( p_MC_ErrorCode->ERROR_Bit.Fault_Circuit == 0)  //单向器没有故障时开始检测,有故障后故障一直存在,故障检测不再执行
+	if( p_MC_ErrorCode->ERROR_Bit.Fault_Circuit == 0)  //没有故障时开始检测,有故障后故障一直存在,故障检测不再执行
 	{
 		if( (HAL_GetTick()-TimeCount_HardwareFault)>=20 )  //20ms执行一次故障判断
 		{
@@ -918,7 +918,7 @@ void MC_Fault_Hardware_Identify(TrueOrFalse_Flag_Struct_t TEComOKFlag, uint16_t
 						p_MC_ErrorCode->ERROR_Bit.Fault_Circuit = 1;
 						//记录故障日志
 						MC_ErrorLogSaveInfo.NotesInfo1 = 6;       
-						MC_ErrorLogSaveInfo.NotesInfo2 = SyncClockFreqScan;
+						MC_ErrorLogSaveInfo.NotesInfo2 = (SyncClockFreqScan<<2)+TEComOKFlag;
 						MC_ErrorLogSaveInfo.NotesInfo3 = Hardware_AD;
 						ErrorLogSave_Update(&MC_ErrorLogSaveInfo);
 						IsErrorLogSaveInfoUpdateFlag = TRUE;
@@ -944,8 +944,8 @@ void MC_Fault_Hardware_Identify(TrueOrFalse_Flag_Struct_t TEComOKFlag, uint16_t
 							HardwareFaultCount2 = 0;
 							p_MC_ErrorCode->ERROR_Bit.Fault_Circuit = 1;
 							//记录故障日志
-							MC_ErrorLogSaveInfo.NotesInfo1 = 6;       
-							MC_ErrorLogSaveInfo.NotesInfo2 = SyncClockFreqScan;
+							MC_ErrorLogSaveInfo.NotesInfo1 = 7;       
+							MC_ErrorLogSaveInfo.NotesInfo2 = (SyncClockFreqScan<<2)+TEComOKFlag;
 							MC_ErrorLogSaveInfo.NotesInfo3 = Hardware_AD;
 							ErrorLogSave_Update(&MC_ErrorLogSaveInfo);
 							IsErrorLogSaveInfoUpdateFlag = TRUE;

+ 2 - 1
User/Src/hardware_check.c

@@ -1,6 +1,7 @@
 #include "hardware_check.h"
 #include "adc.h"
 #include "hall_sensor.h"
+#include "main.h"
 const uint16_t Hardware_ADTable[9]={
 	620, //0.50V
 	930, //0.75V
@@ -29,7 +30,7 @@ void GetHardware_Versin(uint16_t VolaVal)
 {
 	uint8_t Count;
 	static uint16_t timecount = 0;
-	static _Bool VersionIdentifyExecuteFlag = FALSE, FirstExecuteFlag = FALSE;
+	static TrueOrFalse_Flag_Struct_t VersionIdentifyExecuteFlag = FALSE, FirstExecuteFlag = FALSE;
 	
 	if(FirstExecuteFlag == FALSE)
 	{

+ 5 - 14
User/Src/protect_check.c

@@ -254,21 +254,12 @@ 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)
 	{
 		//温度传感器相互比较,差值在允许范围内进行处理
-		if(((T_MCU < (50 + T_PCB))  || (T_PCB < (50 + T_MCU))) &&    //PCB温度和MCU温度差值小于50度
-			 ((T_MCU < (100 + T_Coil)) || (T_Coil < (100 + T_MCU))))   //绕组温度和MCU温度差值小于100度
-		{
-			if((T_PCB < (TH - 20)) && (T_Coil < (TH + 15)))
-			{
-				OT_Set_TimeCnt = HAL_GetTick();
-			}
-		}
-		else
+
+		if((T_PCB < (TH - 20)) && (T_Coil < (TH + 5)))
 		{
-			if(T_MCU < (TH - 20))
-			{
-			  OT_Set_TimeCnt = HAL_GetTick();
-			}
+			OT_Set_TimeCnt = HAL_GetTick();
 		}
+		
 		//过热保护判断
 		if((HAL_GetTick() - OT_Set_TimeCnt) > 5000)
 		{
@@ -285,7 +276,7 @@ void MC_Protect_OverHeat_Process(uint8_t T_MCU, uint8_t T_PCB, uint8_t T_Coil, u
 	else
 	{
 		//过热保护恢复
-		if((((T_PCB < (TH - 20)) && (T_Coil < (TH  - 20))) || (T_MCU < (TH - 40))) && ((HAL_GetTick() - OT_Reset_TimeCnt) > 300000))
+		if(( (T_PCB < (TH - 20)) && (T_Coil < (TH  - 20)) ) && ((HAL_GetTick() - OT_Reset_TimeCnt) > 300000))
 		{
 			p_MC_ErrorCode->ERROR_Bit.Protect_OverTemp = 0;
 			OT_Set_TimeCnt = HAL_GetTick();

Някои файлове не бяха показани, защото твърде много файлове са промени