Просмотр исходного кода

wait voltage down before open charge mos

Signed-off-by: FuangCao <cavan.cao@foxmail.com>
FuangCao 5 лет назад
Родитель
Сommit
0d5cf6dd03
6 измененных файлов с 27 добавлено и 14 удалено
  1. 1 1
      Project/version.txt
  2. 5 4
      Source/app.c
  3. 1 1
      Source/app.h
  4. 18 7
      Source/shark_charge.c
  5. 1 0
      Source/shark_charge.h
  6. 1 1
      Source/sw_build_info.h

+ 1 - 1
Project/version.txt

@@ -1 +1 @@
-PS100XX_V11_12021730
+PS100XX_V11_12181836

+ 5 - 4
Source/app.c

@@ -119,13 +119,14 @@ shark_bool battery_wait_voltage_parallel(void)
 		return shark_false;
 	}
 
-	if (shark_charger_state != SHARK_CHG_REMOVE && QD_Dect() == 0) {
-		return shark_true;
-	}
 
 	voltage_min = voltage_max - SHARK_BATT_VOLTAGE_FUZZ;
 
-	if (shark_charger_enabled) {
+	if (shark_charger_state != SHARK_CHG_REMOVE) {
+		if (QD_Dect() == 0) {
+			return shark_true;
+		}
+
 		voltage_max = SHARK_CHARGER_VOLTAGE_MAX;
 	} else {
 		voltage_max += SHARK_BATT_VOLTAGE_FUZZ;

+ 1 - 1
Source/app.h

@@ -17,7 +17,7 @@
 #define CHARGE_DELAY_TIME_OUT_COUNT   (10000)
 
 #define SHARK_CHARGE_CAPACITY_DELTA		2
-#define SHARK_CHARGER_VOLTAGE_MAX		60000
+#define SHARK_CHARGER_VOLTAGE_MAX		55000
 
 #define SHARK_CHARGE_VOL_FUZZ			300
 #define SHARK_PARRALLEL_VOL_MIN			500

+ 18 - 7
Source/shark_charge.c

@@ -1,4 +1,5 @@
 #include "shark_charge.h"
+#include "measure_vol.h"
 #include "app_rs485_1.h"
 #include "shark_xl.h"
 #include "app.h"
@@ -69,32 +70,42 @@ shark_bool shark_charger_is_normal(void)
 	return shark_charger_enabled && (shark_battery_charge_in1() || shark_battery_charge_in2());
 }
 
-void shark_charger_set_enable(shark_bool enable)
+shark_bool shark_charger_is_allow(void)
 {
 	if (shark_battery_charge_full()) {
 		shark_charger_set_poll();
-		enable = shark_false;
+		return shark_false;
 	}
 
-	if (cb_operate_state == CB_BAT1_BAT2_SERIES) {
-		enable = shark_false;
+	if (cb_operate_state == CB_BAT1_BAT2_SERIES || cb_operate_state == CB_BAT_NO) {
+		return shark_false;
 	}
 
 	if (shark_charger_state != SHARK_CHG_INSERT) {
-		enable = shark_false;
+		return shark_false;
+	}
+
+	if (Measure_Vol() > SHARK_CHARGER_VOLTAGE_MAX) {
+		return shark_false;
 	}
 
-	if (enable) {
+	return shark_true;
+}
+
+void shark_charger_set_enable(shark_bool enable)
+{
+	if (enable && shark_charger_is_allow()) {
 		println("charger enable");
 		shark_charge_time = shark_get_seconds();
 		gpio_bit_set(GPIO_PORT_CHG_EN, GPIO_PIN_CHG_EN);
+		shark_charger_enabled = shark_true;
 	} else {
 		println("charger disable");
 		gpio_bit_reset(GPIO_PORT_CHG_EN, GPIO_PIN_CHG_EN);
+		shark_charger_enabled = shark_false;
 	}
 
 	shark_charger_valid = shark_false;
-	shark_charger_enabled = enable;
 }
 
 void shark_charger_disable(void)

+ 1 - 0
Source/shark_charge.h

@@ -36,6 +36,7 @@ extern shark_u32 shark_charge_time;
 void shark_charger_set_enable(shark_bool enable);
 shark_bool shark_battery_charge_full(void);
 shark_bool shark_charger_is_normal(void);
+shark_bool shark_charger_is_allow(void);
 void shark_charger_set_poll(void);
 void shark_charger_disable(void);
 void shark_charge_init(void);

+ 1 - 1
Source/sw_build_info.h

@@ -1,3 +1,3 @@
 #pragma once
 
-#define CONFIG_VERSION "PS100XX_V11_12021730"
+#define CONFIG_VERSION "PS100XX_V11_12181836"