Преглед изворни кода

update charger detect

Signed-off-by: FuangCao <cavan.cao@foxmail.com>
FuangCao пре 5 година
родитељ
комит
4d338a45ee
8 измењених фајлова са 103 додато и 72 уклоњено
  1. 55 43
      Project/PS100.uvoptx
  2. 10 0
      Project/PS100.uvprojx
  3. 1 1
      Project/version.txt
  4. 0 2
      Source/app_rs485_1.c
  5. 3 0
      Source/delay.c
  6. 29 20
      Source/shark_charge.c
  7. 4 5
      Source/shark_charge.h
  8. 1 1
      Source/sw_build_info.h

+ 55 - 43
Project/PS100.uvoptx

@@ -841,6 +841,18 @@
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
+    <File>
+      <GroupNumber>1</GroupNumber>
+      <FileNumber>15</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\Source\shark_charge.c</PathWithFileName>
+      <FilenameWithoutPath>shark_charge.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
   </Group>
 
   <Group>
@@ -851,7 +863,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>15</FileNumber>
+      <FileNumber>16</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -863,7 +875,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>16</FileNumber>
+      <FileNumber>17</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -875,7 +887,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>17</FileNumber>
+      <FileNumber>18</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -887,7 +899,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>18</FileNumber>
+      <FileNumber>19</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -899,7 +911,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>19</FileNumber>
+      <FileNumber>20</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -911,7 +923,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>20</FileNumber>
+      <FileNumber>21</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -923,7 +935,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>21</FileNumber>
+      <FileNumber>22</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -935,7 +947,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>22</FileNumber>
+      <FileNumber>23</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -947,7 +959,7 @@
     </File>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>23</FileNumber>
+      <FileNumber>24</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -967,7 +979,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>24</FileNumber>
+      <FileNumber>25</FileNumber>
       <FileType>5</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -979,7 +991,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>25</FileNumber>
+      <FileNumber>26</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -991,7 +1003,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>26</FileNumber>
+      <FileNumber>27</FileNumber>
       <FileType>5</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1003,7 +1015,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>27</FileNumber>
+      <FileNumber>28</FileNumber>
       <FileType>2</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1023,7 +1035,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>28</FileNumber>
+      <FileNumber>29</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1035,7 +1047,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>29</FileNumber>
+      <FileNumber>30</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1047,7 +1059,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>30</FileNumber>
+      <FileNumber>31</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1059,7 +1071,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>31</FileNumber>
+      <FileNumber>32</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1071,7 +1083,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>32</FileNumber>
+      <FileNumber>33</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1083,7 +1095,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>33</FileNumber>
+      <FileNumber>34</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1095,7 +1107,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>34</FileNumber>
+      <FileNumber>35</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1107,7 +1119,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>35</FileNumber>
+      <FileNumber>36</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1119,7 +1131,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>36</FileNumber>
+      <FileNumber>37</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1131,7 +1143,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>37</FileNumber>
+      <FileNumber>38</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1143,7 +1155,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>38</FileNumber>
+      <FileNumber>39</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1155,7 +1167,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>39</FileNumber>
+      <FileNumber>40</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1167,7 +1179,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>40</FileNumber>
+      <FileNumber>41</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1179,7 +1191,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>41</FileNumber>
+      <FileNumber>42</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1191,7 +1203,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>42</FileNumber>
+      <FileNumber>43</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1203,7 +1215,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>43</FileNumber>
+      <FileNumber>44</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1215,7 +1227,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>44</FileNumber>
+      <FileNumber>45</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1227,7 +1239,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>45</FileNumber>
+      <FileNumber>46</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1239,7 +1251,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>46</FileNumber>
+      <FileNumber>47</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1251,7 +1263,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>47</FileNumber>
+      <FileNumber>48</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1263,7 +1275,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>48</FileNumber>
+      <FileNumber>49</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1275,7 +1287,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>49</FileNumber>
+      <FileNumber>50</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1287,7 +1299,7 @@
     </File>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>50</FileNumber>
+      <FileNumber>51</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1307,7 +1319,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>51</FileNumber>
+      <FileNumber>52</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1319,7 +1331,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>52</FileNumber>
+      <FileNumber>53</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1331,7 +1343,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>53</FileNumber>
+      <FileNumber>54</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1343,7 +1355,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>54</FileNumber>
+      <FileNumber>55</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1355,7 +1367,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>55</FileNumber>
+      <FileNumber>56</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1367,7 +1379,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>56</FileNumber>
+      <FileNumber>57</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -1379,7 +1391,7 @@
     </File>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>57</FileNumber>
+      <FileNumber>58</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>

+ 10 - 0
Project/PS100.uvprojx

@@ -655,6 +655,11 @@
               <FileType>1</FileType>
               <FilePath>..\Source\shark_xl.c</FilePath>
             </File>
+            <File>
+              <FileName>shark_charge.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\Source\shark_charge.c</FilePath>
+            </File>
           </Files>
         </Group>
         <Group>
@@ -1786,6 +1791,11 @@
               <FileType>1</FileType>
               <FilePath>..\Source\shark_xl.c</FilePath>
             </File>
+            <File>
+              <FileName>shark_charge.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\Source\shark_charge.c</FilePath>
+            </File>
           </Files>
         </Group>
         <Group>

+ 1 - 1
Project/version.txt

@@ -1 +1 @@
-PS100XX_V11_11151938
+PS100XX_V11_11181825

+ 0 - 2
Source/app_rs485_1.c

@@ -14,8 +14,6 @@ SUB_BMS_INFO sub_bms_info_1 = {
 	.address = SUB_BMS_ADDRESS_1,
 };
 
-uint8_t cang_wei = CW_CHE_SHANG_NO_CHARGER;
-
 TEST_INFO test_info;
 
 static int8_t Get_Check_Sum_1(uint16_t*value, const uint8_t*data,uint16_t size)

+ 3 - 0
Source/delay.c

@@ -16,6 +16,7 @@
 #include "low_power.h"
 #include "hardware_test.h"
 #include "shark_xl.h"
+#include "shark_charge.h"
 
 u64 shark_mseconds;
 
@@ -110,6 +111,8 @@ void SysTick_Handler(void)
 
 	shark_uart_tick();
 	shark_xl_tick();
+	shark_charge_tick();
+
 	ACC2_PWM();
 	
 	if(side_stay_dec_delay.set)

+ 29 - 20
Source/shark_charge.c

@@ -4,9 +4,10 @@
 
 shark_bool shark_charger_detected;
 shark_bool shark_charger_enabled;
-shark_bool shark_battery_full;
+shark_u16 shark_charger_remove;
 
-shark_u16 shark_charger_debounce;
+shark_u16 shark_charge_times;
+shark_bool shark_battery_full;
 
 void shark_charge_init(void)
 {
@@ -17,9 +18,9 @@ void shark_charge_init(void)
 	gpio_init(GPIO_PORT_CHG_EN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_CHG_EN);
 
 	gpio_exti_source_select(EXTI_PORT_CHG_DET, EXTI_PIN_CHG_DET);
-	exti_init(EXTI_CHG_DET, EXTI_INTERRUPT, EXTI_TRIG_BOTH);
+	exti_init(EXTI_CHG_DET, EXTI_INTERRUPT, EXTI_TRIG_FALLING);
 	exti_interrupt_flag_clear(EXTI_CHG_DET);
-	nvic_irq_enable(EXTI4_IRQn , 1, 0);
+	nvic_irq_enable(EXTI4_IRQn, 1, 0);
 }
 
 void shark_charger_set_enable(shark_bool enable)
@@ -32,39 +33,46 @@ void shark_charger_set_enable(shark_bool enable)
 		shark_battery_full = shark_false;
 	}
 
-	if (shark_battery_full || cb_operate_state == CB_BAT1_BAT2_SERIES) {
+	if (shark_battery_full || cb_operate_state == CB_BAT1_BAT2_SERIES || shark_charger_remove) {
 		enable = shark_false;
 	}
 
 	if (shark_charger_enabled != enable) {
 		shark_charger_enabled = enable;
+		shark_charge_times = 0;
 
 		if (enable) {
 			gpio_bit_set(GPIO_PORT_CHG_EN, GPIO_PIN_CHG_EN);
 			println("charger enabled");
 		} else {
 			gpio_bit_reset(GPIO_PORT_CHG_EN, GPIO_PIN_CHG_EN);
-			shark_charger_debounce = SHARK_CHG_DEBOUNCE;
+			shark_charger_remove = SHARK_CHG_DEBOUNCE;
 			println("charger disabled");
 		}
 	}
 }
 
+void shark_charger_disable(void)
+{
+	if (shark_charge_times > SHARK_CHG_TIME_MIN) {
+		shark_charger_set_enable(shark_false);
+	}
+}
+
 void shark_charge_tick(void)
 {
-	if (shark_charger_debounce > 0) {
-		if (shark_charger_debounce > 1) {
-			shark_charger_debounce--;
+	if (shark_charger_remove > 0) {
+		if (shark_charger_remove > 1) {
+			shark_charger_remove--;
 		} else {
-			shark_charger_debounce = 0;
-			shark_charger_detected = shark_charger_detect();
-
-			if (shark_charger_detected)
-			cang_wei = CW_CHE_SHANG_CHARGER;
-		else
-			cang_wei = CW_CHE_SHANG_NO_CHARGER;
+			shark_charger_remove = 0;
+			shark_charger_detected = shark_false;
 		}
 	}
+
+	if (shark_charger_enabled && shark_charge_times < SHARK_CHG_TIME_MAX) {
+		shark_charge_times++;
+	}
 }
 
 void shark_charge_poll(void)
@@ -74,19 +82,19 @@ void shark_charge_poll(void)
 			switch (cb_operate_state) {
 			case CB_BAT1:
 				if (sub_bms_info_1.packet_common.charge_flag == 0) {
-					shark_charger_set_enable(shark_false);
+					shark_charger_disable();
 				}
 				break;
 
 			case CB_BAT2:
 				if (sub_bms_info_2.packet_common.charge_flag == 0) {
-					shark_charger_set_enable(shark_false);
+					shark_charger_disable();
 				}
 				break;
 
 			case CB_BAT1_BAT2_PARRALLEL:
 				if (sub_bms_info_1.packet_common.charge_flag == 0 && sub_bms_info_2.packet_common.charge_flag == 0) {
-					shark_charger_set_enable(shark_false);
+					shark_charger_disable();
 				}
 				break;
 			}
@@ -100,7 +108,8 @@ void EXTI4_IRQHandler(void)
 {
 	if (exti_flag_get(EXTI_4) != RESET) {
 		exti_flag_clear(EXTI_4);
-		shark_charger_debounce = SHARK_CHG_DEBOUNCE;
+		shark_charger_remove = 0;
+		shark_charger_detected = shark_true;
 	}
 }
 

+ 4 - 5
Source/shark_charge.h

@@ -3,7 +3,9 @@
 #include "shark_types.h"
 #include "common.h"
 
-#define SHARK_CHG_DEBOUNCE			300
+#define SHARK_CHG_DEBOUNCE			500
+#define SHARK_CHG_TIME_MIN			5000
+#define SHARK_CHG_TIME_MAX			60000
 
 #define GPIO_PORT_CHG_DET			GPIOC
 #define GPIO_PIN_CHG_DET			GPIO_PIN_4
@@ -22,12 +24,9 @@ extern shark_bool shark_charger_enabled;
 extern shark_bool shark_battery_full;
 
 void shark_charger_set_enable(shark_bool enable);
+void shark_charger_disable(void);
 void shark_charge_init(void);
 void shark_charge_tick(void);
 void shark_charge_poll(void);
 void shark_charge_isr(void);
 
-static inline shark_bool shark_charger_detect(void)
-{
-	return !gpio_input_bit_get(GPIO_PORT_CHG_DET, GPIO_PIN_CHG_DET);
-}

+ 1 - 1
Source/sw_build_info.h

@@ -1,3 +1,3 @@
 #pragma once
 
-#define CONFIG_VERSION "PS100XX_V11_11181649"
+#define CONFIG_VERSION "PS100XX_V11_11181825"