ams-slave-22/Core/Inc/BatteryManagement.h

50 lines
936 B
C
Raw Normal View History

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