diff --git a/AMS_Master_Code/Core/Inc/battery.h b/AMS_Master_Code/Core/Inc/battery.h new file mode 100644 index 0000000..42e6cf1 --- /dev/null +++ b/AMS_Master_Code/Core/Inc/battery.h @@ -0,0 +1,15 @@ +#pragma once +#ifndef __BATTERY_H +#define __BATTERY_H +#include "config_ADBMS6830.h" +#include "stm32h7xx_hal.h" + +#include <stdint.h> +#include <stddef.h> +extern uint16_t min_voltage; +extern int16_t max_temp; + +void battery_init(SPI_HandleTypeDef* hspi); +void battery_update(); + +#endif // __BATTERY_H \ No newline at end of file diff --git a/AMS_Master_Code/Core/Src/battery.c b/AMS_Master_Code/Core/Src/battery.c new file mode 100644 index 0000000..240bf12 --- /dev/null +++ b/AMS_Master_Code/Core/Src/battery.c @@ -0,0 +1,29 @@ +#include "battery.h" +#include "ADBMS_Driver.h" + +uint16_t min_voltage = 0xFFFF; +int16_t max_temp = -1; + +void battery_init(SPI_HandleTypeDef* hspi) { + AMS_Init(hspi); +} + +void battery_update() { + if (AMS_Idle_Loop().status != ADBMS_NO_ERROR +) { + // Handle error + return; + } + for (size_t i = 0; i < N_BMS; i++) { + for (size_t j = 0; j < N_CELLS; j++) { + if (modules[i].cellVoltages[j] > min_voltage) { + min_voltage = modules[i].cellVoltages[j]; + } + if (modules[i].cellTemps[0] > max_temp) { + //refactor this to use ntc_mv_to_celsius + // max_temp = ntc_mv_to_celsius(modules[i].auxVoltages[j]); + max_temp = modules[i].cellTemps[j]; + } + } + } +} \ No newline at end of file diff --git a/AMS_Master_Code/Core/Src/can.c b/AMS_Master_Code/Core/Src/can.c index d53f0e3..21c8375 100644 --- a/AMS_Master_Code/Core/Src/can.c +++ b/AMS_Master_Code/Core/Src/can.c @@ -3,7 +3,7 @@ #include "imd_monitoring.h" #include "main.h" #include "shunt_monitoring.h" -//#include "slave_monitoring.h" +#include "battery.h" #include "soc_estimation.h" #include "ts_state_machine.h" diff --git a/AMS_Master_Code/Core/Src/soc_estimation.c b/AMS_Master_Code/Core/Src/soc_estimation.c index cd31eb0..dd71f10 100644 --- a/AMS_Master_Code/Core/Src/soc_estimation.c +++ b/AMS_Master_Code/Core/Src/soc_estimation.c @@ -1,7 +1,7 @@ #include "soc_estimation.h" #include "shunt_monitoring.h" -#include "slave_monitoring.h" +#include "battery.h" #include "stm32h7xx_hal.h"