Versions Compared

Key

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

...

DescriptionBMS Carrier Firmware
Target releaseMSXIV
Epic
Document owner
Project leads
Team membersArshan Khanifar 

Goals / Background / Strategic Fit / Requirements

...

  • Kill Switch flipped (?)
  • AFE Under/Over volt
    • Disconnect relay

Block Diagram 

Image Removed

...

Revised Block Diagram

Image Added

Design Notes

  • Main initializes killswitch, current_sense, battery_heartbeat, cell_sense, and fan_control. 
  • Killswitch, current_sense, and cell_sense need direct access to battery_heartbeat in order to quickly raise or clear faults.

Detailed Design / Modules

Main



  • 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


  • 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

...

LTC6811 (Battery Monitor) Datasheet - https://www.analog.com/media/en/technical-documentation/data-sheets/68111fb.pdf

Car's Power States

Old Block Diagram 

Image Added


This block diagram is highly inspired by MSXII's Plutus. Some minor adjustments were made to make it slightly more easy to understand.

Reasons to revise:

  • Relay_control doesn’t need to be under fault_handler since it’ll also receive messages from center console
  • Event driven architecture
  • System_init is not necessary since startup logic is handled by center console
  • Fault handling is also moved to center console


View file
name680412fc.pdf
height250