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 REAR_CONTROLLER_GPIO_DEF(B, 2)
81
83#define GPIO_REAR_CONTROLLER_MOTOR_FAN_SENSE_1 REAR_CONTROLLER_GPIO_DEF(B, 0)
84
86#define GPIO_REAR_CONTROLLER_MOTOR_FAN_SENSE_2 REAR_CONTROLLER_GPIO_DEF(B, 1)
87
88/************************************************************************************************
89 * Current sense definitions
90 ************************************************************************************************/
91
93#define REAR_CONTROLLER_CURRENT_SENSE_I2C_PORT I2C_PORT_1
94
96#define GPIO_REAR_CONTROLLER_CURRENT_SENSE_I2C_SDA_GPIO REAR_CONTROLLER_GPIO_DEF(B, 11)
97
99#define GPIO_REAR_CONTROLLER_CURRENT_SENSE_I2C_SCL_GPIO REAR_CONTROLLER_GPIO_DEF(B, 10)
100
102#define REAR_CONTROLLER_CURRENT_SENSE_ACS37800_I2C_ADDR (96)
103
104/************************************************************************************************
105 * AFEs (LTC6811) SPI definitions
106 ************************************************************************************************/
107
109#define REAR_CONTROLLER_ADBMS_AFE_SPI_PORT SPI_PORT_2
110
112#define REAR_CONTROLLER_ADBMS_AFE_SPI_BAUDRATE SPI_BAUDRATE_312_5KHZ
113
115#define GPIO_REAR_CONTROLLER_ADBMS_AFE_SPI_SDO_GPIO REAR_CONTROLLER_GPIO_DEF(B, 15)
116
118#define GPIO_REAR_CONTROLLER_ADBMS_AFE_SPI_SDI_GPIO REAR_CONTROLLER_GPIO_DEF(B, 14)
119
121#define GPIO_REAR_CONTROLLER_ADBMS_AFE_SPI_SCK_GPIO REAR_CONTROLLER_GPIO_DEF(B, 13)
122
124#define GPIO_REAR_CONTROLLER_ADBMS_AFE_SPI_CS_GPIO REAR_CONTROLLER_GPIO_DEF(B, 12)
125
126/************************************************************************************************
127 * Power Sense pins
128 ************************************************************************************************/
129
131#define GPIO_REAR_CONTROLLER_PCS_VALID1 REAR_CONTROLLER_GPIO_DEF(C, 6)
132
134#define GPIO_REAR_CONTROLLER_PCS_VALID2 REAR_CONTROLLER_GPIO_DEF(C, 7)
135
137#define GPIO_REAR_CONTROLLER_AUX_VALID1 REAR_CONTROLLER_GPIO_DEF(C, 8)
138
140#define GPIO_REAR_CONTROLLER_AUX_VALID2 REAR_CONTROLLER_GPIO_DEF(C, 9)
141
143#define GPIO_REAR_CONTROLLER_PCS_VSENSE REAR_CONTROLLER_GPIO_DEF(A, 2)
144
146#define GPIO_REAR_CONTROLLER_AUX_VSENSE REAR_CONTROLLER_GPIO_DEF(A, 1)
147
149#define GPIO_REAR_CONTROLLER_PCS_ISENSE REAR_CONTROLLER_GPIO_DEF(C, 3)
150
152#define GPIO_REAR_CONTROLLER_AUX_ISENSE REAR_CONTROLLER_GPIO_DEF(C, 2)
153
154/************************************************************************************************
155 * Critical Sense pins
156 ************************************************************************************************/
157
159#define GPIO_REAR_CONTROLLER_PRECHARGE_MONITOR_GPIO REAR_CONTROLLER_GPIO_DEF(A, 0)
160
162#define GPIO_REAR_CONTROLLER_KILLSWITCH_MONITOR REAR_CONTROLLER_GPIO_DEF(C, 5)
163
164/************************************************************************************************
165 * Board LED definition
166 ************************************************************************************************/
167
169#define GPIO_REAR_CONTROLLER_BOARD_LED REAR_CONTROLLER_GPIO_DEF(A, 10)
170