Versions Compared

Key

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

...

The diagram is shown below, hexagons representing the sequence steps. The states themselves have no real functionality in their output functions.

...

...

Power Aux Sequence

...

Transmit CONFIRM_AUX_STATUS and receive ack OK

...

checking any aux faults before enabling power

...

*

  1. Confirm a valid aux status has been received from Power Select Info message

    1. Correct status bits should be set in the message

    2. No fault bits should be set

  2. confirm_aux_status

    1. Tell power select to check any aux faults before enabling power (Maybe not needed in main seq?)

  3. Transmit TURN_ON_EVERYTHING to Power Distribution and receive ack OK

    1. Sent to power distribution, which turns on outputs needed for aux state

Power Main Sequence:

Power main sequence needs to send the following messages and receive an ack for each.

  1. Turn on bms, wait for ackBPS heartbeat

    1. Once Power Distribution has turned everything on, we wait for BMS to power up and send heartbeat message, indicating that the power on was successful

*From Power Aux, if a fault condition is detected (ie invalid power select status message) we should return to off

Power main sequence

  1. Confirm Aux Status

    1. Confirm no issues with aux supply at Power Select

    2. Check power select message for valid aux status, and no faults

  2. Power on boards

    1. Tell Power distribution to power on BMS board (do this separately to run independent bms checks)

  3. confirm_battery_status

    1. Battery checks, waits for ack

  4. close_battery_relays
    1. all outputs

  5. Confirm battery status

    1. Wait for BMS to start up and reply with a Heartbeat and status message

    2. This indicates initial state is all good

  6. Close Relays

    1. Transmit message to BMS to close relays and switch to main power

    2. Transmits to BMS to close relays

  7. confirm_dcdc

    1. Power Select confirms DCDC

  8. turn_on_everything

    1. Power Distribution enables all boards

  9. power_main_complete

    Confirm DCDC

    1. Check at power select that main power (DCDC) is now in use

  10. Power Main Complete

    1. Sends “ready to drive” to MCI

    2. Start BPS watchdog

Power Off Sequence:

  1. Discharge Precharge

    1. Send message to MCI to discharge precharge

    Turn Off everything
    1. Tell Power distribution to turn off the relevant boards

    Open Relays (Transition to fault on BPS Fault)

    1. Tell BMS to open the relays (receive ack)

  2. Confirm Back to Aux with power select

  3. Turn Off everything

    1. Tell Power distribution to turn off everything except for power select, centre console, and pedal

Fault

  • This state covers a BPS fault during operation. It occurs if we receive a message from BMS saying that we have a fault condition, or a timeout occurs on the BPS heartbeat message

    • If a message is received saying that a fault has occurred, then we can attempt to handle the specific fault

    • If a BPS timeout has occurred, we must discharge MCI and loop until BPS communication resumes, or the car is power cycled.

    • BPS indicator is on during this time (and hazard lights flash as well I believe)

...