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 = 6 }
43
45#define REAR_CONTROLLER_POS_RELAY_SENSE_GPIO \
46 { .port = GPIO_PORT_A, .pin = 5 }
47
49#define REAR_CONTROLLER_NEG_RELAY_ENABLE_GPIO \
50 { .port = GPIO_PORT_A, .pin = 4 }
51
53#define REAR_CONTROLLER_NEG_RELAY_SENSE_GPIO \
54 { .port = GPIO_PORT_A, .pin = 3 }
55
57#define REAR_CONTROLLER_SOLAR_RELAY_ENABLE_GPIO \
58 { .port = GPIO_PORT_A, .pin = 8 }
59
61#define REAR_CONTROLLER_SOLAR_RELAY_SENSE_GPIO \
62 { .port = GPIO_PORT_A, .pin = 9 }
63
64/************************************************************************************************
65 * Motor interface definitions
66 ************************************************************************************************/
67
69#define REAR_CONTROLLER_MOTOR_RELAY_ENABLE_GPIO \
70 { .port = GPIO_PORT_C, .pin = 4 }
71
73#define REAR_CONTROLLER_MOTOR_RELAY_SENSE_GPIO \
74 { .port = GPIO_PORT_A, .pin = 7 }
75
77#define REAR_CONTROLLER_MOTOR_LV_ENABLE_GPIO \
78 { .port = GPIO_PORT_C, .pin = 12 }
79
80/************************************************************************************************
81 * Fan definitions
82 ************************************************************************************************/
83
85#define REAR_CONTROLLER_MOTOR_FAN_PWM \
86 { .port = GPIO_PORT_B, .pin = 2 }
87
89#define REAR_CONTROLLER_MOTOR_FAN_SENSE_1 \
90 { .port = GPIO_PORT_B, .pin = 0 }
91
93#define REAR_CONTROLLER_MOTOR_FAN_SENSE_2 \
94 { .port = GPIO_PORT_B, .pin = 1 }
95
96/************************************************************************************************
97 * Current sense definitions
98 ************************************************************************************************/
99
101#define REAR_CONTROLLER_CURRENT_SENSE_I2C_PORT I2C_PORT_1
102
104#define REAR_CONTROLLER_CURRENT_SENSE_I2C_SDA_GPIO \
105 { .port = GPIO_PORT_B, .pin = 11 }
106
108#define REAR_CONTROLLER_CURRENT_SENSE_I2C_SCL_GPIO \
109 { .port = GPIO_PORT_B, .pin = 10 }
110
112#define REAR_CONTROLLER_CURRENT_SENSE_ACS37800_I2C_ADDR (96)
113
114/************************************************************************************************
115 * AFEs (LTC6811) SPI definitions
116 ************************************************************************************************/
117
119#define REAR_CONTROLLER_ADBMS_AFE_SPI_PORT SPI_PORT_2
120
122#define REAR_CONTROLLER_ADBMS_AFE_SPI_BAUDRATE SPI_BAUDRATE_312_5KHZ
123
125#define REAR_CONTROLLER_ADBMS_AFE_SPI_SDO_GPIO \
126 { .port = GPIO_PORT_B, .pin = 15 }
127
129#define REAR_CONTROLLER_ADBMS_AFE_SPI_SDI_GPIO \
130 { .port = GPIO_PORT_B, .pin = 14 }
131
133#define REAR_CONTROLLER_ADBMS_AFE_SPI_SCK_GPIO \
134 { .port = GPIO_PORT_B, .pin = 13 }
135
137#define REAR_CONTROLLER_ADBMS_AFE_SPI_CS_GPIO \
138 { .port = GPIO_PORT_B, .pin = 12 }
139
140/************************************************************************************************
141 * Power Sense pins
142 ************************************************************************************************/
143
145#define REAR_CONTROLLER_PCS_VALID1 \
146 { .port = GPIO_PORT_C, .pin = 6 }
147
149#define REAR_CONTROLLER_PCS_VALID2 \
150 { .port = GPIO_PORT_C, .pin = 7 }
151
153#define REAR_CONTROLLER_AUX_VALID1 \
154 { .port = GPIO_PORT_C, .pin = 8 }
155
157#define REAR_CONTROLLER_AUX_VALID2 \
158 { .port = GPIO_PORT_C, .pin = 9 }
159
161#define REAR_CONTROLLER_PCS_VSENSE \
162 { .port = GPIO_PORT_A, .pin = 2 }
163
165#define REAR_CONTROLLER_AUX_VSENSE \
166 { .port = GPIO_PORT_A, .pin = 1 }
167
169#define REAR_CONTROLLER_PCS_ISENSE \
170 { .port = GPIO_PORT_C, .pin = 3 }
171
173#define REAR_CONTROLLER_AUX_ISENSE \
174 { .port = GPIO_PORT_C, .pin = 2 }
175
176/************************************************************************************************
177 * Critical Sense pins
178 ************************************************************************************************/
179
181#define REAR_CONTROLLER_PRECHARGE_MONITOR_GPIO \
182 { .port = GPIO_PORT_A, .pin = 0 }
183
185#define REAR_CONTROLLER_KILLSWITCH_MONITOR_GPIO \
186 { .port = GPIO_PORT_C, .pin = 5 }
187
188/************************************************************************************************
189 * Board LED definition
190 ************************************************************************************************/
191
193#define REAR_CONTROLLER_BOARD_LED \
194 { .port = GPIO_PORT_A, .pin = 10 }
195