55 #ifndef FOXBMS__LTC_6806_CFG_H_
56 #define FOXBMS__LTC_6806_CFG_H_
76 #define SLAVE_BOARD_VERSION (2)
82 #define LTC_PORTEXPANDER_VERSION (1)
88 #define LTC_6806_MAX_SUPPORTED_CELLS (36u)
90 #if BS_NR_OF_CELL_BLOCKS_PER_MODULE > LTC_6806_MAX_SUPPORTED_CELLS
91 #error "Number of cell blocks per module cannot be higher than maximum number of cells per module"
97 #define LTC_PORTEXPANDER_ADR_TI (0)
100 #define LTC_DISCARD_PEC (false)
103 #define LTC_N_MUX_PER_LTC (3)
106 #define LTC_N_MUX_CHANNELS_PER_MUX (8)
109 #define LTC_NUMBER_OF_MUX_MEASUREMENTS_PER_CYCLE (8)
112 #define LTC_N_MUX_CHANNELS_PER_LTC (LTC_N_MUX_PER_LTC * LTC_N_MUX_CHANNELS_PER_MUX)
115 #define LTC_NUMBER_OF_LTC_PER_MODULE (1u)
122 #define LTC_HIRNG (0u)
125 #define LTC_FUEL_CELL_ADOW_TIME_MS (100u + 1u)
128 #define LTC_ADOW_THRESHOLD (-200)
136 #define LTC_VOLTAGE_MEASUREMENT_MODE (LTC_ADCMODE_NORMAL_DCP0)
144 #define LTC_GPIO_MEASUREMENT_MODE (LTC_ADCMODE_NORMAL_DCP0)
151 #define LTC_OW_MEASUREMENT_MODE (LTC_ADCMODE_NORMAL_DCP0)
157 #define LTC_TRANSMISSION_TIMEOUT (10)
163 #define LTC_SPI_HANDLE &spi_devices[0]
164 #define LTC_SPI_INSTANCE *LTC_SPI_HANDLE.Instance
165 #define LTC_SPI_PRESCALER *LTC_SPI_HANDLE.Init.BaudRatePrescaler
169 #define LTC_TWAKE_US (300)
171 #define LTC_TREADY_US (10)
173 #define LTC_TIDLE_US (6700)
176 #define LTC_SPI_WAKEUP_WAIT_TIME_US (30u)
179 #define LTC_FUELCELL_NORMAL_ALL_CELLS_MS (11)
182 #define LTC_STATEMACH_SHORTTIME (1)
188 #define LTC_STATEMACH_DAISY_CHAIN_FIRST_INITIALIZATION_TIME ((LTC_TWAKE_US * LTC_N_LTC) / 1000)
193 #define LTC_STATEMACH_DAISY_CHAIN_SECOND_INITIALIZATION_TIME ((LTC_TREADY_US * LTC_N_LTC) / 1000)
203 #define LTC_STATEMACH_MEAS_ALL_FAST_TCYCLE (2)
209 #define LTC_STATEMACH_MEAS_ALL_NORMAL_TCYCLE (3)
215 #define LTC_STATEMACH_MEAS_ALL_FILTERED_TCYCLE (202)
225 #define LTC_STATEMACH_MEAS_SINGLE_FAST_TCYCLE (1)
231 #define LTC_STATEMACH_MEAS_SINGLE_NORMAL_TCYCLE (1)
237 #define LTC_STATEMACH_MEAS_SINGLE_FILTERED_TCYCLE (35)
240 #define LTC_STATEMACH_SEQERRTTIME (5)
242 #define LTC_STATEMACH_PECERRTIME (1)
248 #define LTC_TRANSMIT_PECERRLIMIT (10)
254 #define LTC_TRANSMIT_SPIERRLIMIT (3)
257 #define LTC_READCOM (0)
273 #define LTC_NMBR_REQ_ADOW_COMMANDS (2)
279 #define LTC_TRANSMIT_WAKE_UP(spi_ltcInterface) SPI_TransmitDummyByte(spi_ltcInterface, LTC_SPI_WAKEUP_WAIT_TIME_US)
280 #define LTC_TRANSMIT_I2C_COMMAND(spi_ltcInterface, txbuf) \
281 SPI_TransmitDummyByte(spi_ltcInterface, LTC_SPI_WAKEUP_WAIT_TIME_US); \
282 SPI_TransmitData(spi_ltcInterface, txbuf, 4 + 9)
283 #define LTC_TRANSMIT_COMMAND(spi_ltcInterface, command) \
284 SPI_TransmitDummyByte(spi_ltcInterface, LTC_SPI_WAKEUP_WAIT_TIME_US); \
285 SPI_TransmitData(spi_ltcInterface, command, 4)
286 #define LTC_TRANSMIT_RECEIVE_DATA(spi_ltcInterface, txbuf, rxbuf, length) \
287 SPI_TransmitDummyByte(spi_ltcInterface, LTC_SPI_WAKEUP_WAIT_TIME_US); \
288 SPI_TransmitReceiveDataDma(spi_ltcInterface, txbuf, rxbuf, length)
318 #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]
#define LTC_6806_MAX_SUPPORTED_CELLS
Defines the maximal number of supported cells per module.
const uint8_t ltc_voltage_input_used[LTC_6806_MAX_SUPPORTED_CELLS]
int16_t LTC_ConvertMuxVoltagesToTemperatures(uint16_t adcVoltage_mV)
converts a raw voltage from multiplexer to a temperature value in deci °C.
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.