...
Description | BMS Carrier Firmware |
---|---|
Target release | MSXIV |
Epic | |
Document owner | Arshan Khanifaress Jess Muir |
Project leads | |
Team members |
...
- Initializes other modules, initializes CAN and other modules
- Stores most updated measurements
- Current
- Cell voltages
- Cell temps
- Relay state
- Fan speed
Killswitch
- Initializes a debounced GPIO pin to handle killswitch presses
- Exposes init
Battery_heartbeat
- Periodically transmits battery status and receives acks
- Exposes ability to raise and clear faults based on a bitset, and init
- Opens relays in case of fault and updates relay state
Relay_control
- Statically sets relay state, updates stored state, and returns whether the relay state set was successful.
- Exposes set_relay_state
- Note: may need to have a delay when setting relay states to avoid drawing too much current at once
Current_sense
- Registers an interrupt to update the stored current value based on ADC reading
- If the updated current value is above a threshold, raise overcurrent fault
- If the overcurrent fault bit is set and the updated current value is below the threshold, drop the fault bit
- Exposes init
Ads_1259
- Driver for the ADS1259 24 bit ADC
- Exposes ltc_adc_register_callback
Cell_sense
- To be ported from MSXII firmware.
- Raises / lowers faults similar to current_sense, including overcharge, over temperature, over current, under charge
Fan_control
- Periodically updates the fan speed based on the temperature
- Uses an offset linear fan control curve based on the desired operating temperature of the battery (refer to datasheet)
- Exposes init
Meeting Notes
- logs all
- Voltage,
- Temp,
- Current
- Relay States
- Controls
- Relays
...