소스 검색

V3r4r0_20221108
1 通过宏定义来生成125K和250K程序;
2 新增霍尔速度计算,减小滞后时间,用于指拨速度环计算;
3 加大PegasiPlus骑行助力参数;
4 软件版本变为V3r4r0_20221108;

white.xu 2 년 전
부모
커밋
68f682428e

+ 1 - 0
Core/Inc/main.h

@@ -50,6 +50,7 @@
 /* Private define ------------------------------------------------------------*/
 #define DEBUG 1
 #define NormalWork 1
+#define BaudRate250K 0
 #define BREAK_IN_Pin GPIO_PIN_12
 #define BREAK_IN_GPIO_Port GPIOB
 #define BREAK_IN_EXTI_IRQn EXTI15_10_IRQn

+ 5 - 1
Core/Src/can.c

@@ -64,7 +64,11 @@ void MX_CAN_Init(void)
 {
 
   hcan.Instance = CAN1;
-  hcan.Init.Prescaler = 24;
+	#if BaudRate250K
+	hcan.Init.Prescaler = 24;
+	#else
+	hcan.Init.Prescaler = 48;
+	#endif
   hcan.Init.Mode = CAN_MODE_NORMAL;
   hcan.Init.SJW = CAN_SJW_1TQ;
   hcan.Init.BS1 = CAN_BS1_4TQ;

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1762 - 1762
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


BIN
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 6 - 6
MDK-ARM/startup_stm32f103xb.lst

@@ -524,12 +524,12 @@ ork --depend=.\qd007a_ctl_app\startup_stm32f103xb.d -o.\qd007a_ctl_app\startup_
 ARM Macro Assembler    Page 9 
 
 
-stm32f103xb.o -ID:\MOTINOVAϵͳ\Motor\TTKZ019X\Pegasi\TT-KZ-010A_CTRL_APP\MDK-A
-RM\RTE\_QD007A_CTL_APP -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.0\CMSIS\Include -IC:
-\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include --predefine="__MICROL
-IB SETA 1" --predefine="__UVISION_VERSION SETA 522" --predefine="_RTE_ SETA 1" 
---predefine="STM32F10X_MD SETA 1" --list=startup_stm32f103xb.lst startup_stm32f
-103xb.s
+stm32f103xb.o -ID:\MOTINOVA\Motor\TTKZ019X\Pegasi\TT-KZ-010A_CTRL_APP\MDK-ARM\R
+TE\_QD007A_CTL_APP -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.0\CMSIS\Include -IC:\Kei
+l_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include --predefine="__MICROLIB S
+ETA 1" --predefine="__UVISION_VERSION SETA 522" --predefine="_RTE_ SETA 1" --pr
+edefine="STM32F10X_MD SETA 1" --list=startup_stm32f103xb.lst startup_stm32f103x
+b.s
 
 
 

+ 6 - 7
MDK-ARM/stm32f1xx_stucpuregsaddressing.lst

@@ -123,19 +123,18 @@ ARM Macro Assembler    Page 2
    99 00000096                 END
 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
 ork --depend=.\qd007a_ctl_app\stm32f1xx_stucpuregsaddressing.d -o.\qd007a_ctl_a
-pp\stm32f1xx_stucpuregsaddressing.o -ID:\MOTINOVAϵͳ\Motor\TTKZ019X\Pegasi\TT-
-KZ-010A_CTRL_APP\MDK-ARM\RTE\_QD007A_CTL_APP -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.
-0.0\CMSIS\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include
- --predefine="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 522" --pre
-define="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list=stm32f1xx_stucpu
+pp\stm32f1xx_stucpuregsaddressing.o -ID:\MOTINOVA\Motor\TTKZ019X\Pegasi\TT-KZ-0
+10A_CTRL_APP\MDK-ARM\RTE\_QD007A_CTL_APP -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.0\
+CMSIS\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include --p
+redefine="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 522" --predefi
+ne="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list=stm32f1xx_stucpuregs
 
 
 
 ARM Macro Assembler    Page 3 
 
 
-regsaddressing.lst ..\SelfTestUser\src_specific\stm32f1xx_STUCpuRegsAddressing.
-s
+addressing.lst ..\SelfTestUser\src_specific\stm32f1xx_STUCpuRegsAddressing.s
 
 
 

+ 6 - 6
MDK-ARM/stm32f1xx_stucpuwalkpatkeil.lst

@@ -1593,12 +1593,12 @@ ARM Macro Assembler    Page 25
  1172 000006D0                 END
 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
 ork --depend=.\qd007a_ctl_app\stm32f1xx_stucpuwalkpatkeil.d -o.\qd007a_ctl_app\
-stm32f1xx_stucpuwalkpatkeil.o -ID:\MOTINOVAϵͳ\Motor\TTKZ019X\Pegasi\TT-KZ-010
-A_CTRL_APP\MDK-ARM\RTE\_QD007A_CTL_APP -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.0\CM
-SIS\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include --pre
-define="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 522" --predefine
-="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list=stm32f1xx_stucpuwalkpa
-tkeil.lst ..\SelfTestUser\src_specific\stm32f1xx_STUCpuWalkpatKEIL.s
+stm32f1xx_stucpuwalkpatkeil.o -ID:\MOTINOVA\Motor\TTKZ019X\Pegasi\TT-KZ-010A_CT
+RL_APP\MDK-ARM\RTE\_QD007A_CTL_APP -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.0\CMSIS\
+Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include --predefi
+ne="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 522" --predefine="_R
+TE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list=stm32f1xx_stucpuwalkpatkei
+l.lst ..\SelfTestUser\src_specific\stm32f1xx_STUCpuWalkpatKEIL.s
 
 
 

+ 6 - 6
MDK-ARM/stm32f1xx_sturamwalkpatkeil.lst

@@ -430,12 +430,12 @@ ARM Macro Assembler    Page 7
   331 000001F2                 END
 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw
 ork --depend=.\qd007a_ctl_app\stm32f1xx_sturamwalkpatkeil.d -o.\qd007a_ctl_app\
-stm32f1xx_sturamwalkpatkeil.o -ID:\MOTINOVAϵͳ\Motor\TTKZ019X\Pegasi\TT-KZ-010
-A_CTRL_APP\MDK-ARM\RTE\_QD007A_CTL_APP -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.0\CM
-SIS\Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include --pre
-define="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 522" --predefine
-="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list=stm32f1xx_sturamwalkpa
-tkeil.lst ..\SelfTestUser\src_specific\stm32f1xx_STURamWalkpatKEIL.s
+stm32f1xx_sturamwalkpatkeil.o -ID:\MOTINOVA\Motor\TTKZ019X\Pegasi\TT-KZ-010A_CT
+RL_APP\MDK-ARM\RTE\_QD007A_CTL_APP -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.0\CMSIS\
+Include -IC:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include --predefi
+ne="__MICROLIB SETA 1" --predefine="__UVISION_VERSION SETA 522" --predefine="_R
+TE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --list=stm32f1xx_sturamwalkpatkei
+l.lst ..\SelfTestUser\src_specific\stm32f1xx_STURamWalkpatKEIL.s
 
 
 

+ 2 - 0
User/Inc/hall_sensor.h

@@ -23,6 +23,8 @@ typedef struct
 	uint16_t SVM_Angle;                        // 电角度
 	TrueOrFalse_Flag_Struct_t IsStopFlag;      // 停止标志
 	TrueOrFalse_Flag_Struct_t InverterExistFlag;
+	uint16_t motorspeed;
+	uint16_t motorspeed_RCFlt;
 }MC_HallSensorData_Struct_t;
 
 //霍尔传感器输出状态

+ 11 - 2
User/Src/hall_sensor.c

@@ -19,7 +19,7 @@ const uint16_t HallAngle_Data[8] =
 };
 
 //全局变量定义
-MC_HallSensorData_Struct_t MC_HallSensorData = {0, 0, 0, 0, TRUE, TRUE};
+MC_HallSensorData_Struct_t MC_HallSensorData = {0, 0, 0, 0, TRUE, TRUE, 0};
 
 /**************************局部函数定义*************************/
 
@@ -108,6 +108,8 @@ void HallSensor_Process(void)
 		{
 		  MC_HallSensorData.IsStopFlag = TRUE;
 			HallSensorTrigCnt = 0;
+			MC_HallSensorData.motorspeed = 0;
+			MC_HallSensorData.motorspeed_RCFlt = 0;
 		}
 	}
 	
@@ -132,6 +134,10 @@ void HallSensor_Process(void)
 		  MC_HallSensorData.Delta_Angle = 1;
 		}
 		HallSensorAngleCnt++;
+		if(HallSensorAngleCnt>2)
+		{
+			MC_HallSensorData.motorspeed = 18750/MC_HallSensorData.PWM_NumCnt;
+		}
 		if(HallSensorAngleCnt < 15)
 		{
 		  MC_HallSensorData.SVM_Angle = HallAngle_Data[MC_HallSensorStatus.HallGropuStatus] + (ANGLE_60D >> 1);
@@ -165,7 +171,7 @@ int16_t MotorSpeedCal(uint16_t SVM_Angle, TrueOrFalse_Flag_Struct_t IsStopFlag)
   static uint8_t PreCnt = 0;
 	static uint16_t SVM_Angle_Old = 0;
 	int32_t AngleStep = 0;
-	static int32_t FreqMotorFlt = 0;
+	static int32_t FreqMotorFlt = 0, motrospeedFltSum=0;
 	int16_t FreqMotor = 0;
 	static int16_t Result = 0;
 	
@@ -187,6 +193,9 @@ int16_t MotorSpeedCal(uint16_t SVM_Angle, TrueOrFalse_Flag_Struct_t IsStopFlag)
 		FreqMotorFlt += (AngleStep - FreqMotorFlt) >> 8;
 		FreqMotor = FreqMotorFlt >> 16;
 		Result = 60 * FreqMotor >> 3;// 8n=60*f/p
+		
+		motrospeedFltSum += ((MC_HallSensorData.motorspeed<<10) - motrospeedFltSum)>>5;
+		MC_HallSensorData.motorspeed_RCFlt = motrospeedFltSum>>10; 
 	}
 	
 	if(IsStopFlag == TRUE)

+ 1 - 1
User/Src/motor_control.c

@@ -428,7 +428,7 @@ MC_CalParam_Struct_t MC_AssistRunMode_Gas_Process(uint16_t SensorData, MC_GearSt
 	//離댕제앤槨4도돨제앤꽝鑒
 	PID_MotorSpd.hLower_Limit_Output= -(MC_AssisParam.Gear_TURBO.Upper_Iq / 2);
 	PID_MotorSpd.hUpper_Limit_Output= (MC_AssisParam.Gear_TURBO.Upper_Iq / 2);
-	TorQueBySpd = PID_Regulator(SpeedSetReal, MC_RunInfo.MotorSpeed, &PID_MotorSpd);
+	TorQueBySpd = PID_Regulator(SpeedSetReal, MC_HallSensorData.motorspeed_RCFlt, &PID_MotorSpd);
 
 	TorQueBySpd += SpdMotorByIdc;
 	

+ 17 - 11
User/Src/var.c

@@ -368,9 +368,9 @@ const nGearParam_Struct_t GearParam_Default_SMART_Pegasi =
 //ECO도貫燎제꽝鑒
 const nGearParam_Struct_t GearParam_Default_ECO_Pegasi_Plus =
 {
-  (uint16_t)476,
-	(uint16_t)560,
+  (uint16_t)714,
 	(uint16_t)0,
+	(uint16_t)100,
 	(uint16_t)937,
 	(uint8_t)2,
 	(uint8_t)1,
@@ -380,9 +380,9 @@ const nGearParam_Struct_t GearParam_Default_ECO_Pegasi_Plus =
 //NORM도貫燎제꽝鑒
 const nGearParam_Struct_t GearParam_Default_NORM_Pegasi_Plus =
 {
-  (uint16_t)1142,
-	(uint16_t)700,
+  (uint16_t)1428,
 	(uint16_t)0,
+	(uint16_t)100,
 	(uint16_t)1250,
 	(uint8_t)3,
 	(uint8_t)2,
@@ -392,9 +392,9 @@ const nGearParam_Struct_t GearParam_Default_NORM_Pegasi_Plus =
 //SPORT도貫燎제꽝鑒
 const nGearParam_Struct_t GearParam_Default_SPORT_Pegasi_Plus =
 {
-  (uint16_t)1903,
-	(uint16_t)840,
-	(uint16_t)0,
+  (uint16_t)2142,
+	(uint16_t)560,
+	(uint16_t)100,
 	(uint16_t)1459,
 	(uint8_t)4,
 	(uint8_t)2,
@@ -404,9 +404,9 @@ const nGearParam_Struct_t GearParam_Default_SPORT_Pegasi_Plus =
 //TURBO도貫燎제꽝鑒
 const nGearParam_Struct_t GearParam_Default_TURBO_Pegasi_Plus =
 {
-  (uint16_t)2857,
-	(uint16_t)980,
-	(uint16_t)0,
+  (uint16_t)3200,
+	(uint16_t)700,
+	(uint16_t)100,
 	(uint16_t)2100,
 	(uint8_t)5,
 	(uint8_t)3,
@@ -501,7 +501,13 @@ void Var_Init(void)
 		
 	//MC경굶斤口놓迦뺏,Mode뵨SN닒EEPROM뗍혤
 	strncpy(MC_VerInfo.HW_Version, (char*)"TTKZ010D.       ", 16);
-	strncpy(MC_VerInfo.FW_Version, (char*)"V7r2r0_20221024C", 16);
+	
+	#if BaudRate250K
+  strncpy(MC_VerInfo.FW_Version, (char*)"V7r2r0_20221108C", 16);
+	#else
+	strncpy(MC_VerInfo.FW_Version, (char*)"V3r4r0_20221108C", 16);
+	#endif
+	
   #if NormalWork
 	MC_VerInfo.FW_Version[15] = '.';
   #endif

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.