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