Explorar o código

cc cv charging code modified: not tested

namrota ghosh hai 7 meses
pai
achega
709f4f7dd9
Modificáronse 2 ficheiros con 19 adicións e 18 borrados
  1. 18 18
      src/cc_cv_charging.c
  2. 1 0
      src/cc_cv_charging.h

+ 18 - 18
src/cc_cv_charging.c

@@ -23,10 +23,10 @@ void CC_CV_UpdateChargingState(uint8_t slot_id) {
     static bool cv_charging_started = false;
     batt_voltage = battery_data[slot_id].battery_measurement.voltage;
     batt_current = battery_data[slot_id].battery_measurement.current;
-    batt_min_voltage = battery_data[slot_id].battery_limits.min_voltage;
-    batt_max_voltage = battery_data[slot_id].battery_limits.max_voltage;
-    batt_cutoff_current = battery_data[slot_id].battery_limits.cut_off_current;
-    batt_capacitance = battery_data[slot_id].battery_limits.capacitance;
+    batt_min_voltage = battery_data[slot_id].min_voltage;
+    batt_max_voltage = battery_data[slot_id].max_voltage;
+    batt_cutoff_current = battery_data[slot_id].cut_off_current;
+    batt_capacitance = battery_data[slot_id].capacitance;
     batt_charge_discharge= battery_data[slot_id].charge_discharge;
     //Check if the slot is empty or if the battery limits are not set
     if (battery_data[slot_id].battery_state == STATE_EMPTY || (batt_min_voltage == 0 && batt_max_voltage == 0 &&
@@ -78,7 +78,7 @@ void CC_CV_UpdateChargingState(uint8_t slot_id) {
   
     else if (charging_state == STATE_DISCHARGING &&
              batt_voltage <= batt_min_voltage + BATTERY_THRESHOLD) {
-      DL_GPIO_clearPins(GPIO_Battery_Discharging_PORT, GPIO_Battery_Discharging_PIN_PB12_PIN);
+      DL_GPIO_clearPins(GPIO_Battery_Discharging_PORT, GPIO_Battery_Discharging_PIN_PB7_PIN);
       charging_state = STATE_CC_CHARGING;
       cv_charging_started = false;
     }
@@ -108,10 +108,10 @@ void CC_CV_ControlCharging(uint8_t slot_id, int16_t charge_current) {
     
     batt_voltage = battery_data[slot_id].battery_measurement.voltage;
     batt_current= battery_data[slot_id].battery_measurement.current;
-    batt_min_voltage= battery_data[slot_id].battery_limits.min_voltage;
-    batt_max_voltage= battery_data[slot_id].battery_limits.max_voltage;
-    batt_cutoff_current = battery_data[slot_id].battery_limits.cut_off_current;
-    batt_capacitance= battery_data[slot_id].battery_limits.capacitance;
+    batt_min_voltage= battery_data[slot_id].min_voltage;
+    batt_max_voltage= battery_data[slot_id].max_voltage;
+    batt_cutoff_current = battery_data[slot_id].cut_off_current;
+    batt_capacitance= battery_data[slot_id].capacitance;
     batt_charge_discharge= battery_data[slot_id].charge_discharge;
     
     //  DAC channel value:
@@ -126,7 +126,7 @@ void CC_CV_ControlCharging(uint8_t slot_id, int16_t charge_current) {
   
     // PRE CHARGE STATE: Battery Voltage is lesser than 3000 mVolts
     case STATE_PRE_CHARGE:
-      DL_GPIO_setPins(GPIO_Battery_Charging_PORT, GPIO_Battery_Charging_PIN_PB4_PIN);
+      DL_GPIO_setPins(GPIO_Battery_Charging_PORT, GPIO_Battery_Charging_PIN_PB6_PIN);
       controller_SetCurrent(TARGET_MCU_ADDRESS, slot_id, charge_current);
       if (true) {
         printf("PRE CHARGING: Slot %d at %d mA.\n", slot_id, charge_current);
@@ -158,8 +158,8 @@ void CC_CV_ControlCharging(uint8_t slot_id, int16_t charge_current) {
       break;
   
     case STATE_DISCHARGING:
-      DL_GPIO_clearPins(GPIO_Battery_Charging_PORT, GPIO_Battery_Charging_PIN_PB4_PIN);
-      DL_GPIO_setPins(GPIO_Battery_Discharging_PORT, GPIO_Battery_Discharging_PIN_PB12_PIN);
+      //DL_GPIO_clearPins(GPIO_Battery_Charging_PORT, GPIO_Battery_Charging_PIN_PB6_PIN);
+      DL_GPIO_setPins(GPIO_Battery_Discharging_PORT, GPIO_Battery_Discharging_PIN_PB7_PIN);
       controller_SetCurrent(TARGET_MCU_ADDRESS, slot_id, charge_current);
       printf("DISCHARGING: Slot %d at %d mA.\n", slot_id, batt_voltage);
       break;
@@ -167,21 +167,21 @@ void CC_CV_ControlCharging(uint8_t slot_id, int16_t charge_current) {
     case STATE_FINAL_DISCHARGE:
       //Once the cycle gets done, the battery state transitions to "STATE_MEASUREMENT_DONE"
       battery_data[slot_id].battery_state= STATE_MEASUREMENT_DONE;
-      DL_GPIO_clearPins(GPIO_Battery_Charging_PORT, GPIO_Battery_Charging_PIN_PB4_PIN);
-      DL_GPIO_clearPins(GPIO_Battery_Discharging_PORT, GPIO_Battery_Discharging_PIN_PB12_PIN);
+      DL_GPIO_clearPins(GPIO_Battery_Charging_PORT, GPIO_Battery_Charging_PIN_PB6_PIN);
+      DL_GPIO_clearPins(GPIO_Battery_Discharging_PORT, GPIO_Battery_Discharging_PIN_PB7_PIN);
       controller_SetCurrent(TARGET_MCU_ADDRESS, slot_id, 0);
       charging_state = STATE_IDLE;
       break;
   
     case STATE_ERROR:
-      DL_GPIO_clearPins(GPIO_Battery_Charging_PORT, GPIO_Battery_Charging_PIN_PB4_PIN);
-      DL_GPIO_clearPins(GPIO_Battery_Discharging_PORT, GPIO_Battery_Discharging_PIN_PB12_PIN);
+      DL_GPIO_clearPins(GPIO_Battery_Charging_PORT, GPIO_Battery_Charging_PIN_PB6_PIN);
+      DL_GPIO_clearPins(GPIO_Battery_Discharging_PORT, GPIO_Battery_Discharging_PIN_PB7_PIN);
       printf("ERROR: Slot %d.\n", slot_id);
       break;
   
     case STATE_IDLE:
-      DL_GPIO_clearPins(GPIO_Battery_Charging_PORT, GPIO_Battery_Charging_PIN_PB4_PIN);
-      DL_GPIO_clearPins(GPIO_Battery_Discharging_PORT, GPIO_Battery_Discharging_PIN_PB12_PIN);
+      DL_GPIO_clearPins(GPIO_Battery_Charging_PORT, GPIO_Battery_Charging_PIN_PB6_PIN);
+      DL_GPIO_clearPins(GPIO_Battery_Discharging_PORT, GPIO_Battery_Discharging_PIN_PB7_PIN);
       charging_state = STATE_PRE_CHARGE;
       break;
 

+ 1 - 0
src/cc_cv_charging.h

@@ -3,6 +3,7 @@
 #ifndef CC_CV_CHARGING_H_
 #define CC_CV_CHARGING_H_
 #define TARGET_MCU_ADDRESS (0x48)
+
 typedef enum{
     STATE_PRE_CHARGE,
     STATE_CC_CHARGING,