Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

DescriptionBMS Carrier Firmware
Target releaseMSXIV
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

...