Prechádzať zdrojové kódy

MC_VS7500-TC033001-MS2001-V2.1.6.0.9_20210701
1、转把模式,关闭力矩传感器故障检测;
2、修改电机工作模式判断,OFF档有转把信号时进入Walk模式;
3、接收到关机指令时,关闭前后灯。

dail 4 rokov pred
rodič
commit
0140a3cbdf

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1470 - 1470
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/MC_VS7500-TC033001-MS2001-V2.1.6.0.9_20210701.bin


+ 3 - 3
User/Src/fault_check.c

@@ -81,7 +81,7 @@ void MC_Fault_SpeedSensor_Process(TrueOrFalse_Flag_Struct_t IsStopFlag, MC_Caden
 }
 
 //力矩传感器故障检测
-void MC_Fault_TorqueSensor_Process(uint16_t ADC_Data, MC_GearSt_Struct_t GearSt, MC_CadenceResult_Struct_t CadenceData, MC_AssistRunMode_Struct_t AstMode, MC_ErrorCode_Struct_t* p_MC_ErrorCode)
+void MC_Fault_TorqueSensor_Process(uint16_t ADC_Data,  uint16_t GasSensor, MC_GearSt_Struct_t GearSt, MC_CadenceResult_Struct_t CadenceData, MC_AssistRunMode_Struct_t AstMode, MC_ErrorCode_Struct_t* p_MC_ErrorCode)
 {
   static uint32_t TrigTimeCnt_1 = 0;
 	static uint32_t TrigTimeCnt_2 = 0;
@@ -111,7 +111,7 @@ void MC_Fault_TorqueSensor_Process(uint16_t ADC_Data, MC_GearSt_Struct_t GearSt,
 		{
 			DiffSqrtResult = GetStandardDeviation(TorqueArray, sizeof(TorqueArray) / 2);
 			//传感器感应失效检测,进入力矩助力模式、踏频正转大于10rpm、标准差较小
-			if(((GearSt != 0x22) && ((GearSt & 0x0F) != 0)) && (CadenceData.Cadence_Data > 30) && (CadenceData.Cadence_Dir == MC_Cadence_Forward) && (AstMode == MC_AssistRunMode_TORQUE) && (DiffSqrtResult < 10))
+			if(((GearSt != 0x22) && ((GearSt & 0x0F) != 0)) && (GasSensor < 500) && (CadenceData.Cadence_Data > 30) && (CadenceData.Cadence_Dir == MC_Cadence_Forward) && (AstMode == MC_AssistRunMode_TORQUE) && (DiffSqrtResult < 10))
 			{
 				DelayTime = 15000 / CadenceData.Cadence_Data;  //根据踏频计算踩踏1/4圈的时间,要考虑空踩情况
 				DelayTime = (DelayTime < 250) ? 250 : DelayTime;
@@ -993,7 +993,7 @@ void MC_Fault_Check_Process(void)
 	}
 
 	//力矩传感器故障检测
-	MC_Fault_TorqueSensor_Process(ADC1_Result[ADC1_RANK_TORQUE_SENSOR], MC_ControlCode.GearSt, MC_CadenceResult, MC_CalParam.AssistRunMode, &MC_ErrorCode);
+  MC_Fault_TorqueSensor_Process(ADC1_Result[ADC1_RANK_TORQUE_SENSOR], ADC_SensorData.GasSensor, MC_ControlCode.GearSt, MC_CadenceResult, MC_CalParam.AssistRunMode, &MC_ErrorCode);
 	
 	//相线故障检测
 	MC_Fault_PhaseLine_Process(MC_CalParam.Foc_Flag, MC_RunInfo.BusCurrent, MC_RunInfo.MotorSpeed, ADC_3ShuntCurrent_RMSValue, &MC_ErrorCode);

+ 48 - 31
User/Src/motor_control.c

@@ -157,45 +157,62 @@ MC_AssistRunMode_Struct_t MC_JudgeAsistRunMode_Process(MC_GearSt_Struct_t GearSt
 {
   MC_AssistRunMode_Struct_t MC_AssistRunMode_Result = MC_AssistRunMode_INVALID;
 	
-	if(MC_ErrorCode.Code == 0)  // 无故障
+	if(MC_ErrorCode.Code == 0)  //无故障
 	{
-	  if((GearSt != MC_GearSt_OFF) && (StopFlag == FALSE))
+	  if(StopFlag == FALSE)  //无刹车
 		{
-		  //进入推行模式
-			if(GearSt == MC_GearSt_WALK)
+		  do
 			{
-				MC_AssistRunMode_Result = MC_AssistRunMode_WALK;
-			}
-			//进入踏频模式
-			else if((GearSt & 0xF0) == 0x10)
-			{
-			  #if CADENCE_MODE_ENABLE
-				MC_AssistRunMode_Result = MC_AssistRunMode_CADENCE;
-				#endif
-			}
-			else
-			{
-			  #if 1
-				static MC_AssistRunMode_Struct_t MC_AssistRunMode_Result_Old = MC_AssistRunMode_INVALID;
-				//进入力矩模式
-				MC_AssistRunMode_Result = MC_AssistRunMode_TORQUE;
-				//判断是否进入转把推行模式
-				if((Cadence < 15) && (AdcSenorData.TorqueSensor < 100) && (AdcSenorData.GasSensor > 50))
+			  if((GearSt == MC_GearSt_OFF) && (AdcSenorData.GasSensor > 200))  //OFF档,转把有信号进入推行模式
 				{
-					if(((MC_AssistRunMode_Result_Old == MC_AssistRunMode_TORQUE) && (MC_HallSensorData.IsStopFlag == TRUE)) //上一次处于力矩模式,需电机停止才能进入转把推行
-						 ||(MC_AssistRunMode_Result_Old == MC_AssistRunMode_WALK)) //上一次处于转把推行模式,继续维持
+				  MC_AssistRunMode_Result = MC_AssistRunMode_WALK;
+					break;
+				}
+				if(GearSt != MC_GearSt_OFF)  //非OFF档,转把无信号,判断是否进入推行或力矩模式
+				{
+				  //进入推行模式
+					if(GearSt == MC_GearSt_WALK)
+					{
+						MC_AssistRunMode_Result = MC_AssistRunMode_WALK;
+					}
+					//进入踏频模式
+					else if((GearSt & 0xF0) == 0x10)
+					{
+						#if CADENCE_MODE_ENABLE
+						MC_AssistRunMode_Result = MC_AssistRunMode_CADENCE;
+						#endif
+					}
+					else
 					{
-					  MC_AssistRunMode_Result = MC_AssistRunMode_WALK;
+						#if 1
+						static MC_AssistRunMode_Struct_t MC_AssistRunMode_Result_Old = MC_AssistRunMode_INVALID;
+						//进入力矩模式
+						MC_AssistRunMode_Result = MC_AssistRunMode_TORQUE;
+						//判断是否进入转把推行模式
+						if((Cadence < 15) && (AdcSenorData.TorqueSensor < 100) && (AdcSenorData.GasSensor > 200))
+						{
+							if(((MC_AssistRunMode_Result_Old == MC_AssistRunMode_TORQUE) && (MC_HallSensorData.IsStopFlag == TRUE)) //上一次处于力矩模式,需电机停止才能进入转把推行
+								 ||(MC_AssistRunMode_Result_Old == MC_AssistRunMode_WALK)) //上一次处于转把推行模式,继续维持
+							{
+								MC_AssistRunMode_Result = MC_AssistRunMode_WALK;
+							}
+						}
+						MC_AssistRunMode_Result_Old = MC_AssistRunMode_Result;
+						#else 
+						//进入力矩模式
+						MC_AssistRunMode_Result = MC_AssistRunMode_TORQUE;
+						#endif
 					}
+					break;
 				}
-				MC_AssistRunMode_Result_Old = MC_AssistRunMode_Result;
-				#else 
-				//进入力矩模式
-				MC_AssistRunMode_Result = MC_AssistRunMode_TORQUE;
-				#endif
-			}
+				else
+				{
+				  MC_AssistRunMode_Result = MC_AssistRunMode_INVALID;
+					break;
+				}
+			}while(0);
 		}
-		else
+		else  //刹车触发
 		{
 	  	MC_AssistRunMode_Result = MC_AssistRunMode_INVALID;
 		}

+ 3 - 0
User/Src/tasks.c

@@ -17,6 +17,7 @@
 #include "key_driver.h"
 #include "encrypt.h"
 #include "ICM20600.h"
+#include "light_driver.h"
 
 /************************全局变量************************/
 TrueOrFalse_Flag_Struct_t IsInitFinish_Flag = FALSE;
@@ -547,6 +548,8 @@ void PowerOff_Process(void)
 	
 	//关闭助力档位
 	MC_ControlCode.GearSt = MC_GearSt_OFF;
+	MC_ControlCode.LightSwitch = MC_LightSwitch_OFF;
+  LightDriver_Process(MC_ControlCode.LightSwitch);
 	Update_MC_ControlCode_Back();
 	
 	#if 1 //存储到Flash,下次开机时从Flash取出转移到EEPROM

+ 2 - 2
User/Src/var.c

@@ -490,8 +490,8 @@ void Var_Init(void)
 		
 	//MC版本信息初始化,Mode和SN从EEPROM读取
   strncpy(MC_VerInfo.HW_Version, (char*)"QD007H.         ", 16);
-	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r6_20210610.", 16);
-	strncpy(Firmware_Special, (char*)"TC033001-MS2001-V0r8.           ", 32);
+	strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r6_20210701.", 16);
+	strncpy(Firmware_Special, (char*)"TC033001-MS2001-V0r9.           ", 32);
 		
 	//电机型号
 	strncpy(MC_VerInfo.Mode, (char*)"VS7500.         ", 16);

+ 4 - 1
修改说明.txt

@@ -396,7 +396,10 @@ MC_VS7500-TC033001-MS2001-V2.1.6.0.7_20210525
 MC_VS7500-TC033001-MS2001-V2.1.6.0.8_20210610
 1、按照通信协议,增加OBC设置电机限速的功能;
 
-
+MC_VS7500-TC033001-MS2001-V2.1.6.0.9_20210701
+1、转把模式,关闭力矩传感器故障检测;
+2、修改电机工作模式判断,OFF档有转把信号时进入Walk模式;
+3、接收到关机指令时,关闭前后灯。
 
 
 

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov