![]() |
DC2100A
1.2.0
Bi-Directional Cell Balancer Using the LTC3300-1 and the LTC6804-2
|
Reference Application File for Controlling the LTC3300-1 Battery Balancers through the LTC6804-2 Battery Monitor on the DC2100A PCB. More...
Go to the source code of this file.
Reference Application File for Controlling the LTC3300-1 Battery Balancers through the LTC6804-2 Battery Monitor on the DC2100A PCB.
Definition in file Balancer.c.
Functions | |
void | balancer_command_update (int8 board_num) |
void | balancer_nextstop_update (int8 board_num, int16 bal_timer) |
void | balancer_max_and_nextstop_update (int8 board_num, BALANCER_ACTIVE_STATE_TYPE balancer_state) |
void | balancer_status_update (int8 board_num) |
void | Balancer_Init (void) |
Initializes the parts of the Balancer Module, that need to be initialized upon power-up of the PIC. More... | |
BOOLEAN | Balancer_Wakeup_Init (void) |
Initializes the parts of the Balancer Module, that need to be initialized upon wakeup of the LTC3300-1. More... | |
void | Balancer_Control_Task (void) |
Executes the Balancer Control task. More... | |
void | Balancer_Set (void) |
Places Balancer Control Task in the BALANCER_CONTROL_SETUP state. More... | |
void | Balancer_Set (int8 board_num, BALANCER_ACTIVE_STATE_TYPE *cell_state_ptr) |
void | Balancer_Set (BALANCER_DELTA_Q_TYPE *charge_target_ptr) |
Places Balancer Control Task in the BALANCER_CONTROL_SETUP state. More... | |
void | Balancer_Start (void) |
Places Balancer Control Task in the BALANCER_CONTROL_ON state. More... | |
void | Balancer_Stop (void) |
Places Balancer Control Task in the BALANCER_CONTROL_OFF state immediately, as it's possible there's a catastrophic reason why we need to suspend,and resets the Balancer Control Task. More... | |
void | Balancer_Suspend (void) |
Places Balancer Control Task in the BALANCER_CONTROL_SUSPEND state immediately as it's possible there's a catastrophic reason why we need to suspend. More... | |
void | Balancer_GUI (void) |
Places Balancer Control Task in the BALANCER_CONTROL_GUI state, stopping all control of balancers by Balancer Control Task, and allows full control of LTC3300 ICs through direct commands from GUI. More... | |
BOOLEAN | Balancer_Is_Balancing (void) |
Returns if any balancer is actively balancing. More... | |
void | Balancer_Synchronous_Mode_Set (BOOLEAN synchronous_mode) |
Sets Balancer Control Task for synchronous or asynchronous mode. More... | |
BOOLEAN | Balancer_Synchronous_Mode_Get (void) |
Returns if Balancer Control Task is configured for synchronous mode. More... | |
void | Balancer_Max_and_Nextstop_Find (void) |
Forces recalculation of the longest and shortest (yet non-zero) active balance times in the DC2100A system. More... | |
Variables | |
BALANCER_ACTIVE_STATE_TYPE | Balancer_Active_State [DC2100A_MAX_BOARDS][DC2100A_NUM_CELLS] |
The state of each active cell balancer on each DC2100A in the system. More... | |
BALANCER_ACTIVE_STATE_TYPE | Balancer_Active_Time_Max |
The longest active balance time in the DC2100A system. More... | |
BALANCER_ACTIVE_STATE_TYPE | Balancer_Active_Time_Next_Stop |
The shortest, yet non-zero, active balance time in the DC2100A system. More... | |
int8 | Balancer_Active_Board_Max |
The board with the longest remaining balance time. More... | |
int8 | Balancer_Active_Board_Next_Stop |
The cell with the shortest, yet non-zero, remaining balance time. More... | |
BALANCER_PASSIVE_STATE_TYPE | Balancer_Passive_State [DC2100A_MAX_BOARDS] |
Bitmap for LTC6804_NUM_CELLV_ADC passive balancers on one DC2100A, 1 = ON and 0 = Off, bit 0 = cell 0. More... | |
BALANCER_CONTROL_STATE_TYPE | balancer_control_state |
int8 | balancer_watchdog_counter |
BOOLEAN | balancer_synchronous_mode |
unsigned int16 | balancer_gate_drive_ok [DC2100A_MAX_BOARDS] |
unsigned int16 | balancer_cells_ov_ok |
unsigned int16 | balancer_stack_ov_ok |
unsigned int16 | balancer_temperature_ok |
void Balancer_Control_Task | ( | void | ) |
Executes the Balancer Control task.
Definition at line 168 of file Balancer.c.
void Balancer_GUI | ( | void | ) |
Places Balancer Control Task in the BALANCER_CONTROL_GUI state, stopping all control of balancers by Balancer Control Task, and allows full control of LTC3300 ICs through direct commands from GUI.
Definition at line 570 of file Balancer.c.
void Balancer_Init | ( | void | ) |
Initializes the parts of the Balancer Module, that need to be initialized upon power-up of the PIC.
Definition at line 120 of file Balancer.c.
BOOLEAN Balancer_Is_Balancing | ( | void | ) |
Returns if any balancer is actively balancing.
Definition at line 576 of file Balancer.c.
void Balancer_Max_and_Nextstop_Find | ( | void | ) |
Forces recalculation of the longest and shortest (yet non-zero) active balance times in the DC2100A system.
Definition at line 604 of file Balancer.c.
void Balancer_Set | ( | void | ) |
Places Balancer Control Task in the BALANCER_CONTROL_SETUP state.
Does not change the active cell balancer states.
Definition at line 303 of file Balancer.c.
void Balancer_Set | ( | BALANCER_DELTA_Q_TYPE * | charge_target_ptr | ) |
Places Balancer Control Task in the BALANCER_CONTROL_SETUP state.
Definition at line 331 of file Balancer.c.
void Balancer_Start | ( | void | ) |
Places Balancer Control Task in the BALANCER_CONTROL_ON state.
Note that balancing is not started until the next state execution, to ensure that the balance times are accurately controlled to the BALANCER_TASK_RATE resolution.
Definition at line 539 of file Balancer.c.
void Balancer_Stop | ( | void | ) |
Places Balancer Control Task in the BALANCER_CONTROL_OFF state immediately, as it's possible there's a catastrophic reason why we need to suspend,and resets the Balancer Control Task.
Definition at line 547 of file Balancer.c.
void Balancer_Suspend | ( | void | ) |
Places Balancer Control Task in the BALANCER_CONTROL_SUSPEND state immediately as it's possible there's a catastrophic reason why we need to suspend.
Definition at line 562 of file Balancer.c.
BOOLEAN Balancer_Synchronous_Mode_Get | ( | void | ) |
Returns if Balancer Control Task is configured for synchronous mode.
Definition at line 598 of file Balancer.c.
void Balancer_Synchronous_Mode_Set | ( | BOOLEAN | synchronous_mode | ) |
Sets Balancer Control Task for synchronous or asynchronous mode.
synchronous_mode | TRUE for synchronous mode, FALSE for asynchronous mode. |
Definition at line 592 of file Balancer.c.
BOOLEAN Balancer_Wakeup_Init | ( | void | ) |
Initializes the parts of the Balancer Module, that need to be initialized upon wakeup of the LTC3300-1.
Definition at line 143 of file Balancer.c.
int8 Balancer_Active_Board_Max |
The board with the longest remaining balance time.
Definition at line 92 of file Balancer.c.
int8 Balancer_Active_Board_Next_Stop |
The cell with the shortest, yet non-zero, remaining balance time.
Definition at line 93 of file Balancer.c.
BALANCER_ACTIVE_STATE_TYPE Balancer_Active_State[DC2100A_MAX_BOARDS][DC2100A_NUM_CELLS] |
The state of each active cell balancer on each DC2100A in the system.
Definition at line 89 of file Balancer.c.
BALANCER_ACTIVE_STATE_TYPE Balancer_Active_Time_Max |
The longest active balance time in the DC2100A system.
Definition at line 90 of file Balancer.c.
BALANCER_ACTIVE_STATE_TYPE Balancer_Active_Time_Next_Stop |
The shortest, yet non-zero, active balance time in the DC2100A system.
Definition at line 91 of file Balancer.c.
BALANCER_PASSIVE_STATE_TYPE Balancer_Passive_State[DC2100A_MAX_BOARDS] |
Bitmap for LTC6804_NUM_CELLV_ADC passive balancers on one DC2100A, 1 = ON and 0 = Off, bit 0 = cell 0.
Definition at line 94 of file Balancer.c.