/* * Current_Monitoring.h * * Created on: 24. April, 2024 * Author: nived */ #ifndef INC_CURRENT_MONITORING_H_ #define INC_CURRENT_MONITORING_H_ #include "stm32f3xx_hal.h" // Convert ADC quants to I_S in mA #define CURR_SENSE_IS_FACTOR ((3.3f / 4096) / 1.2f) // 3.3V / 12bit / 1.2kOhm // Convert ADC quants to I_L in mA #define CURR_SENSE_FACTOR_5A (3700 * CURR_SENSE_IS_FACTOR) #define CURR_SENSE_FACTOR_7_5A (5450 * CURR_SENSE_IS_FACTOR) #define CURR_SENSE_FACTOR_21A (22700 * CURR_SENSE_IS_FACTOR) #define CURR_SENSE_FACTOR_31A (34100 * CURR_SENSE_IS_FACTOR) typedef struct { uint16_t acu; uint16_t epsc; uint16_t radiator_fans; uint16_t tsac_fans; uint16_t gss; uint16_t lidar; uint16_t sdc; uint16_t inverters; uint16_t servos; uint16_t aggregat; uint16_t misc; uint16_t always_on; uint16_t ebs_cs_valve; uint16_t reserved; uint16_t ebsvalve_a; uint16_t ebsvalve_b; uint16_t cooling_pump; } CurrentMeasurements; void currentMonitor_init(ADC_HandleTypeDef* hadc1, ADC_HandleTypeDef* hadc2, TIM_HandleTypeDef* trigtim); uint8_t currentMonitor_checklimits(); #endif /* INC_CURRENT_MONITORING_H_ */