56 #ifndef FOXBMS__LTC_6813_1_CFG_H_
57 #define FOXBMS__LTC_6813_1_CFG_H_
78 #define SLAVE_BOARD_VERSION (2)
80 #if SLAVE_BOARD_VERSION == 1
81 #elif SLAVE_BOARD_VERSION == 2
83 #error Please select the slave board version you want to use. Configuration file: \src\module\config\ltc_cfg.h
90 #define LTC_6813_MAX_SUPPORTED_CELLS (18u)
92 #if BS_NR_OF_CELL_BLOCKS_PER_MODULE > LTC_6813_MAX_SUPPORTED_CELLS
93 #error "Number of cell blocks per module cannot be higher than maximum number of cells per module"
100 #define LTC_PORTEXPANDER_VERSION (1u)
103 #define LTC_PORTEXPANDER_ADR_TI (0u)
106 #define LTC_DISCARD_PEC (false)
109 #define LTC_GOTO_MUX_CHECK (true)
112 #define LTC_DISCARD_MUX_CHECK (false)
115 #define LTC_N_MUX_PER_LTC (3u)
118 #define LTC_N_MUX_CHANNELS_PER_MUX (8u)
121 #define LTC_NUMBER_OF_MUX_MEASUREMENTS_PER_CYCLE (8u)
124 #define LTC_N_MUX_CHANNELS_PER_LTC (LTC_N_MUX_PER_LTC * LTC_N_MUX_CHANNELS_PER_MUX)
127 #define LTC_NUMBER_OF_LTC_PER_MODULE (1u)
130 #define LTC_ADOW_THRESHOLD (-400)
138 #define LTC_VOLTAGE_MEASUREMENT_MODE (LTC_ADCMODE_NORMAL_DCP0)
146 #define LTC_GPIO_MEASUREMENT_MODE (LTC_ADCMODE_NORMAL_DCP0)
153 #define LTC_OW_MEASUREMENT_MODE (LTC_ADCMODE_NORMAL_DCP0)
159 #define LTC_TRANSMISSION_TIMEOUT (10)
165 #define LTC_SPI_HANDLE (&spi_devices[0])
166 #define LTC_SPI_INSTANCE (*LTC_SPI_HANDLE.Instance)
167 #define LTC_SPI_PRESCALER (*LTC_SPI_HANDLE.Init.BaudRatePrescaler)
171 #define LTC_TWAKE_US (300)
173 #define LTC_TREADY_US (10)
175 #define LTC_TIDLE_US (6700)
178 #define LTC_SPI_WAKEUP_WAIT_TIME_US (30u)
181 #define LTC_STATEMACH_SHORTTIME (1)
187 #define LTC_STATEMACH_DAISY_CHAIN_FIRST_INITIALIZATION_TIME ((LTC_TWAKE_US * LTC_N_LTC) / 1000)
192 #define LTC_STATEMACH_DAISY_CHAIN_SECOND_INITIALIZATION_TIME ((LTC_TREADY_US * LTC_N_LTC) / 1000)
202 #define LTC_STATEMACH_MEAS_ALL_CELLS_FAST_TCYCLE (2)
208 #define LTC_STATEMACH_MEAS_ALL_CELLS_NORMAL_TCYCLE (3)
214 #define LTC_STATEMACH_MEAS_ALL_CELLS_FILTERED_TCYCLE (202)
220 #define LTC_STATEMACH_MEAS_TWO_CELLS_FAST_TCYCLE (1)
226 #define LTC_STATEMACH_MEAS_TWO_CELLS_NORMAL_TCYCLE (1)
232 #define LTC_STATEMACH_MEAS_TWO_CELLS_FILTERED_TCYCLE (35)
242 #define LTC_STATEMACH_MEAS_ALL_GPIOS_FAST_TCYCLE (2)
248 #define LTC_STATEMACH_MEAS_ALL_GPIOS_NORMAL_TCYCLE (4)
254 #define LTC_STATEMACH_MEAS_ALL_GPIOS_FILTERED_TCYCLE (336)
260 #define LTC_STATEMACH_MEAS_SINGLE_GPIO_FAST_TCYCLE (1)
266 #define LTC_STATEMACH_MEAS_SINGLE_GPIO_NORMAL_TCYCLE (1)
272 #define LTC_STATEMACH_MEAS_SINGLE_GPIO_FILTERED_TCYCLE (68)
275 #define LTC_STATEMACH_SEQERRTTIME (5)
277 #define LTC_STATEMACH_PECERRTIME (1)
283 #define LTC_TRANSMIT_PECERRLIMIT (10)
289 #define LTC_TRANSMIT_SPIERRLIMIT (3)
292 #define LTC_READCOM (0)
308 #define LTC_NMBR_REQ_ADOW_COMMANDS (2)
314 #define LTC_TRANSMIT_WAKE_UP(spi_ltcInterface) SPI_TransmitDummyByte(spi_ltcInterface, LTC_SPI_WAKEUP_WAIT_TIME_US)
315 #define LTC_TRANSMIT_I2C_COMMAND(spi_ltcInterface, txbuf) \
316 SPI_TransmitDummyByte(spi_ltcInterface, LTC_SPI_WAKEUP_WAIT_TIME_US); \
317 SPI_TransmitData(spi_ltcInterface, txbuf, 4 + 9)
318 #define LTC_TRANSMIT_COMMAND(spi_ltcInterface, command) \
319 SPI_TransmitDummyByte(spi_ltcInterface, LTC_SPI_WAKEUP_WAIT_TIME_US); \
320 SPI_TransmitData(spi_ltcInterface, command, 4)
321 #define LTC_TRANSMIT_RECEIVE_DATA(spi_ltcInterface, txbuf, rxbuf, length) \
322 SPI_TransmitDummyByte(spi_ltcInterface, LTC_SPI_WAKEUP_WAIT_TIME_US); \
323 SPI_TransmitReceiveDataDma(spi_ltcInterface, txbuf, rxbuf, length)
358 #ifdef UNITY_UNIT_TEST
Configuration of the battery system (e.g., number of battery modules, battery cells,...
#define BS_NR_OF_TEMP_SENSORS_PER_MODULE
number of temperature sensors per battery module
const uint8_t ltc_muxsensortemperatur_cfg[BS_NR_OF_TEMP_SENSORS_PER_MODULE]
const uint8_t ltc_voltage_input_used[LTC_6813_MAX_SUPPORTED_CELLS]
LTC_MUX_SEQUENCE_s ltc_mux_seq
int16_t LTC_ConvertMuxVoltagesToTemperatures(uint16_t adcVoltage_mV)
converts a raw voltage from multiplexer to a temperature value in deci °C.
#define LTC_6813_MAX_SUPPORTED_CELLS
Defines the maximal number of supported cells per module.
Headers for the driver for the DMA module for the LTC.
Headers for the configuration for the LTC analog front-end.
Headers for the driver for the LTC analog front-end.
Headers for the driver for the SPI module.