Эх сурвалжийг харах

硬件版本增加36V和48V标识。
1-8:PCB板号
9-10:电压标识
11-12:MCU型号
13-16:物理ID校验

Dail 1 жил өмнө
parent
commit
e052ef8884

+ 1 - 1
MDK-ARM/QD007A_CTL_APP.uvprojx

@@ -362,7 +362,7 @@
             <useXO>0</useXO>
             <VariousControls>
               <MiscControls></MiscControls>
-              <Define>USE_HAL_DRIVER,STM32F103xB,PEGASI_36V,BARD_250K</Define>
+              <Define>USE_HAL_DRIVER,STM32F103xB,PEGASI_36V,BARD_125K</Define>
               <Undefine></Undefine>
               <IncludePath>../Core/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F1xx/Include;../Drivers/CMSIS/Include;..\User\Inc;..\SEGGER_RTT\Inc;..\SelfTestUser\Inc</IncludePath>
             </VariousControls>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 2296 - 2296
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 16 - 13
User/Src/hardware_check.c

@@ -42,29 +42,32 @@ void GetHardware_Versin(uint16_t VolaVal)
 	if(HAL_GetTick() > timecount) //2s后开始识别
 	{
 		if(VersionIdentifyFinishedFlag == FALSE)
-		{
-			
-			
-//			strncpy(MC_VerInfo.FW_Version, (char*)"                 ", 16);						
-//			sprintf(&MC_VerInfo.FW_Version[0], "%4u", VolaVal);
-//			if( IsComOK_TE.IsOK_Flag == TRUE ) MC_VerInfo.FW_Version[4] = 'Y';
-//			else MC_VerInfo.FW_Version[4] = 'N';
-//			sprintf(&MC_VerInfo.FW_Version[5], "%4u", MC_TE_SyncClockFreqScan);
-//			MC_VerInfo.FW_Version[9] = ' ';
-//			sprintf(&MC_VerInfo.FW_Version[10], "%5u", timecount);
-			
+		{			
 			if( (IsComOK_TE.IsOK_Flag == TRUE)||(MC_TE_SyncClockFreqScan>200)||((VolaVal>1986)&&(VolaVal<2110)) ) //有反相器和TE的电路板
 			{
 				MC_HallSensorData.InverterExistFlag = TRUE;
+				#if defined (PEGASI_36V)
+				strncpy(MC_VerInfo.HW_Version, (char*)"TTKZ010D36", 10);
+				#elif defined (PEGASI_48V)
+				strncpy(MC_VerInfo.HW_Version, (char*)"TTKZ010D48", 10);
+				#else
+				Error
+				#endif
 			}
-			else             //无反相器和TE的电路板
+			else //无反相器和TE的电路板
 			{
 				MC_HallSensorData.InverterExistFlag = FALSE;
 				for(Count=0; Count<9; Count++)
 				{
 					if(VolaVal <= Hardware_ADTable[Count])
 					{
-						strncpy(MC_VerInfo.HW_Version, (char*)"TTKZ019A.", 9);
+						#if defined (PEGASI_36V)
+						strncpy(MC_VerInfo.HW_Version, (char*)"TTKZ019A36", 10);
+						#elif defined (PEGASI_48V)
+						strncpy(MC_VerInfo.HW_Version, (char*)"TTKZ019A48", 10);
+						#else
+						Error
+						#endif
 						MC_VerInfo.HW_Version[7] =Hardware_VersionTable[Count];
 						VersionIdentifyFinishedFlag = TRUE;
 						return ;

+ 0 - 1
User/Src/uart_process.c

@@ -42,7 +42,6 @@ void UART_DataProcess(uint8_t Mode, uint16_t Command, uint8_t* Data)
 			{
 			  if(Data16_Temp < Ver_Table[i]) break;
 			}
-//			strncpy(MC_VerInfo.HW_Version, (char*)"TTKZ010   ", 10);
 			MC_VerInfo.HW_Version[7] = 'F' + i;
 			break;
 		}

+ 10 - 2
User/Src/var.c

@@ -673,9 +673,16 @@ void Var_Init(void)
 	//PBU配置参数初始化为默认值
 	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*)"TTKZ010D.       ", 16);
+  //硬件版本,8位板号,2位电压标识,2位MCU型号,4位物理ID CRC32
+	#if defined (PEGASI_36V)
+	strncpy(MC_VerInfo.HW_Version, (char*)"        36      ", 16);
+	#elif defined (PEGASI_48V)  
+	strncpy(MC_VerInfo.HW_Version, (char*)"        48      ", 16);
+	#else
+	Error
+	#endif
 	
+  //软件版本	
 	#if defined BARD_250K
   strncpy(MC_VerInfo.FW_Version, (char*)"V7r2r3_20231118C", 16);
 	#elif defined BARD_125K
@@ -723,6 +730,7 @@ void Var_Init(void)
 	if(MCUManufacturer == NoName) MC_VerInfo.HW_Version[10] = '0';
 	else if(MCUManufacturer == STM32F103RBT6) MC_VerInfo.HW_Version[10] = '1';
 	else if(MCUManufacturer == APM32F103RBT6) MC_VerInfo.HW_Version[10] = '2';
+	else if(MCUManufacturer == APM32F103RCT7) MC_VerInfo.HW_Version[10] = '2';
 	else if(MCUManufacturer == HK32F103RBT6) MC_VerInfo.HW_Version[10] = '3';
 	else if(MCUManufacturer == GD32F103RBT6) MC_VerInfo.HW_Version[10] = '4';
 	else MC_VerInfo.HW_Version[10] = '0';

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно