Skip to content

Commit

Permalink
Update Output Config spec for PD based on new rev (#238)
Browse files Browse the repository at this point in the history
* Complete task 1

* Update Output Config spec for PD based on new rev

* lint

* lint

---------

Co-authored-by: Mitchell Ostler <[email protected]>
  • Loading branch information
thiendan and mitchellostler authored Jan 3, 2024
1 parent 7289afd commit 7bfeccf
Show file tree
Hide file tree
Showing 3 changed files with 302 additions and 222 deletions.
75 changes: 23 additions & 52 deletions projects/power_distribution/inc/outputs.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,58 +20,29 @@
// Add any new outputs at the end, and if a spare gets a proper name, just rename the spare output.
typedef enum {
// Outputs for front power distribution
FRONT_OUTPUT_CENTRE_CONSOLE = 0,
FRONT_OUTPUT_PEDAL,
FRONT_OUTPUT_STEERING,
FRONT_OUTPUT_UV_CUTOFF,
FRONT_OUTPUT_LEFT_FRONT_TURN_LIGHT,
FRONT_OUTPUT_RIGHT_FRONT_TURN_LIGHT,
FRONT_OUTPUT_DAYTIME_RUNNING_LIGHTS,
FRONT_OUTPUT_CAMERA_DISPLAY, // aka main display

FRONT_OUTPUT_LEFT_CAMERA,
FRONT_OUTPUT_RIGHT_CAMERA,
FRONT_OUTPUT_MAIN_PI, // driver display + telemetry pi
FRONT_OUTPUT_REAR_DISPLAY,
FRONT_OUTPUT_LEFT_DISPLAY,
FRONT_OUTPUT_RIGHT_DISPLAY,
FRONT_OUTPUT_SPEAKER, // If not using speaker

FRONT_OUTPUT_5V_SPARE_1,
FRONT_OUTPUT_5V_SPARE_2,
FRONT_OUTPUT_SPARE_1, // Spare_1_Telemetry_PWR
FRONT_OUTPUT_SPARE_2, // MCI_PWR
FRONT_OUTPUT_SPARE_3,
FRONT_OUTPUT_SPARE_4, // on rear fan 1's BTS7200 channel
FRONT_OUTPUT_SPARE_5, // on rear fan 2's BTS7200 channel

// Outputs for rear power distribution
REAR_OUTPUT_BMS,
REAR_OUTPUT_MCI,
REAR_OUTPUT_SOLAR_SENSE,
REAR_OUTPUT_BPS_STROBE_LIGHT,
REAR_OUTPUT_FAN_1,
LEFT_REAR_CAMERA,
RIGHT_CAMERA,
// REAR_OUTPUT_FAN_2,
// REAR_OUTPUT_LEFT_REAR_TURN_LIGHT,
// REAR_OUTPUT_RIGHT_REAR_TURN_LIGHT,
// REAR_OUTPUT_BRAKE_LIGHT,
// REAR_OUTPUT_REAR_CAMERA,

// REAR_OUTPUT_5V_SPARE_1,
// REAR_OUTPUT_5V_SPARE_2,
// REAR_OUTPUT_SPARE_1, // on Telemetry
// REAR_OUTPUT_SPARE_2, // on Left Display
// REAR_OUTPUT_SPARE_3,
// REAR_OUTPUT_SPARE_4, // on pedal's BTS7200 channel
// REAR_OUTPUT_SPARE_5, // on steering's BTS7200 channel
// REAR_OUTPUT_SPARE_6, // on right camera's BTS7200 channel
// REAR_OUTPUT_SPARE_7, // on main pi's BTS7200 channel
// REAR_OUTPUT_SPARE_8, // on driver display's BTS7200 channel
// REAR_OUTPUT_SPARE_9, // on centre console's BTS7200 channel
// REAR_OUTPUT_SPARE_10, // on rear display's BTS7200 channel
// REAR_OUTPUT_SPARE_11, // UV_cutoff_Pwr
SOLAR_SENSE_1 = 0,
SOLAR_SENSE_2,
PEDAL,
STEERING,
LEFT_TURN,
RIGHT_TURN,
DRL_LIGHT,
BRAKE_LIGHT,

CENTER_CONSOLE,
BMS_DCDC,
MCI,
BPS_LIGHT,

SPARE_12V_1,
SPARE_12V_2,
BMS_AUX,
DRIVER_FAN,
REAR_CAM_LCD,
SPARE_5V_DCDC,

TELEMETRY,
SPARE_5V_AUX,

NUM_OUTPUTS,
} Output;
Expand Down
136 changes: 78 additions & 58 deletions projects/power_distribution/inc/pin_defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,38 +40,97 @@
#define FRONT_OR_REAR_RECOGNITION_PIN \
{ GPIO_PORT_A, 8 }

// Front power distribution TODO: Will change with new PD revision
// Enable Pins
#define FRONT_PIN_CENTRE_CONSOLE_EN \
{ PD_PCA9555_I2C_ADDRESS_1, PCA9555_PIN_IO1_4 }
#define SOLAR_SENSE_1_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_0 }

#define SOLAR_SENSE_2_EN \
{ PD_PCA9555_I2C_ADDRESS_1, PCA9555_PIN_IO0_1 }

#define FRONT_PIN_STEERING_EN \
#define SOLAR_SENSE_1_2_DSEL \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_2 }

#define FRONT_PIN_PEDAL_EN \
#define PEDAL_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_3 }

#define STEERING_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_4 }

#define FRONT_PIN_DAYTIME_RUNNING_LIGHTS_EN \
{ PD_PCA9555_I2C_ADDRESS_1, PCA9555_PIN_IO1_3 }
#define PEDAL_STEERING_DSEL \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_5 }

#define FRONT_PIN_FRONT_LEFT_TURN_LIGHT_EN \
{ PD_PCA9555_I2C_ADDRESS_1, PCA9555_PIN_IO1_0 }
#define LEFT_TURN_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_6 }

#define FRONT_PIN_FRONT_RIGHT_TURN_LIGHT_EN \
{ PD_PCA9555_I2C_ADDRESS_1, PCA9555_PIN_IO1_2 }
#define RIGHT_TURN_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_7 }

#define FRONT_PIN_MAIN_PI_CAMERA_DISPLAY_EN \
#define LEFT_RIGHT_TURN_DSEL \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_0 }

// Select Pins
#define FRONT_PIN_CENTRE_CONSOLE_REAR_DISPLAY_DSEL \
{ PD_PCA9555_I2C_ADDRESS_1, PCA9555_PIN_IO1_5 }
#define DRL_LIGHT_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_1 }

#define BRAKE_LIGHT_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_2 }

#define DRL_BRAKE_LIGHT_DSEL \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_3 }

#define CENTER_CONSOLE_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_4 }

#define BMS_DCDC_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_5 }

#define CENTER_CONSOLE_BMS_DCDC_DSEL \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_6 }

#define FRONT_PIN_PEDAL_STEERING_DSEL \
#define MCI_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_0 }

#define BPS_LIGHT_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_1 }

#define MCI_BPS_LIGHT_DSEL \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_2 }

#define SPARE_12V_1_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_3 }

#define FRONT_PIN_FRONT_LEFT_RIGHT_TURN_LIGHT_DSEL \
{ PD_PCA9555_I2C_ADDRESS_1, PCA9555_PIN_IO1_1 }
#define SPARE_12V_2_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_4 }

#define SPARE_12V_1_2_DSEL \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_5 }

#define BMS_AUX_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_6 }

#define DRIVER_FAN_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_7 }

#define BMS_AUX_DRIVER_FAN_DSEL \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_0 }

#define REAR_CAM_LCD_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_1 }

#define SPARE_5V_DCDC_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_2 }

#define REAR_CAM_LCD_SPARE_5V_DCDC_DSEL \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_3 }

#define TELEMETRY_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_4 }

#define SPARE_5V_AUX_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_5 }

#define TELEMETRY_SPARE_5V_AUX_DSEL \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_6 }

// Select Pins

// Current Sense MUX
#define NUM_MUX_SEL_PINS 4
Expand All @@ -92,42 +151,3 @@
#define MUX_SEL_INFOTAINMENT_DISPLAY_BMS 13 // aka main display
#define MUX_SEL_FAN_1_2 14
#define MUX_SEL_UV_VBAT 15

// Rear power distribution
// Enable pins
#define REAR_PIN_MCI_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_6 }

#define REAR_PIN_BMS_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_0 }

#define REAR_PIN_SOLAR_SENSE_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_5 }

#define REAR_PIN_FAN_1_EN \
{ PD_PCA9555_I2C_ADDRESS_1, PCA9555_PIN_IO1_7 }

#define REAR_PIN_STROBE_LIGHT_EN \
{ PD_PCA9555_I2C_ADDRESS_1, PCA9555_PIN_IO0_7 }

#define REAR_PIN_BRAKE_LIGHT_EN \
{ PD_PCA9555_I2C_ADDRESS_1, PCA9555_PIN_IO1_3 }

// Select pins
#define REAR_PIN_STROBE_LIGHT_DSEL \
{ PD_PCA9555_I2C_ADDRESS_1, PCA9555_PIN_IO0_2 }

#define REAR_PIN_REAR_LEFT_RIGHT_TURN_LIGHT_DSEL \
{ PD_PCA9555_I2C_ADDRESS_1, PCA9555_PIN_IO1_1 }

#define REAR_PIN_FAN_1_2_DSEL \
{ PD_PCA9555_I2C_ADDRESS_1, PCA9555_PIN_IO0_6 }

#define LEFT_REAR_CAMERA_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_6 }

#define RIGHT_CAMERA_EN \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO0_7 }

#define REAR_RIGHT_CAMERA_DSEL \
{ PD_PCA9555_I2C_ADDRESS_0, PCA9555_PIN_IO1_7 }
Loading

0 comments on commit 7bfeccf

Please sign in to comment.