The precharge circuit runs entirely based on hardware (i.e. no firmware is required).
...
Figure 1 shows the high voltage side of the pre-charge board. HV_IN is where the circuit is connected to the battery. The two MOSFETs connected in parallel act as a switch which connects our HV line to the motor controllers. The MOSFETs are put in parallel because parallel MOSFETs will balance out, distributing the current a bit and overall handling the load better. This switch will also disconnect the pre-charge circuit once the pre-charge is complete. The line contains four power resistors before the motor controller each rated at 100W, limiting the inrush current. After the motor controller is two resistors in parallel which act as discharge resistors. The value of each power resistor was spec'd based on the 9600uF capacitance in the motor controller and the 150V from the battery. In MSXIV, the capacitance will be 270uF so the resistors will be respec'd to higher values.
Things to research:
- MOSFETs
- N-channel vs P-channel
- Parallel MOSFETs
- Power resistors vs normal resistors
...
The first IC on the left of figure 5 is an optoisolator (or optocoupler) used to interface between the HV and LV sides of the board. You can see this in figure 6, the optoisolator spans across a gap where the HV side (top) is isolated from the LV side (bottom). Following the latch previously mentioned, when ISO_LATCH_OUT outputs a logic high, the MOSFET is closed connecting the cathode (CAT) pin to ground. This connects the circuit from the anode (AN) completing the circuit and powering the GaAsP LED inside the IC. When this happens, the Vo will output a logic high and close the MOSFET to the contactor driver. This signals the relay connecting HV directly to the motor controllers to close.
...