/* * 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_ */