60 #ifndef FOXBMS__BATTERY_SYSTEM_CFG_H_
61 #define FOXBMS__BATTERY_SYSTEM_CFG_H_
88 #define BS_POSITIVE_DISCHARGE_CURRENT (true)
99 #define BS_NR_OF_STRINGS (1u)
102 #if (BS_NR_OF_STRINGS > GEN_REPEAT_MAXIMUM_REPETITIONS)
103 #error "Too large number of strings, please check implementation of GEN_REPEAT_U()."
112 #define BS_NR_OF_MODULES_PER_STRING (1u)
122 #define BS_NR_OF_CELL_BLOCKS_PER_MODULE (18u)
130 #define BS_NR_OF_PARALLEL_CELLS_PER_CELL_BLOCK (1u)
133 #define BS_BALANCING_RESISTANCE_ohm (100.0)
139 #define BS_NR_OF_GPIOS_PER_MODULE (10u)
145 #define BS_NR_OF_GPAS_PER_MODULE (2u)
151 #define BS_NR_OF_TEMP_SENSORS_PER_MODULE (8u)
153 #if BS_NR_OF_TEMP_SENSORS_PER_MODULE > BS_NR_OF_GPIOS_PER_MODULE
154 #error "Number of temperature inputs cannot be higher than number of GPIOs"
158 #define BS_NR_OF_CELL_BLOCKS_PER_STRING (BS_NR_OF_MODULES_PER_STRING * BS_NR_OF_CELL_BLOCKS_PER_MODULE)
160 #define BS_NR_OF_TEMP_SENSORS_PER_STRING (BS_NR_OF_MODULES_PER_STRING * BS_NR_OF_TEMP_SENSORS_PER_MODULE)
162 #define BS_NR_OF_TEMP_SENSORS (BS_NR_OF_TEMP_SENSORS_PER_STRING * BS_NR_OF_STRINGS)
171 #define BS_CURRENT_SENSOR_PRESENT (false)
173 #if BS_CURRENT_SENSOR_PRESENT == true
177 #define CURRENT_SENSOR_ISABELLENHUETTE_CYCLIC
181 #define BS_CURRENT_MEASUREMENT_RESPONSE_TIMEOUT_ms (200u)
184 #define BS_COULOMB_COUNTING_MEASUREMENT_RESPONSE_TIMEOUT_ms (2000u)
187 #define BS_ENERGY_COUNTING_MEASUREMENT_RESPONSE_TIMEOUT_ms (2000u)
201 #define BS_MAIN_CONTACTORS_MAXIMUM_BREAK_CURRENT_mA (500000)
211 #define BS_MAIN_FUSE_MAXIMUM_TRIGGER_DURATION_ms (30000u)
219 #define BS_MAXIMUM_STRING_CURRENT_mA (10000u)
227 #define BS_MAXIMUM_PACK_CURRENT_mA (10000u * BS_NR_OF_STRINGS)
234 #define BS_IGNORE_INTERLOCK_FEEDBACK (false)
242 #define BS_CHECK_CAN_TIMING (true)
250 #define BS_BALANCING_DEFAULT_INACTIVE (true)
257 #define BS_NR_OF_VOLTAGES_FROM_CURRENT_SENSOR (3u)
260 #define BS_NR_OF_CONTACTORS_OUTSIDE_STRINGS (1u)
265 #define BS_NR_OF_CONTACTORS ((2u * BS_NR_OF_STRINGS) + BS_NR_OF_CONTACTORS_OUTSIDE_STRINGS)
271 #define BS_REST_CURRENT_mA (200)
277 #define BS_RELAXATION_PERIOD_10ms (60000u)
283 #define BS_CS_THRESHOLD_NO_CURRENT_mA (200u)
296 #define BS_MAX_VOLTAGE_DROP_OVER_FUSE_mV (500)
309 #define BS_CHECK_FUSE_PLACED_IN_NORMAL_PATH (true)
322 #define BS_CHECK_FUSE_PLACED_IN_CHARGE_PATH (false)
335 #define BS_STANDBY_PERIODIC_OPEN_WIRE_CHECK (false)
338 #define BS_STANDBY_OPEN_WIRE_PERIOD_ms (600000)
341 #define BS_NORMAL_PERIODIC_OPEN_WIRE_CHECK (false)
344 #define BS_NORMAL_OPEN_WIRE_PERIOD_ms (600000)
347 #define BS_CHARGE_PERIODIC_OPEN_WIRE_CHECK (false)
350 #define BS_CHARGE_OPEN_WIRE_PERIOD_ms (600000)
353 #define BS_ERROR_OPEN_WIRE_PERIOD_ms (30000)
365 #ifdef UNITY_UNIT_TEST
FAS_STATIC_ASSERT((BS_NR_OF_STRINGS<=(uint8_t) UINT8_MAX), "This code assumes BS_NR_OF_STRINGS fits into uint8_t")
BS_STRING_PRECHARGE_PRESENT_e bs_stringsWithPrecharge[BS_NR_OF_STRINGS]
#define BS_NR_OF_STRINGS
Number of parallel strings in the battery pack.
BS_STRING_PRECHARGE_PRESENT_e
@ BS_STRING_WITHOUT_PRECHARGE
@ BS_STRING_WITH_PRECHARGE
Assert macro implementation.
General macros and definitions for the whole platform.