Bladeren bron

增加产品标签写入和读取指令,使用与客户对产品标签有特殊需求时出厂写入,默认为0xFF。

Dail 1 jaar geleden
bovenliggende
commit
1151de0358

+ 1 - 1
MDK-ARM/QD007A_CTL_APP.uvprojx

@@ -362,7 +362,7 @@
             <useXO>0</useXO>
             <VariousControls>
               <MiscControls></MiscControls>
-              <Define>USE_HAL_DRIVER,STM32F103xB,PEGASI_48V,BARD_250K</Define>
+              <Define>USE_HAL_DRIVER,STM32F103xB,PEGASI_36V,BARD_250K</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>

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


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 2 - 1
User/Inc/eeprom_flash.h

@@ -20,7 +20,8 @@
 #define    EEPROM_FLASH_ADDR_CONFIG_PARAM2       EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)180         //配置参数2 32bytes + 4bytes
 #define    EEPROM_FLASH_ADDR_MOTOR_PARAM         EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)216         //马达参数 16bytes + 4bytes
 #define    EEPROM_FLASH_ADDR_GEARBOX_PARAMS      EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)236         //自动变速器控制参数 8bytes + 4bytes  
-#define    EEPROM_FLASH_ADDR_BATTERY_PARMAS      EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)248         //电池放电曲线参数 204bytes + 4bytes  
+#define    EEPROM_FLASH_ADDR_BATTERY_PARMAS      EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)248         //电池放电曲线参数 204bytes + 4bytes
+#define    EEPROM_FLASH_ADDR_TAG_INFO            EEPROM_FLASH_BEGIN_ADDRESS + (uint32_t)456         //产品标签信息 32bytes + 4bytes
 
 #define    EEPROM_FLASH_ADDR_TEMP_BEGIN_ADDRESS    0x0801F400
 #define    EEPROM_FLASH_ADDR_TEMP_END_ADDRESS      0x0801F7FF

+ 1 - 0
User/Inc/var.h

@@ -533,6 +533,7 @@ extern MC_DebugInfo_Struct_t MC_DebugInfo;
 extern MC_ErrorCode_Struct_t MC_ErrorCode;
 extern MC_VerInfo_Struct_t MC_VerInfo;
 extern char Firmware_Special[32];
+extern uint8_t MC_TagInfo[32];
 extern OnLine_Status_Struct_t DeviceOnLine_Status;
 extern BMS_RunInfo_Struct_t BMS_RunInfo;
 extern Device_CheckInfo_Struct_t BMS_CheckInfo;

+ 13 - 0
User/Src/can_process.c

@@ -855,6 +855,19 @@ void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t* Data)
 					SendData(ID_MC_TO_CDL, MODE_REPORT, 0xA903, (uint8_t*)"ACK");
 					break;
 				}
+				case 0x3C00://查询电机标签信息
+				{
+				  ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_TAG_INFO, MC_TagInfo, 32);
+					SendData(ID_MC_TO_CDL, MODE_REPORT, 0xBB20, MC_TagInfo);
+					break;
+				}
+				case 0x3D20://写入自定义字符串1
+				{
+				  memcpy(MC_TagInfo, Data, DataLength);
+					IsFlashSaveDataUpdate = TRUE;
+					SendData(ID_MC_BC, MODE_REPORT, 0xA903, (uint8_t*)"ACK");
+					break;
+				}
 				default:break;
 			}
 			break;

+ 9 - 1
User/Src/eeprom_flash.c

@@ -41,7 +41,9 @@ void CopyDataToEEPROM_Flash(void)
 	SaveDataToEEPROM_Flash(EEPROM_FLASH_ADDR_GEARBOX_PARAMS, (uint8_t*)&GearBox_OBC_SetParams.GearNum, 8);
 	//写入电池放电曲线参数
 	SaveDataToEEPROM_Flash(EEPROM_FLASH_ADDR_BATTERY_PARMAS, (uint8_t*)&BatteryCellInfo.DesignCap, sizeof(BatterCellInfo_Struct_t));
-	
+	//写入产品标签信息
+	SaveDataToEEPROM_Flash(EEPROM_FLASH_ADDR_TAG_INFO, (uint8_t*)MC_TagInfo, 32);
+		
 	//写入标志
 	Temp_32[0] = (EEPROM_Flash_Flag[0] << 24) + (EEPROM_Flash_Flag[1] << 16) + (EEPROM_Flash_Flag[2] << 8) + EEPROM_Flash_Flag[3];
 	Temp_32[1] = CRC32_Calculate((uint8_t*)EEPROM_Flash_Flag, 4);
@@ -119,6 +121,12 @@ void CopyDataFromEEPROM_Flash(void)
 	{
 	   memcpy((uint8_t*)&BatteryCellInfo.DesignCap, Flash_ReadDataBuf, sizeof(BatterCellInfo_Struct_t));
 	}
+	//读取产品标签信息
+	Error_OK = ReadDataFromEEPROM_Flash(EEPROM_FLASH_ADDR_TAG_INFO, Flash_ReadDataBuf, 32);
+	if(Error_OK == 0)
+	{
+	   memcpy(&MC_TagInfo, Flash_ReadDataBuf, 32);
+	}
 }
 
 //指定地址写入指定长度数据类型为32bit数据

+ 14 - 1
User/Src/var.c

@@ -5,7 +5,8 @@ MC_RunInfo_Struct_t MC_RunInfo;                           //MC
 MC_DebugInfo_Struct_t MC_DebugInfo;                       //MC调试信息
 MC_ErrorCode_Struct_t MC_ErrorCode;                       //MC故障代码
 MC_VerInfo_Struct_t MC_VerInfo;                           //MC版本信息
-char Firmware_Special[32];                                //MC软件版本特性说明
+char Firmware_Special[32] = {0,};                         //MC软件版本特性说明
+uint8_t MC_TagInfo[32] = {0,};                               //MC生产标签信息
 OnLine_Status_Struct_t DeviceOnLine_Status;               //设备在线检测结果
 BMS_RunInfo_Struct_t BMS_RunInfo;                         //BMS运行信息
 Device_CheckInfo_Struct_t BMS_CheckInfo;                  //BMS授权校验
@@ -736,6 +737,18 @@ void Var_Init(void)
 	strncpy(MC_MacInfo.MacAddr, (char*)"WUHAN.  ", 8);
 	strncpy(MC_MacInfo.MacDate, (char*)"20210901", 8);
 
+	//产品标签
+	/*
+	Digit1-2:   MO(Battery:BT, Controller:CT, BB:BB, Charger:CG, Display:DP, Motor:MO)
+	Digit3-4:   MA(MOTINOVA)
+	Digit5-10:  000001(Consecutive number)
+	Digit11-17: V1.2202(Hardware version:"Version." + Date(YYMM))
+	Digit18-24: /261022(Production Date:/DDMMYY)
+	Digit25-26: FI(Customer:Fishcer)
+	Digit27-31: 65347(Customer Article No.)
+	*/
+	//strncpy(MC_TagInfo, (char*)"MOMA000001V1.2202/261022FI65347 ", 32);
+	
 	//MCU ID读取
 	memcpy((uint8_t*)MC_CheckInfo.MAC_ID, (uint8_t*)(0x1FFFF7E8), 12);
 

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