dail 3 rokov pred
rodič
commit
c54a1e7cbc

+ 1 - 1
Core/Src/usart.c

@@ -58,7 +58,7 @@ void MX_USART3_UART_Init(void)
 {
 
   huart3.Instance = USART3;
-  huart3.Init.BaudRate = 9696;//针对HK单片机波特率偏差调整
+  huart3.Init.BaudRate = 9600;
   huart3.Init.WordLength = UART_WORDLENGTH_8B;
   huart3.Init.StopBits = UART_STOPBITS_1;
   huart3.Init.Parity = UART_PARITY_NONE;

+ 4 - 4
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex

@@ -1625,7 +1625,7 @@
 :20FAE00020B14FF48F7115A004F0ECF800200790089007A91048FAF7C2FF20B140F2251123
 :20FB00000EA004F0DFF86020009024200190002002900490002269460748FBF77FFA20B1E5
 :20FB20004FF4977105A004F0CDF80348FBF72CFA09B000BD00040040801300202E2E5C553F
-:20FB40007365725C5372635C74696D2E6300000010B50C480C49086042F2E050486000219D
+:20FB40007365725C5372635C74696D2E6300000010B50C480C4908604FF416504860002158
 :20FB600009488160C16001610C21416100218161C161FBF7EBFC18B1462104A004F0A2F8A1
 :20FB800010BD000000480040381B00202E2E5C436F72655C5372635C75736172742E6300BC
 :20FBA00000BFFEE730B504460A460021002320480078401C1E4D28702846007808282FDB7F
@@ -2139,8 +2139,8 @@
 :203B0000082232A13448EFF7EEFF082233A132480830EFF7E8FF082233A12F481030EFF741
 :203B2000E2FF3448344B0ECB0EC000F08DF800F065F810BD3C01002058010020400100203C
 :203B40006C070020AC07002094070020D44C01088407002041010020E44C010851443030E0
-:203B600037482E001C0700205632723172355F32303231313230322E000000005443303174
-:203B8000333035342D4D4232303031484B2D563172322E20202020202020202000000000A1
+:203B600037482E001C0700205632723172355F32303231303730312E000000005443303171
+:203B8000333035342D4D4232303031484B2D563172312E20202020202020202000000000A2
 :203BA0003C070020564C36355858265653373558582E20200000000030303030303030300C
 :203BC0003030303030303030000000004D4F54494E4F564100000000540800205755484147
 :203BE0004E2E202000000000323032313031303100000000CC080020E8F7FF1F10B530227A
@@ -2554,6 +2554,6 @@
 :206EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2
 :206F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91
 :206F2000000000000000000000000000000000000000000000000000000000000000000051
-:046F4000470650CDE3
+:046F40002DC76CF0FD
 :04000005080030EDD2
 :00000001FF

BIN
MDK-ARM/bin/MC_VS7500-TC013054-MB2001-V2.1.5.1.2_20211202.bin → MDK-ARM/bin/MC_VS65X3&VS75X3-TC013054-MB2001HK-V2.1.5.1.1_20210701_2.bin


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 0 - 4
User/Inc/math_tools.h

@@ -3,12 +3,9 @@
 
 #include "stm32f1xx_hal.h"
 #include "math.h"
-#include "string.h"
 
 extern uint16_t MovingAverageFilter(uint16_t InputData, uint16_t* Array, uint16_t Length);
-extern uint16_t MovingMiddleFilter(uint16_t InputData, uint16_t* Array, uint16_t Length);
 extern uint16_t GetAverageData(uint16_t* Input, uint16_t Length);
-extern uint16_t GetMiddleData(uint16_t* Input, uint16_t Length);
 extern uint16_t Function_Linear_3Stage(uint16_t Th1, int16_t K1, uint16_t Th2, int16_t K2, uint16_t InputData);
 extern uint16_t Coefficient_GainCal(uint16_t Min, uint16_t Max, uint16_t Th, uint16_t InputData);
 extern uint16_t TriangleWaveGenerate(uint32_t Time_Zero, uint16_t Time1, uint16_t Time2, uint16_t PeakValue);
@@ -27,6 +24,5 @@ extern int16_t accDecProcess(int16_t V_Set,	\
 											int32_t* V_SetMiddle);
 extern uint16_t Standard_deviation_aver(uint16_t *data,uint8_t len, uint16_t *pAver);
 extern uint8_t CheckArrayIs0(uint8_t* Data, uint16_t Len);
-extern void MinToMax(uint16_t* Input, uint16_t Length);
 extern void ArrayFillZero(uint16_t* Array, uint16_t Length);
 #endif

+ 0 - 73
User/Src/math_tools.c

@@ -23,29 +23,6 @@ uint16_t MovingAverageFilter(uint16_t InputData, uint16_t* Array, uint16_t Lengt
 	return Result;
 }
 
-/*
-滑动中值滤波
-InputData:最新采集值
-Array:缓存队列
-Length:缓存大小
-运行一次后,缓存队列最后一个数据为最新采集值,前面数据依次前移,返回值为缓存队列平均值
-*/
-uint16_t MovingMiddleFilter(uint16_t InputData, uint16_t* Array, uint16_t Length)
-{
-	uint16_t Result, i;
-	
-	Result = GetMiddleData(Array, Length);
-	
-	for(i=0; i<(Length - 1); i++)
-	{
-	  Array[i] = Array[i+1];
-	}
-	
-	Array[Length - 1] = InputData;
-
-	return Result;
-}
-
 /*
 取平均值
 Input:输入数组
@@ -66,38 +43,6 @@ uint16_t GetAverageData(uint16_t* Input, uint16_t Length)
 	return Result;
 }
 
-/*
-取中间值
-Input:输入数组
-Length:有效数据长度
-返回值为输入数组平均值 
-*/
-uint16_t GetMiddleData(uint16_t* Input, uint16_t Length)
-{
-  uint16_t i, Result = 0;
-	uint16_t Temp[32];
-	
-	if(Length > 32)
-	{
-	  return 0xFFFF;
-	}
-	
-	for(i = 0; i < Length; i++)
-	{
-	  Temp[i] = Input[i];
-	}
-	MinToMax(Temp, Length);
-	if(Length % 2 == 0)//长度为偶数,取中间两个数的平均值
-	{
-	  Result = (Temp[(Length >> 1) -1] + Temp[Length  >> 1]) >> 1;
-	}
-	else//长度为奇数,取中间数
-	{
-	  Result = Temp[(Length - 1) >> 1];
-	}
-	return Result;
-}
-
 /*
 三段曲线计算
 0< InputData < Th1 :       y = 1 - (Th1 - InputData) * K1
@@ -442,24 +387,6 @@ uint8_t CheckArrayIs0(uint8_t* Data, uint16_t Len)
 	return 0;
 }
 
-/*小到达排序*/
-void MinToMax(uint16_t* Input, uint16_t Len)
-{
-  uint16_t i, j, Temp;
-	for(i=0; i<Len - 1; i++)
-	{
-	  for (j=0; j<Len - 1 - i; j++)
-		{
-			if (Input[j] > Input[j + 1])
-			{
-					Temp = Input[j];
-					Input[j] = Input[j + 1];
-					Input[j + 1] = Temp;//交换
-			}
-		}
-	}
-}
-
 /*数组填充0*/
 void ArrayFillZero(uint16_t* Array, uint16_t Length)
 {

+ 2 - 1
User/Src/protect_check.c

@@ -386,7 +386,7 @@ void MC_OverCurrent_SoftProtect_Process(uint16_t BusCurrent, uint16_t MaxCurrent
 
 /******************************全局函数定义******************************/
 #define OC_CLEARFLAG_DELAYTIME 15 //过流标志间隔清零延时,单位ms
-#define OC_COUNTER_TH 200         //过流保护计数判断阈值
+#define OC_COUNTER_TH 100         //过流保护计数判断阈值
 //过流保护检测
 /*
 检测原理:
@@ -452,4 +452,5 @@ void MC_Protect_Check_Process(void)
 	
 	//软件过流保护检测
 	MC_OverCurrent_SoftProtect_Process(MC_RunInfo.BusCurrent, MC_ConfigParam1.CurrentLimit * 1000, &MC_ErrorCode);
+
 }

+ 1 - 0
User/Src/speed_sensor.c

@@ -62,6 +62,7 @@ void SpeedSensor_Process(MC_SpeedSensorData_Struct_t* p_MC_SpeedSensorData, uint
 			
 			//滑动均值滤波
 			*AvgResult = MovingAverageFilter(p_MC_SpeedSensorData->Speed_Data, FiltTemp, sizeof(FiltTemp) >> 1);
+			
 			//在确定停止前进行衰减
 			if((HAL_GetTick() - p_MC_SpeedSensorData->TrigSysTime) > (p_MC_SpeedSensorData->DiffTime_ms * 2))
 			{

+ 2 - 1
User/Src/tasks.c

@@ -64,7 +64,8 @@ void HAL_SYSTICK_Callback(void)
 	if(IsGasSensorConnectedFlag == TRUE)
 	{
 		GasSensorOffSetData_Update(&GasSensor_OffSet, ADC1_Result[ADC1_RANK_GAS], &MC_ErrorCode);
-	}	
+	}
+	
 	//ADCÊý¾Ý»¬¶¯Â˲¨¼ÆËã
 	ADC_SensorData_Filt(ADC1_Result_Filt, ADC2_Result_Filt);
 	

+ 3 - 3
User/Src/var.c

@@ -496,9 +496,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*)"QD007H.", 7);
-	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r5_20211202.", 16);
-	strncpy(Firmware_Special, (char*)"TC013054-MB2001HK-V1r2.         ", 32);
+  strncpy(MC_VerInfo.HW_Version, (char*)"QD007H.", 7);//长度不超过10
+	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r5_20210701.", 16);
+	strncpy(Firmware_Special, (char*)"TC013054-MB2001HK-V1r1.         ", 32);
 		
 	//电机型号
 	strncpy(MC_VerInfo.Mode, (char*)"VL65XX&VS75XX.  ", 16);

+ 1 - 1
修改说明.txt

@@ -390,7 +390,7 @@ V2.1.5_20200904
 1、里程统计增加过滤,避免干扰信号导致里程统计不准;
 2、针对开机后母线电压采集上升缓慢,优化SOC初始值的计算方法。
 
-V2.1.5_20211202 TC013054-MB2001HK-V1r2
+2.1.5_20210701 TC013054-MB2001HK-V1r1 _2
 1、增加识别MCU品牌的代码,加入硬件版本号的第11个字节,当主控为HK时,对母线电压采集增加补偿;
 2、解决转把模式无法检测速度传感器故障的问题;
 3、增加根据SOC限流的处理;