Ver código fonte

非老化模式,判充满54v

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 4 anos atrás
pai
commit
5fa3ec268c
1 arquivos alterados com 5 adições e 4 exclusões
  1. 5 4
      Application/app/sox/soc.c

+ 5 - 4
Application/app/sox/soc.c

@@ -24,7 +24,8 @@ static const float _discharger_gain[] = {1.0f/*>0
 #define MAX_TIME_EMPTY_TO_FULL (8 * 24 * 3600) //充满到欠压5天内达到,可以校准最小电量
 #define DEFALUT_MAX_COULOMB (MAX_HA * 3600.0f)
 #define DEFALUT_MIN_COULOMB (25.0f * 3600.0f)
-#define FULL_MAX_VOLTAGE_CHARGING (53500)//mV
+#define FULL_MAX_VOLTAGE_CHARGING (54000)//mV
+#define FULL_MAX_VOLTAGE_STOP_CHARGING (53500)
 #define AGINT_TEST_MAX_VOLTAGE_CHARGING (53000) //mV
 #define FULL_MAX_VOLTAGE (54000) //mV
 #define FULL_MIN_CURRENT (500.0f) //mA
@@ -363,7 +364,7 @@ static int _soc_update_by_ocv(uint8_t prev_charge_status){
 				ocv_full_count = 0;
 				changed = 1;
 			}else if (bms_state_get()->pack_voltage >= (FULL_MAX_VOLTAGE_CHARGING) && _is_normal_charging()){
-				if (ocv_full_count++ >= 100) { //连续100次(小电流采集30ms一次,就是3s时间)电压和电流满足条件,强制充满
+				if (ocv_full_count++ >= 100) { //连续100次(电流采集25(小于4A)或者5ms一次)电压和电流满足条件,强制充满
 					_force_capacity_full();
 					push_event(Charger_Full, 4);
 					ocv_full_count = 0;
@@ -373,7 +374,7 @@ static int _soc_update_by_ocv(uint8_t prev_charge_status){
 				ocv_full_count = 0;
 			}
 		} else if (!chargering && prev_charge_status && (_soc.capacity != 100)){
-			if ((bms_state_get()->pack_voltage >= FULL_MAX_VOLTAGE_CHARGING) && _is_normal_charging()){//充电容量几乎接近最大容量
+			if ((bms_state_get()->pack_voltage >= FULL_MAX_VOLTAGE_STOP_CHARGING) && _is_normal_charging()){//充电容量几乎接近最大容量
 				_force_capacity_full();
 				push_event(Charger_Full, 5);
 				changed = 1;
@@ -411,7 +412,7 @@ static void soc_calibrate(uint8_t prev_charge_status){
 				}
 			}
 		}else if (prev_charge_status){
-			if((_soc.capacity != 100) && ((bms_state_get()->pack_voltage >= FULL_MAX_VOLTAGE_CHARGING) || bms_health()->sigle_cell_over_voltage)){
+			if((_soc.capacity != 100) && ((bms_state_get()->pack_voltage >= FULL_MAX_VOLTAGE_STOP_CHARGING) || bms_health()->sigle_cell_over_voltage)){
 				soc_debug("calibrate Capacity to 100\n");
 				_force_capacity_full();
 				push_event(Charger_Full, 2);