|
|
@@ -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);
|