Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Hardware

The Controls leader board takes in a 12V line from BPS called POW_2ND_CONN and is routed back out to Power Systems (Power Board) as BPS_PWR_OUT. The 12V line is on the 12V power domain and is either cut off from ground or connected to GNDPWR, which is the 12V ground. This line goes through a rotary switch which determines whether current goes through the photocouplers or not. Photocouplers allow for logic to be done across two power domains, as seen here. If a photocoupler has current, then the transistor on the other side allows current to conduct, creating a short circuit. On the other side of the photocouplers, is a GPIO input that is pulled up to 3.3V (3V power domain). The MCU reads HIGH if the photocoupler has no current going through it since there is an open circuit to ground. Once the photocoupler receives current, it creates the short circuit meaning the node which the GPIO input sits on is now GND and the MCU reads LOW.

Sequence

The following are the steps in the sequence of the rotary switch. The first step is when the rotary switch is turned clockwise all the way from the perspective of the user.

  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

Controls has a task which reads the ignition switches periodically and assess which state we are in. If it is 11, we are in LV. If it is 01, we are in Array. If it is 10, we are in Motor.

TODO: Not sure what exactly we do in each state in terms of software.

  • No labels