Driver Controls Architecture

From meeting on Oct 27 2018

Attendees:

Pei Liang Guo, Kelly Tang (Unlicensed)Jenny X (Unlicensed)Aashmika Mali,  Liam HawkinsAndy Jin (Unlicensed)

Concerns from MSXII:

Since pedal board, steering stalk, and centre console are placed in separate parts of the car (~1m apart from each other), using I2C to communicate between the 3 boards and the system controller board was very sensitive to noise. 

Suggested Solution:

Switch from I2C to CAN

Initial Approach:

Add a controller board to each of the 3 boards, so they will each send and receive CAN messages instead of I2C.

Concerns With Initial Approach: 

Increased amount of manufacturing tasks (more controller boards to order, bring up, program, validate etc). 

Since we increase of number of controller boards used, we may run out of CAN ID's.

2nd Approach (no longer valid):

Use SPI ADC to collect data (i.e replacing previous ADC of pedal board), then use a SPI to CAN converter (MCP2515). This will allow us to send CAN messages to the system controller board without the need to add a controller board to each of the 3 boards. 

Concerns With 2nd Approach:

Our MCP2515 only has SPI to CAN converter, but we need bi-directional communication (ie CAN to SPI and SPI to CAN) because we want to communicate back and forth between the controller board and the ADC. 

3rd Approach:

Use differential I2C, which is less sensitive to noise. 

  • Do not know how well this works. We are waiting for solar sense to be tested by Mohammad Ali Nikseresht (Deactivated) . If the solar master can successfully communicate with solar slaves via differential I2C, then this will become the favoured option. 
  • If differential I2C does not work, then we will search for more ways to send CAN messages without additional controller boards, or just use Approach 1.