HF-Core Platform 0.1.0-dev
Hardware-Agnostic Handler Layer & RTOS Utilities for HardFOC
Loading...
Searching...
No Matches
esp32_test_config.hpp
Go to the documentation of this file.
1
17#pragma once
18
19#include <cstdint>
20
21// ═══════════════════════════════════════════════════════════════════════════
22// I2C BUS CONFIGURATION
23// ═══════════════════════════════════════════════════════════════════════════
24
25#ifndef PIN_I2C_SDA
26#define PIN_I2C_SDA 8
27#endif
28#ifndef PIN_I2C_SCL
29#define PIN_I2C_SCL 9
30#endif
31#ifndef I2C_PORT_NUM
32#define I2C_PORT_NUM 0
33#endif
34#ifndef I2C_CLOCK_HZ
35#define I2C_CLOCK_HZ 400000 // 400 kHz (Fast Mode)
36#endif
37
38// ═══════════════════════════════════════════════════════════════════════════
39// SPI BUS CONFIGURATION
40// ═══════════════════════════════════════════════════════════════════════════
41
42#ifndef PIN_SPI_MOSI
43#define PIN_SPI_MOSI 11
44#endif
45#ifndef PIN_SPI_MISO
46#define PIN_SPI_MISO 13
47#endif
48#ifndef PIN_SPI_SCLK
49#define PIN_SPI_SCLK 12
50#endif
51#ifndef SPI_HOST_ID
52#define SPI_HOST_ID 1 // SPI2_HOST on ESP32-S3
53#endif
54
55// ═══════════════════════════════════════════════════════════════════════════
56// AS5047U ENCODER (SPI)
57// ═══════════════════════════════════════════════════════════════════════════
58
59#ifndef PIN_AS5047U_CS
60#define PIN_AS5047U_CS 10
61#endif
62#ifndef AS5047U_SPI_CLOCK_HZ
63#define AS5047U_SPI_CLOCK_HZ 1000000 // 1 MHz
64#endif
65
66// ═══════════════════════════════════════════════════════════════════════════
67// BNO08x IMU (I2C)
68// ═══════════════════════════════════════════════════════════════════════════
69
70#ifndef BNO08X_I2C_ADDR
71#define BNO08X_I2C_ADDR 0x4A // 0x4A (SA0=LOW) or 0x4B (SA0=HIGH)
72#endif
73#ifndef PIN_BNO08X_INT
74#define PIN_BNO08X_INT 4
75#endif
76#ifndef PIN_BNO08X_RST
77#define PIN_BNO08X_RST 5
78#endif
79
80// ═══════════════════════════════════════════════════════════════════════════
81// PCA9685 PWM CONTROLLER (I2C)
82// ═══════════════════════════════════════════════════════════════════════════
83
84#ifndef PCA9685_I2C_ADDR
85#define PCA9685_I2C_ADDR 0x40 // Default (all address pins LOW)
86#endif
87
88// ═══════════════════════════════════════════════════════════════════════════
89// PCAL95555 GPIO EXPANDER (I2C)
90// ═══════════════════════════════════════════════════════════════════════════
91
92#ifndef PCAL95555_I2C_ADDR
93#define PCAL95555_I2C_ADDR 0x20 // Default (A0=A1=A2=LOW)
94#endif
95#ifndef PIN_PCAL95555_INT
96#define PIN_PCAL95555_INT 6 // Interrupt output (active-low, optional)
97#endif
98
99// ═══════════════════════════════════════════════════════════════════════════
100// NTC THERMISTOR (ADC)
101// ═══════════════════════════════════════════════════════════════════════════
102
103#ifndef NTC_ADC_CHANNEL
104#define NTC_ADC_CHANNEL 0 // ADC1_CH0
105#endif
106#ifndef NTC_ADC_UNIT
107#define NTC_ADC_UNIT 0 // ADC_UNIT_1
108#endif
109
110// ═══════════════════════════════════════════════════════════════════════════
111// TMC9660 MOTOR CONTROLLER (SPI)
112// ═══════════════════════════════════════════════════════════════════════════
113
114#ifndef PIN_TMC9660_CS
115#define PIN_TMC9660_CS 15
116#endif
117#ifndef PIN_TMC9660_RST
118#define PIN_TMC9660_RST 16
119#endif
120#ifndef PIN_TMC9660_DRV_EN
121#define PIN_TMC9660_DRV_EN 17
122#endif
123#ifndef PIN_TMC9660_FAULTN
124#define PIN_TMC9660_FAULTN 18
125#endif
126#ifndef PIN_TMC9660_WAKE
127#define PIN_TMC9660_WAKE 21
128#endif
129#ifndef TMC9660_DEVICE_ADDR
130#define TMC9660_DEVICE_ADDR 1
131#endif
132#ifndef TMC9660_SPI_CLOCK_HZ
133#define TMC9660_SPI_CLOCK_HZ 4000000 // 4 MHz
134#endif
135
136// ═══════════════════════════════════════════════════════════════════════════
137// TMC5160 STEPPER MOTOR DRIVER (SPI)
138// ═══════════════════════════════════════════════════════════════════════════
139
140#ifndef PIN_TMC5160_CS
141#define PIN_TMC5160_CS 37
142#endif
143#ifndef PIN_TMC5160_DRV_ENN
144#define PIN_TMC5160_DRV_ENN 38
145#endif
146#ifndef PIN_TMC5160_DIAG0
147#define PIN_TMC5160_DIAG0 39
148#endif
149#ifndef PIN_TMC5160_DIAG1
150#define PIN_TMC5160_DIAG1 40
151#endif
152#ifndef TMC5160_SPI_CLOCK_HZ
153#define TMC5160_SPI_CLOCK_HZ 4000000 // 4 MHz
154#endif
155
156// ═══════════════════════════════════════════════════════════════════════════
157// TLE92466ED SOLENOID DRIVER (SPI)
158// ═══════════════════════════════════════════════════════════════════════════
159
160#ifndef PIN_TLE92466ED_CS
161#define PIN_TLE92466ED_CS 41
162#endif
163#ifndef PIN_TLE92466ED_RESN
164#define PIN_TLE92466ED_RESN 42
165#endif
166#ifndef PIN_TLE92466ED_EN
167#define PIN_TLE92466ED_EN 2
168#endif
169#ifndef PIN_TLE92466ED_FAULTN
170#define PIN_TLE92466ED_FAULTN 1
171#endif
172#ifndef TLE92466ED_SPI_CLOCK_HZ
173#define TLE92466ED_SPI_CLOCK_HZ 5000000 // 5 MHz
174#endif
175
176// ═══════════════════════════════════════════════════════════════════════════
177// MAX22200 SOLENOID / MOTOR DRIVER (SPI)
178// ═══════════════════════════════════════════════════════════════════════════
179
180#ifndef PIN_MAX22200_CS
181#define PIN_MAX22200_CS 36
182#endif
183#ifndef PIN_MAX22200_ENABLE
184#define PIN_MAX22200_ENABLE 35
185#endif
186#ifndef PIN_MAX22200_CMD
187#define PIN_MAX22200_CMD 45
188#endif
189#ifndef PIN_MAX22200_FAULT
190#define PIN_MAX22200_FAULT 48
191#endif
192#ifndef MAX22200_SPI_CLOCK_HZ
193#define MAX22200_SPI_CLOCK_HZ 5000000 // 5 MHz
194#endif
195
196// ═══════════════════════════════════════════════════════════════════════════
197// WS2812 ADDRESSABLE LED STRIP (RMT)
198// ═══════════════════════════════════════════════════════════════════════════
199
200#ifndef PIN_WS2812_DATA
201#define PIN_WS2812_DATA 48
202#endif
203#ifndef WS2812_NUM_LEDS
204#define WS2812_NUM_LEDS 8
205#endif
206#ifndef WS2812_RMT_CHANNEL
207#define WS2812_RMT_CHANNEL 0
208#endif