Versions Compared

Key

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

...

  1. POW_2ND_CONN and BPS_PWR_OUT are disconnected meaning other systems are turned off as well. IG1/2 are 11.
  2. POW_2ND_CONN and BPS_PWR_OUT are connected meaning other systems are turned on. We call this the low voltage (LV) step. IG1/2 are 11.
  3. Current flows through the photocoupler on IG1 meaning IG1/2 is 01. This is called Array. This is where we precharge the array.
  4. Current flows through the photocoupler on IG2 meaning IG1/2 is 10. This is called Motor. This is where we precharge the motor and the car is fully turned on.
  5. Same as 4.
  6. Same as 4.

Software


The first distinction to make is that...

Controls has jurisdiction over two contactors:

  1. Array Precharge Bypass Contactor (Array PBC)
  2. Motor Controller Precharge Bypass Contactor (Motor Controller PBC)

BPS has jurisdiction over three contactors:

  1. BPS Array Contactor
  2. High Voltage Plus Contactor
  3. High Voltage Minus Contactor

PBC = precharge-bypass contactor

After a sufficient amount of messages from BPS regarding the BPS Array, HV Plus, and HV Minus contactors are received, a set precharge delay occurs to avoid huge surges of current.

...

The least significant bit (bit 0) is associated with the Array BPS Contactor, and the bit 1 and 2 are associated with the HV Minus and Plus Contactors. The HV Minus and Plus Contactors are grouped together because Controls requires both to close the Motor Controller PBC. It is important to note that HV Plus and Minus Contactors are two separate contactors that BPS owns. Because Controls logically ands HV Plus and HV Minus Contactors, they acknowledge it as a single entity, which it is not.

Example:

000 - All BPS contactors are open

...

111 - All BPS contactors are closed

BPS should send Controls a message every half a second (500ms) or a frequency of 2 Hz. Controls enforces this by using a watchdog timer that is started and reset every time a BPS_CONTACTOR message is received.

When we switch to a state, such as Array or Motor, we send a CAN message to BPS on CarCAN to tell them that we are wanting array to be charged. We wait and listen for a message back once they have confirmed that is true. We do this so that we do not use the array or motor in our code until they have been charged.

...