50 lines
936 B
C
50 lines
936 B
C
/*
|
|
* BatteryManagement.h
|
|
*
|
|
* Created on: 29.01.2022
|
|
* Author: max
|
|
*/
|
|
|
|
#ifndef INC_BATTERYMANAGEMENT_H_
|
|
#define INC_BATTERYMANAGEMENT_H_
|
|
|
|
#include "stm32f4xx_hal.h"
|
|
|
|
#define OVERVOLTAGE_LIMIT 55100 // 4.2V
|
|
#define UNDERVOLTAGE_LIMIT 34100 // 2.6V
|
|
|
|
#define OVERTEMPERATURE_LIMIT
|
|
#define UNDERTEMPERATURE_LIMIT
|
|
|
|
#define AMS_MONITORING 1
|
|
#define AMS_OV_ERROR 2
|
|
#define AMS_UV_ERROR 3
|
|
#define AMS_OT_ERROR 4
|
|
#define AMS_UT_ERROR 5
|
|
#define AMS_TIMEOUT_ERROR 6
|
|
|
|
uint8_t highestcell;
|
|
uint8_t lowestcell;
|
|
|
|
uint8_t highesttempsensor;
|
|
uint8_t lowesttempsensor;
|
|
|
|
uint32_t modulesumvoltage;
|
|
|
|
uint8_t ams_status;
|
|
|
|
void ams_init(UART_HandleTypeDef* uarthandle, DMA_HandleTypeDef* uartdma);
|
|
|
|
void ams_loop_discharging();
|
|
void ams_loop_charging();
|
|
|
|
void ams_check_cell_voltages();
|
|
void ams_check_cell_temperaures();
|
|
|
|
void ams_step_soc_model();
|
|
void ams_step_balancing_model();
|
|
|
|
void ams_fan_control();
|
|
|
|
#endif /* INC_BATTERYMANAGEMENT_H_ */
|