Midnight Sun Firmware
Loading...
Searching...
No Matches
rear_controller_hw_defs.h
1#pragma once
2
3/************************************************************************************************
4 * @file rear_controller_hw_defs.h
5 *
6 * @brief Rear controller board hardware definitions
7 *
8 * @date 2025-05-28
9 * @author Midnight Sun Team #24 - MSXVI
10 ************************************************************************************************/
11
12/* Standard library Headers */
13
14/* Inter-component Headers */
15
16/* Intra-component Headers */
17
24/************************************************************************************************
25 * Rear Controller CAN definitions
26 ************************************************************************************************/
27
29#define REAR_CONTROLLER_CAN_RX \
30 { .port = GPIO_PORT_B, .pin = 8 }
31
33#define REAR_CONTROLLER_CAN_TX \
34 { .port = GPIO_PORT_B, .pin = 9 }
35
36/************************************************************************************************
37 * Relay definitions
38 ************************************************************************************************/
39
41#define REAR_CONTROLLER_POS_RELAY_ENABLE_GPIO \
42 { .port = GPIO_PORT_A, .pin = 4 }
43
45#define REAR_CONTROLLER_POS_RELAY_SENSE_GPIO \
46 { .port = GPIO_PORT_B, .pin = 3 }
47
49#define REAR_CONTROLLER_NEG_RELAY_ENABLE_GPIO \
50 { .port = GPIO_PORT_B, .pin = 2 }
51
53#define REAR_CONTROLLER_NEG_RELAY_SENSE_GPIO \
54 { .port = GPIO_PORT_A, .pin = 12 }
55
57#define REAR_CONTROLLER_SOLAR_RELAY_ENABLE_GPIO \
58 { .port = GPIO_PORT_A, .pin = 5 }
59
61#define REAR_CONTROLLER_SOLAR_RELAY_SENSE_GPIO \
62 { .port = GPIO_PORT_A, .pin = 6 }
63
65#define REAR_CONTROLLER_MOTOR_RELAY_ENABLE_GPIO \
66 { .port = GPIO_PORT_A, .pin = 9 }
67
69#define REAR_CONTROLLER_MOTOR_RELAY_SENSE_GPIO \
70 { .port = GPIO_PORT_A, .pin = 10 }
71
73#define REAR_CONTROLLER_MOTOR_LV_ENABLE_GPIO \
74 { .port = GPIO_PORT_C, .pin = 12 }
75
76/************************************************************************************************
77 * Current sense I2C definitions
78 ************************************************************************************************/
79
81#define REAR_CONTROLLER_CURRENT_SENSE_I2C_PORT I2C_PORT_1
82
84#define REAR_CONTROLLER_CURRENT_SENSE_I2C_SDA_GPIO \
85 { .port = GPIO_PORT_B, .pin = 7 }
86
88#define REAR_CONTROLLER_CURRENT_SENSE_I2C_SCL_GPIO \
89 { .port = GPIO_PORT_B, .pin = 6 }
90
92#define REAR_CONTROLLER_CURRENT_SENSE_MAX17261_I2C_ADDR (96)
93
94/************************************************************************************************
95 * AFEs (LTC6811) SPI definitions
96 ************************************************************************************************/
97
99#define REAR_CONTROLLER_ADBMS_AFE_SPI_PORT SPI_PORT_2
100
102#define REAR_CONTROLLER_ADBMS_AFE_SPI_BAUDRATE SPI_BAUDRATE_312_5KHZ
103
105#define REAR_CONTROLLER_ADBMS_AFE_SPI_SDO_GPIO \
106 { .port = GPIO_PORT_B, .pin = 15 }
107
109#define REAR_CONTROLLER_ADBMS_AFE_SPI_SDI_GPIO \
110 { .port = GPIO_PORT_B, .pin = 14 }
111
113#define REAR_CONTROLLER_ADBMS_AFE_SPI_SCK_GPIO \
114 { .port = GPIO_PORT_B, .pin = 13 }
115
117#define REAR_CONTROLLER_ADBMS_AFE_SPI_CS_GPIO \
118 { .port = GPIO_PORT_B, .pin = 12 }
119
120/************************************************************************************************
121 * Power Sense pins
122 ************************************************************************************************/
123
125#define REAR_CONTROLLER_PCS_VALID1 \
126 { .port = GPIO_PORT_C, .pin = 6 }
127
129#define REAR_CONTROLLER_PCS_VALID2 \
130 { .port = GPIO_PORT_C, .pin = 7 }
131
133#define REAR_CONTROLLER_AUX_VALID1 \
134 { .port = GPIO_PORT_C, .pin = 8 }
135
137#define REAR_CONTROLLER_AUX_VALID2 \
138 { .port = GPIO_PORT_C, .pin = 9 }
139
141#define REAR_CONTROLLER_PCS_VSENSE \
142 { .port = GPIO_PORT_A, .pin = 1 }
143
145#define REAR_CONTROLLER_AUX_VSENSE \
146 { .port = GPIO_PORT_A, .pin = 2 }
147
149#define REAR_CONTROLLER_PCS_ISENSE \
150 { .port = GPIO_PORT_C, .pin = 2 }
151
153#define REAR_CONTROLLER_AUX_ISENSE \
154 { .port = GPIO_PORT_C, .pin = 3 }
155
156/************************************************************************************************
157 * Critical Sense pins
158 ************************************************************************************************/
159
161#define REAR_CONTROLLER_PRECHARGE_MONITOR_GPIO \
162 { .port = GPIO_PORT_A, .pin = 3 }
163
165#define REAR_CONTROLLER_KILLSWITCH_MONITOR_GPIO \
166 { .port = GPIO_PORT_A, .pin = 11 }
167