Kaynağa Gözat

产品标签信息默认写为0xFF。

Dail 1 yıl önce
ebeveyn
işleme
103f1cabc8
2 değiştirilmiş dosya ile 145 ekleme ve 8 silme
  1. 5 8
      User/Src/var.c
  2. 140 0
      修改说明.txt

+ 5 - 8
User/Src/var.c

@@ -6,7 +6,7 @@ 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] = {0,};                         //MC软件版本特性说明
-uint8_t MC_TagInfo[32] = {0,};                            //MC生产标签信息
+uint8_t MC_TagInfo[32] = {0xFF,};                         //MC生产标签信息
 OnLine_Status_Struct_t DeviceOnLine_Status;               //设备在线检测结果
 BMS_RunInfo_Struct_t BMS_RunInfo;                         //BMS运行信息
 Device_CheckInfo_Struct_t BMS_CheckInfo;                  //BMS授权校验
@@ -47,6 +47,7 @@ uint16_t SpeedRatio;
 uint16_t HardwareVersion_AD=0;
 TrueOrFalse_Flag_Struct_t VersionIdentifyFinishedFlag = FALSE;
 TrueOrFalse_Flag_Struct_t PowerDown_SaveFlag = FALSE;
+TrueOrFalse_Flag_Struct_t IsFirstPowerOnFlag = FALSE;
 Bike_RatioCal_Struct_t Bike_RatioCalParam = {0,0,0,100,10,0,0};//传动比计算
 
 //BMS默认设计信息
@@ -267,8 +268,7 @@ const MC_MotorParam_Struct_t MC_MotorParam_Default =
 	(uint16_t)10,     //mH
 	(uint16_t)10,     //mH
 	(uint16_t)36000,  //mV
-	(uint8_t)36,      //V
-	(uint8_t)8
+	(uint8_t)36       //V
 };
 #elif defined (PEGASI_48V)
 const MC_MotorParam_Struct_t MC_MotorParam_Default =
@@ -279,8 +279,7 @@ const MC_MotorParam_Struct_t MC_MotorParam_Default =
 	(uint16_t)10,     //mH
 	(uint16_t)10,     //mH
 	(uint16_t)48000,  //mV
-	(uint8_t)48,      //V
-	(uint8_t)8
+	(uint8_t)48       //V
 };
 #endif
 
@@ -724,7 +723,6 @@ 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';
@@ -738,9 +736,8 @@ void Var_Init(void)
 	strncpy(MC_MacInfo.Manufacturer, (char*)"MOTINOVA", 8);  //生产信息
 	strncpy(MC_MacInfo.MacAddr, (char*)"WUHAN.  ", 8);
 	strncpy(MC_MacInfo.MacDate, (char*)"20210901", 8);
-	strncpy(MC_MacInfo.ProductTag, (char*)"MM_VP1. ", 8);
 
-	//产品标签,不初始化,只写入和读取,默认全为0xFF
+	//产品标签
 	/*
 	Digit1-2:   MO(Battery:BT, Controller:CT, BB:BB, Charger:CG, Display:DP, Motor:MO)
 	Digit3-4:   MA(MOTINOVA)

+ 140 - 0
修改说明.txt

@@ -407,6 +407,146 @@ V3.3.0_20211202
 14 解决串口解析函数的一个Bug;
 15 低压保护阈值由31V降为30V;
 
+小优化后修改记录(引用Pegasi Plus):
+V6.1.0_20220407
+1、添加硬件版本的自动识别功能,如有TE则优先从TE获取硬件版本,没有TE则通过ADC采集获取
+2、添加前灯6V电压控制使能管脚,PB4与PB5同时作为前灯6V控制端口
+3、屏蔽TE的故障检测功能
+4、添加批处理自动命名的功能
+
+V6.1.0_20220507
+1、通过硬件判断硬件是否有反相器芯片
+
+V6.2.0_20220509
+1、修改hall电角度
+
+V6.2.0_20220519
+1、ADC1_Result_Filt[ADC1_RANK_HARDWARE_VER]要等初始化完后才会更新,板子第一次运行程序时会擦写EEPROM,
+初始化完成时间在3.4s左右,这会导致硬件版本识别错误。新建一个变量HardwareVersion_AD作为判断值,
+HardwareVersion_AD变量在ADC启动后就开始更新。
+2、硬件版本识别函数增加判断初始化完成时间,若初始化完成时间大于1.8s,则硬件判断时间延长200ms.
+3、同步母线电压与母线电流算法
+4、将串口3的GPIO修改为上拉输入
+
+V6.2.0_20220531
+1、同步单向器打滑故障检测代码
+2、同步解决在指拨突然松开电机会反转的问题
+
+V6.2.0_20220609
+1、同步剩余里程的代码
+
+V6.3.0_20220616
+1、硬件版本故障检测增加通讯标志记录;
+2、修改温度保护逻辑,删掉MCU温度;
+
+V6.3.0_20220714
+1、修改NTC表格,将硬件上NTC上拉电阻由100K修改为20K
+
+V6.3.0_20220727
+1、修改NTC处理函数,根据识别的硬件版本执行不同的处理;旧电路板按照原来逻辑处理,新电路板增加一路MOS管NTC,新增温度系数表;
+2、增加长转测试代码;
+3、波特率由125K改为250K;
+4、死区时间由100ns改为500ns;
+5、Q轴电流环输出下限参数由-32768改为-100;
+6、踏频霍尔和电机霍尔重复读取三次,三次都一样才认为霍尔正常;
+7、力矩传感器无力矩故障检测时间延长为15s;
+8、传感器短路时间由200ms延长为1s;
+9、指拨模式下降速度由1s延长为5.5s,去掉下限限制;
+10、增加PCB温度保护限制;
+
+V6.3.0_20220727
+1、增加力矩传感器两点校正函数,根据使能标志判断是否使用校正功能;
+2、死区时间由100ns改为800ns;
+
+V6.3.0_20220907
+1、母线电流放大倍数改为8.2倍,通过硬件版本识别采用不同的处理;
+2、死区时间延长为800ns;
+
+V6.3.0_20220909
+1、修改软件解决TTKZ010D电路板温度测量异常问题
+
+V6.3.0_20221009
+1、增加掉电保护功能;
+2、屏蔽温度故障检测;
+
+V6.3.0_20221011
+1、优化掉电保护函数
+
+V6.3.0_20221012
+1、增加掉电保存续航里程功能;
+
+V6.3.0_20221028
+1、开机3s后才能启动电机;
+
+V6.2.0_20221104(版本重新定义)
+1、250K和125K程序共用,通过宏定义来生成不同的文件;
+
+V6.2.0_20221107
+1、优化VolansPlus电机骑行助力体验
+
+V6.2.0_20221115
+1、硬件识别完后若是新主控板,则采用增大后的助力参数;
+2、停机力矩缩小一半;
+
+V6.2.0_20221117
+1、优化指拨推行体验,加快推行响应时间;
+2、若两点校正功能使能,则调用新的助力参数;
+3、增加反转并拨指拨工况检测功能,若检测到该工况则启动恒压制动功能;
+
+V6.2.1_20230323
+1、刹车检测时间由100ms减小为10ms;
+2、退出指拨模式时下降速度由9增大为16;
+
+V6.2.1_20230907
+开机前2s不处理开关灯。
+
+V6.2.1_20230915
+1、修改SOC计算算法;
+2、增加限速起始和结束值的设定;
+3、开灯延迟2s;
+4、优化首次开机的判断逻辑。
+
+20231121合并Enviolo分支,修改点如下:
+1、开机前3s判断变速器是否在线,离线时运行信息发送0xF0;
+2、变速器在线时,可通过仪表设置模式(手动模式、自动模式)和修改参数(挡位数量、最低踏频、最高踏频);
+3、手动模式调整变速比,骑行时变速器会响应;
+4、自动模式设置目标踏频,骑行时变速器会自动调整;
+5、修改挡位数量后,可及时更新变速比对照表
+6、增加校准相关功能,进入校准时发送5次校准指令给变速器,同时发送踩踏提示给仪表。
+7、仪表修改轮胎周长后,电机发送给变速器的周长值同步变更。
+8、调整变速器的过滤器设置为FIFO1,增加FIFO1的中断
+9、针对FIFO0和FIFO1增加独立的接收中断回调函数。
+10、修改CAN采样率。
+
+V6.2.1_20231121
+1、修改转把模式控制方式,可通过配置参数设置速度模式或力矩模式、挡位限制或不限制功率、零速启动或带速启动、指拨限速配置;
+2、用户参数2增加骑行助力参数,包含各挡位最大力矩增益和最大电流增益;
+3、增加传动比计算函数(未测);
+4、增加仪表设置限速微调、骑行助力参数。
+5、速度来源设为通信时,根据变速器的信号计算车速和里程。
+
+V6.2.1_20231121-1
+1、变速器通信超时时间设置3s;
+2、增加根据SOC计算最大电流和最大车速系数,指拨和助力模式根据SOC限制最大电流和最大车速;
+3、转把启动偏移电压由0.1V调整为1.25V;
+4、欠压保护值高4位改用欠压保护方式和保护延时设置,bit15为0-根据电压保护,bit15为1-根据SOC保护,bit14~bit12用于设置保护延时时间,保护延时=5+设置值*10,同时修改欠压保护处理;
+5、修改开机电量初始化时间;
+6、运行信息电功率采用额定功率和高5位的分频系数进行计算,计算方法如下:
+   发送功率 = 母线电流 / 最大电流 * (额定功率 * (分频系数 + 1) / 32)
+7、BMS通信状态检测超时时间设置5s
+8、修改传动比计算方法;
+9、转把速度模式采用新计算的传动比(目前测试小飞车速上不去,待查)
+
+V6.2.1_20231121-2
+1、运行模式增加调试模式,调试模式下电机定时发送调试信息;
+2、FLASH参数区间增加电池SOC曲线参数,并增加写入指令0x3ACC;
+3、删除battery_info.c文件,SOC曲线数据放在var.c中,按照1%精度;
+4、修改速度环PID积分饱和上限,解决小飞不能到最大限速的问题;
+5、增加0x2DF0指令,可修改指定RAM地址参数,FALSH只能页擦除,需要谨慎使用;
+6、修改函数内部定义的数组,减小栈空间压力;
+7、启用用户参数1中下降速度,可调节停止踩踏后关闭助力的时间;
+8、转把模式高5位都为1时,转把启动Walk模式;
+9、增加SOC限制车速和电流的开关,Bit7为0时打开限制,Bit7为1时关闭限制。