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
23/************************************************************************************************
24 * File-scope definitions
25 ************************************************************************************************/
26
27#define REAR_CONTROLLER_GPIO_DEF(PORT, PIN) \
28 { .port = GPIO_PORT_##PORT, .pin = PIN }
29
30/************************************************************************************************
31 * Rear Controller CAN definitions
32 ************************************************************************************************/
33
35#define GPIO_REAR_CONTROLLER_CAN_RX REAR_CONTROLLER_GPIO_DEF(B, 8)
36
38#define GPIO_REAR_CONTROLLER_CAN_TX REAR_CONTROLLER_GPIO_DEF(B, 9)
39
40/************************************************************************************************
41 * Relay definitions
42 ************************************************************************************************/
43
45#define GPIO_REAR_CONTROLLER_POS_RELAY_ENABLE REAR_CONTROLLER_GPIO_DEF(A, 6)
46
48#define GPIO_REAR_CONTROLLER_POS_RELAY_SENSE REAR_CONTROLLER_GPIO_DEF(A, 5)
49
51#define GPIO_REAR_CONTROLLER_NEG_RELAY_ENABLE REAR_CONTROLLER_GPIO_DEF(A, 4)
52
54#define GPIO_REAR_CONTROLLER_NEG_RELAY_SENSE REAR_CONTROLLER_GPIO_DEF(A, 3)
55
57#define GPIO_REAR_CONTROLLER_SOLAR_RELAY_ENABLE REAR_CONTROLLER_GPIO_DEF(A, 8)
58
60#define GPIO_REAR_CONTROLLER_SOLAR_RELAY_SENSE REAR_CONTROLLER_GPIO_DEF(A, 9)
61
62/************************************************************************************************
63 * Motor interface definitions
64 ************************************************************************************************/
65
67#define GPIO_REAR_CONTROLLER_MOTOR_RELAY_ENABLE REAR_CONTROLLER_GPIO_DEF(C, 4)
68
70#define GPIO_REAR_CONTROLLER_MOTOR_RELAY_SENSE REAR_CONTROLLER_GPIO_DEF(A, 7)
71
73#define GPIO_REAR_CONTROLLER_MOTOR_LV_ENABLE REAR_CONTROLLER_GPIO_DEF(C, 12)
74
75/************************************************************************************************
76 * Fan definitions
77 ************************************************************************************************/
78
80#define GPIO_REAR_CONTROLLER_MOTOR_FAN_PWM_1 REAR_CONTROLLER_GPIO_DEF(B, 2)
81
83#define GPIO_REAR_CONTROLLER_MOTOR_FAN_PWM_2 REAR_CONTROLLER_GPIO_DEF(B, 3)
84
86#define GPIO_REAR_CONTROLLER_MOTOR_FAN_PWR_1 REAR_CONTROLLER_GPIO_DEF(B, 4)
87
89#define GPIO_REAR_CONTROLLER_MOTOR_FAN_SENSE_1 REAR_CONTROLLER_GPIO_DEF(B, 0)
90
92#define GPIO_REAR_CONTROLLER_MOTOR_FAN_SENSE_2 REAR_CONTROLLER_GPIO_DEF(B, 1)
93
94/************************************************************************************************
95 * Current sense definitions
96 ************************************************************************************************/
97
99#define REAR_CONTROLLER_CURRENT_SENSE_I2C_PORT I2C_PORT_3
100
102#define GPIO_REAR_CONTROLLER_CURRENT_SENSE_I2C_SDA_GPIO REAR_CONTROLLER_GPIO_DEF(C, 1)
103
105#define GPIO_REAR_CONTROLLER_CURRENT_SENSE_I2C_SCL_GPIO REAR_CONTROLLER_GPIO_DEF(C, 0)
106
108#define REAR_CONTROLLER_CURRENT_SENSE_ACS37800_I2C_ADDR (96)
109
111#define REAR_CONTOLLER_CURRENT_SENSE_ADC122_I2C_ADDR (64)
112
113/************************************************************************************************
114 * Hydrogen sensor definitions
115 ************************************************************************************************/
116
118#define REAR_CONTROLLER_HYDROGEN_SENSOR_I2C_PORT I2C_PORT_2
119
121#define GPIO_REAR_CONTROLLER_HYDROGEN_SENSOR_I2C_SDA_GPIO REAR_CONTROLLER_GPIO_DEF(B, 11)
122
124#define GPIO_REAR_CONTROLLER_HYDROGEN_SENSOR_I2C_SCL_GPIO REAR_CONTROLLER_GPIO_DEF(B, 10)
125
127#define REAR_CONTROLLER_HYDROGEN_SENSOR_I2C_ADDR (0x36)
128
130#define GPIO_REAR_CONTROLLER_HYDROGEN_SENSOR_STANDBY REAR_CONTROLLER_GPIO_DEF(D, 2)
131
132/************************************************************************************************
133 * AFEs (ADBMS1818) SPI definitions
134 ************************************************************************************************/
135
137#define REAR_CONTROLLER_ADBMS_AFE_SPI_PORT SPI_PORT_2
138
140#define REAR_CONTROLLER_ADBMS_AFE_SPI_BAUDRATE SPI_BAUDRATE_312_5KHZ
141
143#define GPIO_REAR_CONTROLLER_ADBMS_AFE_SPI_SDO_GPIO REAR_CONTROLLER_GPIO_DEF(B, 15)
144
146#define GPIO_REAR_CONTROLLER_ADBMS_AFE_SPI_SDI_GPIO REAR_CONTROLLER_GPIO_DEF(B, 14)
147
149#define GPIO_REAR_CONTROLLER_ADBMS_AFE_SPI_SCK_GPIO REAR_CONTROLLER_GPIO_DEF(B, 13)
150
152#define GPIO_REAR_CONTROLLER_ADBMS_AFE_SPI_CS_GPIO REAR_CONTROLLER_GPIO_DEF(B, 12)
153
154/************************************************************************************************
155 * Power Sense pins
156 ************************************************************************************************/
157
159#define GPIO_REAR_CONTROLLER_PCS_VALID1 REAR_CONTROLLER_GPIO_DEF(C, 6)
160
162#define GPIO_REAR_CONTROLLER_PCS_VALID2 REAR_CONTROLLER_GPIO_DEF(C, 7)
163
165#define GPIO_REAR_CONTROLLER_AUX_VALID1 REAR_CONTROLLER_GPIO_DEF(C, 8)
166
168#define GPIO_REAR_CONTROLLER_AUX_VALID2 REAR_CONTROLLER_GPIO_DEF(C, 9)
169
171#define GPIO_REAR_CONTROLLER_PCS_VSENSE REAR_CONTROLLER_GPIO_DEF(A, 2)
172
174#define GPIO_REAR_CONTROLLER_AUX_VSENSE REAR_CONTROLLER_GPIO_DEF(A, 1)
175
177#define GPIO_REAR_CONTROLLER_PCS_ISENSE REAR_CONTROLLER_GPIO_DEF(C, 3)
178
180#define GPIO_REAR_CONTROLLER_AUX_ISENSE REAR_CONTROLLER_GPIO_DEF(C, 2)
181
182/************************************************************************************************
183 * Critical Sense pins
184 ************************************************************************************************/
185
187#define GPIO_REAR_CONTROLLER_PRECHARGE_MONITOR_GPIO REAR_CONTROLLER_GPIO_DEF(A, 0)
188
190#define GPIO_REAR_CONTROLLER_KILLSWITCH_MONITOR REAR_CONTROLLER_GPIO_DEF(C, 5)
191
192/************************************************************************************************
193 * Board LED definition
194 ************************************************************************************************/
195
197#define GPIO_REAR_CONTROLLER_BOARD_LED REAR_CONTROLLER_GPIO_DEF(A, 10)
198