HF-TMC9660 Driver 0.1.0-dev
Hardware Agnostic C++ Driver for the TMC9660
Loading...
Searching...
No Matches
bootloader_config.hpp
Go to the documentation of this file.
1
6#pragma once
7#include <cstdint>
8
9namespace tmc9660 {
10
20namespace bootcfg {
21
37enum class LDOVoltage : uint8_t {
38 Disabled = 0,
39 V2_5 = 1,
40 V3_3 = 2,
41 V5_0 = 3,
42};
43
50enum class LDOSlope : uint8_t {
51 Slope3ms = 0,
52 Slope1_5ms = 1,
53 Slope0_75ms = 2,
54 Slope0_37ms = 3,
55};
56
63enum class BootMode : uint8_t {
64 Register = 1,
65 Parameter = 2,
66};
67
73enum class UartRxPin : uint8_t {
74 GPIO7 = 0,
75 GPIO1 = 1
76};
77
83enum class UartTxPin : uint8_t {
84 GPIO6 = 0,
85 GPIO0 = 1
86};
87
94enum class BaudRate : uint8_t {
95 BR9600 = 0,
96 BR19200,
97 BR38400,
98 BR57600,
99 BR115200,
100 BR1000000,
101 Auto8x,
102 Auto16x,
103};
104
111enum class RS485TxEnPin : uint8_t {
112 None = 0,
113 GPIO8 = 1,
114 GPIO2 = 2
115};
116
132enum class SPIInterface : uint8_t {
133 SPI0 = 0,
134 SPI1 = 1
135};
136
143enum class SPI0SckPin : uint8_t {
144 GPIO6 = 0,
145 GPIO11 = 1
146};
147
154enum class SPIFlashFreq : uint8_t {
155 Div1 = 0,
156 Div2 = 1,
157 Div4 = 3
158};
159
166enum class I2CSdaPin : uint8_t {
167 GPIO5 = 0,
168 GPIO11 = 1,
169 GPIO14 = 2
170};
171
178enum class I2CSclPin : uint8_t {
179 GPIO4 = 0,
180 GPIO12 = 1,
181 GPIO13 = 2
182};
183
190enum class I2CFreq : uint8_t {
191 Freq100k = 0,
192 Freq200k,
193 Freq400k,
194 Freq800k
195};
196
203enum class ClockSource : uint8_t {
204 Internal = 0,
205 External = 1
206};
207
214enum class ExtSourceType : uint8_t {
215 Oscillator = 0,
216 Clock = 1
217};
218
225enum class XtalDrive : uint8_t {
226 Freq8MHz = 1,
227 Freq16MHz = 3,
228 Freq24MHz = 5,
229 Freq32MHz = 6,
230};
231
238enum class SysClkSource : uint8_t {
239 IntOsc = 0,
240 PLL = 1
241};
242
249enum class SysClkDiv : uint8_t {
250 Div1 = 0,
251 Div15MHz = 3
252};
253
260enum class HallUPin : uint8_t {
261 GPIO2 = 0,
262 GPIO7 = 1,
263 GPIO9 = 2
264};
265
272enum class HallVPin : uint8_t {
273 GPIO3 = 0,
274 GPIO15 = 1
275};
276
283enum class HallWPin : uint8_t {
284 GPIO4 = 0,
285 GPIO8 = 1,
286 GPIO10 = 2
287};
288
295enum class ABN1APin : uint8_t {
296 GPIO5 = 0,
297 GPIO8 = 1,
298 GPIO17 = 2
299};
300
307enum class ABN1BPin : uint8_t {
308 GPIO1 = 0,
309 GPIO13 = 1,
310 GPIO18 = 2
311};
312
319enum class ABN1NPin : uint8_t {
320 Disabled = 0,
321 GPIO14 = 1,
322 GPIO16 = 2
323};
324
331enum class ABN2APin : uint8_t {
332 GPIO6 = 0,
333 GPIO15 = 1
334};
335
342enum class ABN2BPin : uint8_t {
343 GPIO7 = 0,
344 GPIO11 = 1,
345 GPIO16 = 2
346};
347
354enum class RefLPin : uint8_t {
355 Disabled = 0,
356 GPIO2 = 1,
357 GPIO12 = 2,
358 GPIO16 = 3
359};
360
367enum class RefRPin : uint8_t {
368 Disabled = 0,
369 GPIO3 = 1,
370 GPIO18 = 2
371};
372
379enum class RefHPin : uint8_t {
380 Disabled = 0,
381 GPIO4 = 1,
382 GPIO7 = 2,
383 GPIO15 = 3,
384 GPIO17 = 4
385};
386
393enum class StepPin : uint8_t {
394 GPIO7 = 0,
395 GPIO11 = 1,
396 GPIO16 = 2
397};
398
405enum class DirPin : uint8_t {
406 GPIO6 = 0,
407 GPIO15 = 1
408};
409
416enum class SPIEncBlock : uint8_t {
417 SPI0 = 0,
418 SPI1 = 1
419};
420
427enum class SPIEncMode : uint8_t {
428 Mode0 = 0,
429 Mode1 = 1,
430 Mode2 = 2,
431 Mode3 = 3
432};
433
440enum class SPIEncFreq : uint8_t {
441 Div4 = 0,
442 Div5 = 1,
443 Div6 = 2,
444 Div7 = 3,
445 Div8 = 4,
446 Div9 = 5,
447 Div10 = 6,
448 Div11 = 7,
449 Div12 = 8,
450 Div13 = 9,
451 Div14 = 10,
452 Div15 = 11,
453 Div16 = 12,
454 Div17 = 13,
455 Div18 = 14,
456 Div19 = 15
457};
458
465enum class SPIEncCSPin : uint8_t {
466 // SPI0 options
467 GPIO8 = 0,
468 GPIO12 = 1,
469 GPIO13 = 2,
470 GPIO16 = 3,
471 // SPI1 options (same enum values, context determines which)
472 GPIO15_SPI1 = 0
473};
474
481enum class SPIEncCSPol : uint8_t {
482 ActiveHigh = 0,
483 ActiveLow = 1
484};
485
492enum class MechBrakeOutput : uint8_t {
493 GPIO8 = 0,
494 GPIO10 = 1,
495 GPIO18 = 2,
496 Y2_LS = 3
497};
498
505enum class BrakeChopperOutput : uint8_t {
506 GPIO0 = 0,
507 GPIO1 = 1,
508 GPIO2 = 2,
509 GPIO3 = 3,
510 GPIO4 = 4,
511 GPIO5 = 5,
512 GPIO6 = 6,
513 GPIO7 = 7,
514 GPIO8 = 8,
515 GPIO9 = 9,
516 GPIO10 = 10,
517 GPIO11 = 11,
518 GPIO12 = 12,
519 GPIO13 = 13,
520 GPIO14 = 14,
521 GPIO15 = 15,
522 GPIO16 = 16,
523 GPIO17 = 17,
524 GPIO18 = 18,
525 Y2_HS = 19
526};
527
534enum class MemStorage : uint8_t {
535 Disabled = 0,
536 SPIFlash = 1,
537 I2CEEPROM = 2
538};
539
540} // namespace bootcfg
541
549namespace bootaddr {
556constexpr uint32_t BASE = 0x00020000;
557
564constexpr uint32_t LDO_CONFIG = BASE + 0x00;
565
572constexpr uint32_t UART_ADDR = BASE + 0x02;
573
580constexpr uint32_t RS485_DELAY = BASE + 0x04;
581
588constexpr uint32_t COMM_CONFIG = BASE + 0x06;
589
598constexpr uint32_t BOOT_CONFIG = BASE + 0x08;
599
606constexpr uint32_t SPI_FLASH = BASE + 0x0A;
607
614constexpr uint32_t I2C_CONFIG = BASE + 0x0C;
615
622constexpr uint32_t GPIO_OUT = BASE + 0x0E;
623
630constexpr uint32_t GPIO_DIR = BASE + 0x10;
631
638constexpr uint32_t GPIO_PU = BASE + 0x12;
639
646constexpr uint32_t GPIO_PD = BASE + 0x14;
647
654constexpr uint32_t GPIO_EXT = BASE + 0x16;
655
662constexpr uint32_t CLOCK_CONFIG = BASE + 0x18;
663
670constexpr uint32_t HALL_CONFIG = BASE + 0x20;
671
678constexpr uint32_t ABN1_CONFIG = BASE + 0x20;
679
686constexpr uint32_t ABN2_CONFIG = BASE + 0x22;
687
694constexpr uint32_t REF_CONFIG = BASE + 0x22;
695
702constexpr uint32_t STEPDIR_CONFIG = BASE + 0x22;
703
710constexpr uint32_t SPI_ENC_CONFIG = BASE + 0x26;
711
718constexpr uint32_t MECH_BRAKE_CONFIG = BASE + 0x24;
719
726constexpr uint32_t BRAKECHOPPER_CONFIG = BASE + 0x24;
727
734constexpr uint32_t MEM_STORAGE_CONFIG = BASE + 0x28;
735} // namespace bootaddr
736
751
767
782
796
808
822
836
855
863 uint16_t outputMask_0_15{0};
864 uint8_t outputMask_16_18{0};
865 uint16_t directionMask_0_15{0};
867 uint16_t pullUpMask_0_15{0};
868 uint8_t pullUpMask_16_18{0};
869 uint16_t pullDownMask_0_15{0};
871 uint8_t analogMask_2_5{0};
872};
873
886
899
912
925
938
954
966
978
990
1018
1019} // namespace tmc9660
constexpr uint32_t MEM_STORAGE_CONFIG
External memory storage selection register.
Definition bootloader_config.hpp:734
constexpr uint32_t BASE
Base offset of the configuration registers inside bank 5.
Definition bootloader_config.hpp:556
constexpr uint32_t UART_ADDR
UART device/host address register.
Definition bootloader_config.hpp:572
constexpr uint32_t MECH_BRAKE_CONFIG
Mechanical brake configuration register.
Definition bootloader_config.hpp:718
constexpr uint32_t GPIO_DIR
GPIO direction register.
Definition bootloader_config.hpp:630
constexpr uint32_t BRAKECHOPPER_CONFIG
Brake chopper configuration register.
Definition bootloader_config.hpp:726
constexpr uint32_t STEPDIR_CONFIG
Step/Direction interface configuration register.
Definition bootloader_config.hpp:702
constexpr uint32_t SPI_FLASH
SPI flash configuration register.
Definition bootloader_config.hpp:606
constexpr uint32_t HALL_CONFIG
Hall encoder configuration register.
Definition bootloader_config.hpp:670
constexpr uint32_t CLOCK_CONFIG
Clock configuration register.
Definition bootloader_config.hpp:662
constexpr uint32_t BOOT_CONFIG
Boot configuration register.
Definition bootloader_config.hpp:598
constexpr uint32_t REF_CONFIG
Reference switches configuration register.
Definition bootloader_config.hpp:694
constexpr uint32_t GPIO_PU
GPIO pull-up enable register.
Definition bootloader_config.hpp:638
constexpr uint32_t ABN2_CONFIG
ABN encoder 2 configuration register.
Definition bootloader_config.hpp:686
constexpr uint32_t GPIO_EXT
GPIO extended configuration register.
Definition bootloader_config.hpp:654
constexpr uint32_t I2C_CONFIG
I2C EEPROM configuration register.
Definition bootloader_config.hpp:614
constexpr uint32_t COMM_CONFIG
Communication interface selection register.
Definition bootloader_config.hpp:588
constexpr uint32_t SPI_ENC_CONFIG
SPI encoder configuration register.
Definition bootloader_config.hpp:710
constexpr uint32_t RS485_DELAY
RS485 TXEN delay configuration register.
Definition bootloader_config.hpp:580
constexpr uint32_t GPIO_PD
GPIO pull-down enable register.
Definition bootloader_config.hpp:646
constexpr uint32_t LDO_CONFIG
LDO configuration register address.
Definition bootloader_config.hpp:564
constexpr uint32_t ABN1_CONFIG
ABN encoder 1 configuration register.
Definition bootloader_config.hpp:678
constexpr uint32_t GPIO_OUT
GPIO output level register.
Definition bootloader_config.hpp:622
HallVPin
Hall encoder V-phase pin selection for BLDC motor feedback.
Definition bootloader_config.hpp:272
@ GPIO15
Use GPIO15 for Hall V-phase.
@ GPIO3
Use GPIO3 for Hall V-phase (default)
HallUPin
Hall encoder U-phase pin selection for BLDC motor feedback.
Definition bootloader_config.hpp:260
@ GPIO9
Use GPIO9 for Hall U-phase.
@ GPIO2
Use GPIO2 for Hall U-phase (default)
SysClkSource
System clock source selection after initial oscillator.
Definition bootloader_config.hpp:238
@ IntOsc
Use internal oscillator directly (lower power, fixed frequency)
@ PLL
Use PLL for frequency multiplication (higher performance, configurable)
SPIFlashFreq
SPI flash frequency divider configuration.
Definition bootloader_config.hpp:154
@ Div1
No division (fastest, may be unreliable)
@ Div4
Divide by 4 (slowest, most reliable)
@ Div2
Divide by 2 (medium speed)
I2CSclPin
I2C clock pin selection for external EEPROM communication.
Definition bootloader_config.hpp:178
@ GPIO4
Use GPIO4 for I2C SCL (default)
@ GPIO12
Use GPIO12 for I2C SCL.
@ GPIO13
Use GPIO13 for I2C SCL.
I2CFreq
I2C communication frequency configuration.
Definition bootloader_config.hpp:190
@ Freq800k
800 kHz (high speed mode, fastest)
@ Freq100k
100 kHz (standard mode, most compatible)
@ Freq400k
400 kHz (fast mode plus)
@ Freq200k
200 kHz (fast mode)
ClockSource
System clock source selection.
Definition bootloader_config.hpp:203
@ Internal
Use internal oscillator (default, no external components needed)
@ External
Use external clock source (requires external crystal/oscillator)
SPIEncBlock
SPI encoder interface block selection.
Definition bootloader_config.hpp:416
@ SPI0
Use SPI interface 0 for encoder communication.
RefLPin
Reference switch left pin selection for limit switch detection.
Definition bootloader_config.hpp:354
@ Disabled
No left reference switch (disabled)
LDOSlope
LDO output slope control for power-up characteristics.
Definition bootloader_config.hpp:50
@ Slope0_37ms
0.37ms rise time (fastest, highest inrush current)
@ Slope1_5ms
1.5ms rise time
@ Slope3ms
3ms rise time (slowest, lowest inrush current)
@ Slope0_75ms
0.75ms rise time
HallWPin
Hall encoder W-phase pin selection for BLDC motor feedback.
Definition bootloader_config.hpp:283
@ GPIO4
Use GPIO4 for Hall W-phase (default)
@ GPIO10
Use GPIO10 for Hall W-phase.
SPIEncMode
SPI encoder communication mode configuration.
Definition bootloader_config.hpp:427
@ Mode2
SPI Mode 2 (CPOL=1, CPHA=0)
@ Mode0
SPI Mode 0 (CPOL=0, CPHA=0)
@ Mode1
SPI Mode 1 (CPOL=0, CPHA=1)
@ Mode3
SPI Mode 3 (CPOL=1, CPHA=1)
StepPin
Step pin selection for step/direction interface.
Definition bootloader_config.hpp:393
@ GPIO7
Use GPIO7 for step signal (default)
ABN1APin
ABN encoder 1 A-phase pin selection for incremental encoder feedback.
Definition bootloader_config.hpp:295
@ GPIO5
Use GPIO5 for ABN1 A-phase (default)
@ GPIO17
Use GPIO17 for ABN1 A-phase.
SPIEncCSPin
SPI encoder chip select pin selection.
Definition bootloader_config.hpp:465
@ GPIO8
Use GPIO8 for SPI0 encoder CS.
@ GPIO15_SPI1
Use GPIO15 for SPI1 encoder CS.
LDOVoltage
Enumerations describing bootloader configuration options.
Definition bootloader_config.hpp:37
@ V5_0
5.0V output voltage
@ Disabled
LDO output disabled.
@ V2_5
2.5V output voltage
@ V3_3
3.3V output voltage
BootMode
Boot mode selection for motor control system startup.
Definition bootloader_config.hpp:63
@ Register
Register mode - direct register access for motor control.
@ Parameter
Parameter mode - TMCL command-based motor control (recommended)
UartRxPin
UART receive pin selection for bootloader communication.
Definition bootloader_config.hpp:73
@ GPIO1
Use GPIO1 for UART RX (alternative)
@ GPIO7
Use GPIO7 for UART RX (default)
RefHPin
Reference switch home pin selection for home position detection.
Definition bootloader_config.hpp:379
@ Disabled
No home reference switch (disabled)
SPI0SckPin
SPI0 clock pin selection for bootloader communication.
Definition bootloader_config.hpp:143
@ GPIO11
Use GPIO11 for SPI0 SCK (alternative)
@ GPIO6
Use GPIO6 for SPI0 SCK (default)
SPIEncFreq
SPI encoder clock frequency divider configuration.
Definition bootloader_config.hpp:440
@ Div4
Divide by 4 (fastest)
@ Div19
Divide by 19 (slowest, most reliable)
SPIEncCSPol
SPI encoder chip select polarity configuration.
Definition bootloader_config.hpp:481
@ ActiveLow
Chip select active low (CS low = selected, most common)
@ ActiveHigh
Chip select active high (CS high = selected)
UartTxPin
UART transmit pin selection for bootloader communication.
Definition bootloader_config.hpp:83
@ GPIO6
Use GPIO6 for UART TX (default)
@ GPIO0
Use GPIO0 for UART TX (alternative)
SysClkDiv
System clock divider configuration.
Definition bootloader_config.hpp:249
@ Div1
No division (40 MHz system clock)
@ Div15MHz
Divide by 3 (15 MHz system clock, lower power)
ExtSourceType
External clock source type configuration.
Definition bootloader_config.hpp:214
@ Oscillator
External crystal oscillator (requires external crystal)
@ Clock
External clock signal (digital clock input)
ABN2APin
ABN encoder 2 A-phase pin selection for second incremental encoder.
Definition bootloader_config.hpp:331
@ GPIO6
Use GPIO6 for ABN2 A-phase (default)
XtalDrive
Crystal drive strength configuration for external oscillators.
Definition bootloader_config.hpp:225
@ Freq8MHz
8 MHz crystal drive strength
@ Freq32MHz
32 MHz crystal drive strength (highest frequency)
@ Freq24MHz
24 MHz crystal drive strength
@ Freq16MHz
16 MHz crystal drive strength (recommended)
BaudRate
UART baud rate configuration for bootloader communication.
Definition bootloader_config.hpp:94
@ BR1000000
1000000 baud (1 Mbps, fastest)
@ BR115200
115200 baud (recommended for most applications)
@ Auto8x
Auto-detect with 8x oversampling.
@ Auto16x
Auto-detect with 16x oversampling (most robust)
@ BR9600
9600 baud (slowest, most reliable)
MechBrakeOutput
Mechanical brake output pin selection.
Definition bootloader_config.hpp:492
@ Y2_LS
Use Y2_LS (low-side output) for mechanical brake control.
@ GPIO8
Use GPIO8 for mechanical brake control.
RefRPin
Reference switch right pin selection for limit switch detection.
Definition bootloader_config.hpp:367
@ Disabled
No right reference switch (disabled)
ABN1BPin
ABN encoder 1 B-phase pin selection for incremental encoder feedback.
Definition bootloader_config.hpp:307
@ GPIO1
Use GPIO1 for ABN1 B-phase (default)
@ GPIO18
Use GPIO18 for ABN1 B-phase.
I2CSdaPin
I2C data pin selection for external EEPROM communication.
Definition bootloader_config.hpp:166
@ GPIO5
Use GPIO5 for I2C SDA (default)
@ GPIO14
Use GPIO14 for I2C SDA.
RS485TxEnPin
RS485 transmit enable pin selection for half-duplex communication.
Definition bootloader_config.hpp:111
@ None
No RS485 TX enable pin (RS485 disabled)
@ GPIO8
Use GPIO8 for RS485 TX enable.
@ GPIO2
Use GPIO2 for RS485 TX enable.
DirPin
Direction pin selection for step/direction interface.
Definition bootloader_config.hpp:405
@ GPIO6
Use GPIO6 for direction signal (default)
SPIInterface
SPI interface selection for bootloader and flash communication.
Definition bootloader_config.hpp:132
@ SPI1
Physical SPI1 interface.
@ SPI0
Physical SPI0 interface.
MemStorage
External memory storage type selection.
Definition bootloader_config.hpp:534
@ SPIFlash
Use SPI flash memory for storage.
@ I2CEEPROM
Use I2C EEPROM for storage.
@ Disabled
No external memory (disabled)
ABN2BPin
ABN encoder 2 B-phase pin selection for second incremental encoder.
Definition bootloader_config.hpp:342
@ GPIO7
Use GPIO7 for ABN2 B-phase (default)
ABN1NPin
ABN encoder 1 index pin selection for incremental encoder feedback.
Definition bootloader_config.hpp:319
@ Disabled
No index pin (index signal not used)
@ GPIO16
Use GPIO16 for ABN1 index signal.
BrakeChopperOutput
Brake chopper output pin selection for dynamic braking.
Definition bootloader_config.hpp:505
@ Y2_HS
Use Y2_HS (high-side output) for brake chopper output.
@ GPIO0
Use GPIO0 for brake chopper output.
Definition bootloader_config.hpp:9
ABN encoder 1 configuration for incremental encoder feedback.
Definition bootloader_config.hpp:893
bootcfg::ABN1BPin b_pin
Definition bootloader_config.hpp:896
bootcfg::ABN1NPin n_pin
Definition bootloader_config.hpp:897
bool enable
Definition bootloader_config.hpp:894
bootcfg::ABN1APin a_pin
Definition bootloader_config.hpp:895
ABN encoder 2 configuration for second incremental encoder.
Definition bootloader_config.hpp:907
bool enable
Definition bootloader_config.hpp:908
bootcfg::ABN2APin a_pin
Definition bootloader_config.hpp:909
bootcfg::ABN2BPin b_pin
Definition bootloader_config.hpp:910
Bootloader behavior configuration structure.
Definition bootloader_config.hpp:758
bool start_motor_control
Start motor control after configuration (CRITICAL!)
Definition bootloader_config.hpp:765
bootcfg::BootMode boot_mode
Target boot mode (Register or Parameter)
Definition bootloader_config.hpp:759
bool bl_config_fault
Enable bootloader configuration fault detection.
Definition bootloader_config.hpp:764
bool bl_ready_fault
Enable bootloader ready fault detection.
Definition bootloader_config.hpp:761
bool disable_selftest
Disable power-on self-test.
Definition bootloader_config.hpp:763
bool bl_exit_fault
Enable bootloader exit fault detection.
Definition bootloader_config.hpp:762
Complete bootloader configuration structure.
Definition bootloader_config.hpp:998
ClockConfig clock
Definition bootloader_config.hpp:1006
MemStorageConfig memStorage
Definition bootloader_config.hpp:1016
HallConfig hall
Definition bootloader_config.hpp:1008
ABN1Config abn1
Definition bootloader_config.hpp:1009
BrakeChopperConfig brakeChopper
Definition bootloader_config.hpp:1015
ABN2Config abn2
Definition bootloader_config.hpp:1010
SPIFlashConfig spiFlash
Definition bootloader_config.hpp:1004
SPIBootConfig spiComm
Definition bootloader_config.hpp:1003
RefConfig ref
Definition bootloader_config.hpp:1011
UARTConfig uart
Definition bootloader_config.hpp:1001
BootConfig boot
Definition bootloader_config.hpp:1000
LDOConfig ldo
Definition bootloader_config.hpp:999
GPIOConfig gpio
Definition bootloader_config.hpp:1007
SPIEncConfig spiEnc
Definition bootloader_config.hpp:1013
I2CConfig i2c
Definition bootloader_config.hpp:1005
RS485Config rs485
Definition bootloader_config.hpp:1002
MechBrakeConfig mechBrake
Definition bootloader_config.hpp:1014
StepDirConfig stepDir
Definition bootloader_config.hpp:1012
Brake chopper configuration for dynamic braking.
Definition bootloader_config.hpp:974
bool enable
Definition bootloader_config.hpp:975
bootcfg::BrakeChopperOutput output_pin
Definition bootloader_config.hpp:976
System clock configuration structure.
Definition bootloader_config.hpp:843
bootcfg::SysClkDiv sysclk_div
System clock divider.
Definition bootloader_config.hpp:853
uint8_t rdiv
PLL reference divider.
Definition bootloader_config.hpp:852
bootcfg::ExtSourceType ext_source_type
External source type (crystal/clock)
Definition bootloader_config.hpp:846
bool xtal_boost
Enable crystal boost mode.
Definition bootloader_config.hpp:849
bootcfg::XtalDrive xtal_drive
Crystal drive strength.
Definition bootloader_config.hpp:848
bootcfg::SysClkSource pll_selection
System clock source (oscillator/PLL)
Definition bootloader_config.hpp:850
bootcfg::ClockSource use_external
Use external or internal clock source.
Definition bootloader_config.hpp:844
GPIO configuration structure for bootloader operation.
Definition bootloader_config.hpp:862
uint8_t directionMask_16_18
GPIO direction (output enable) for GPIOs 16-18 (3-bit mask)
Definition bootloader_config.hpp:866
uint16_t pullDownMask_0_15
GPIO pull-down enable for GPIOs 0-15 (16-bit mask)
Definition bootloader_config.hpp:869
uint16_t outputMask_0_15
GPIO output levels for GPIOs 0-15 (16-bit mask)
Definition bootloader_config.hpp:863
uint8_t pullUpMask_16_18
GPIO pull-up enable for GPIOs 16-18 (3-bit mask)
Definition bootloader_config.hpp:868
uint16_t directionMask_0_15
GPIO direction (output enable) for GPIOs 0-15 (16-bit mask)
Definition bootloader_config.hpp:865
uint16_t pullUpMask_0_15
GPIO pull-up enable for GPIOs 0-15 (16-bit mask)
Definition bootloader_config.hpp:867
uint8_t analogMask_2_5
GPIO analog enable for GPIOs 2-5 (4-bit mask)
Definition bootloader_config.hpp:871
uint8_t pullDownMask_16_18
GPIO pull-down enable for GPIOs 16-18 (3-bit mask)
Definition bootloader_config.hpp:870
uint8_t outputMask_16_18
GPIO output levels for GPIOs 16-18 (3-bit mask)
Definition bootloader_config.hpp:864
Hall encoder configuration for BLDC motor feedback.
Definition bootloader_config.hpp:880
bootcfg::HallWPin w_pin
Definition bootloader_config.hpp:884
bool enable
Definition bootloader_config.hpp:881
bootcfg::HallVPin v_pin
Definition bootloader_config.hpp:883
bootcfg::HallUPin u_pin
Definition bootloader_config.hpp:882
External I2C EEPROM configuration structure.
Definition bootloader_config.hpp:829
bootcfg::I2CFreq freq_code
I2C communication frequency.
Definition bootloader_config.hpp:834
bootcfg::I2CSdaPin sda_pin
I2C data pin selection.
Definition bootloader_config.hpp:831
bootcfg::I2CSclPin scl_pin
I2C clock pin selection.
Definition bootloader_config.hpp:832
bool enable_eeprom
Enable external I2C EEPROM interface.
Definition bootloader_config.hpp:830
uint8_t address_bits
I2C address bit configuration.
Definition bootloader_config.hpp:833
Configuration structure for on-chip LDO regulators.
Definition bootloader_config.hpp:744
bool ldo_short_fault
Enable LDO short-circuit fault detection.
Definition bootloader_config.hpp:749
bootcfg::LDOVoltage vext2
VEXT2 output voltage setting.
Definition bootloader_config.hpp:746
bootcfg::LDOSlope slope_vext1
VEXT1 power-up slope control.
Definition bootloader_config.hpp:747
bootcfg::LDOVoltage vext1
VEXT1 output voltage setting.
Definition bootloader_config.hpp:745
bootcfg::LDOSlope slope_vext2
VEXT2 power-up slope control.
Definition bootloader_config.hpp:748
Mechanical brake configuration for holding motor position.
Definition bootloader_config.hpp:962
bootcfg::MechBrakeOutput output_pin
Definition bootloader_config.hpp:964
bool enable
Definition bootloader_config.hpp:963
External memory storage configuration for TMCL scripts and parameters.
Definition bootloader_config.hpp:986
bootcfg::MemStorage parameters
Definition bootloader_config.hpp:988
bootcfg::MemStorage tmcl_script
Definition bootloader_config.hpp:987
RS485 transceiver configuration structure.
Definition bootloader_config.hpp:789
uint8_t txen_post_delay
Post-transmission delay (microseconds)
Definition bootloader_config.hpp:794
uint8_t txen_pre_delay
Pre-transmission delay (microseconds)
Definition bootloader_config.hpp:793
bootcfg::RS485TxEnPin txen_pin
RS485 transmit enable pin selection.
Definition bootloader_config.hpp:791
bool enable_rs485
Enable RS485 half-duplex mode.
Definition bootloader_config.hpp:790
Reference switches configuration for limit detection and homing.
Definition bootloader_config.hpp:920
bootcfg::RefHPin ref_h_pin
Definition bootloader_config.hpp:923
bootcfg::RefRPin ref_r_pin
Definition bootloader_config.hpp:922
bootcfg::RefLPin ref_l_pin
Definition bootloader_config.hpp:921
SPI interface configuration for bootloader commands.
Definition bootloader_config.hpp:803
bootcfg::SPI0SckPin spi0_sck_pin
SPI0 clock pin selection.
Definition bootloader_config.hpp:806
bool disable_spi
Disable SPI interface.
Definition bootloader_config.hpp:804
bootcfg::SPIInterface boot_spi_iface
SPI interface selection.
Definition bootloader_config.hpp:805
SPI encoder configuration for SPI-based position sensors.
Definition bootloader_config.hpp:946
bootcfg::SPIEncMode spi_mode
Definition bootloader_config.hpp:949
bool enable
Definition bootloader_config.hpp:947
bootcfg::SPIEncBlock spi_block
Definition bootloader_config.hpp:948
bootcfg::SPIEncCSPin cs_pin
Definition bootloader_config.hpp:951
bootcfg::SPIEncFreq spi_freq
Definition bootloader_config.hpp:950
bootcfg::SPIEncCSPol cs_polarity
Definition bootloader_config.hpp:952
External SPI flash memory configuration structure.
Definition bootloader_config.hpp:815
uint8_t cs_pin
Chip select pin for flash.
Definition bootloader_config.hpp:819
bootcfg::SPI0SckPin spi0_sck_pin
SPI0 clock pin for flash.
Definition bootloader_config.hpp:818
bootcfg::SPIFlashFreq freq_div
SPI clock frequency divider.
Definition bootloader_config.hpp:820
bootcfg::SPIInterface flash_spi_iface
SPI interface for flash.
Definition bootloader_config.hpp:817
bool enable_flash
Enable external SPI flash interface.
Definition bootloader_config.hpp:816
Step/Direction interface configuration for stepper motor control.
Definition bootloader_config.hpp:933
bool enable
Definition bootloader_config.hpp:934
bootcfg::DirPin dir_pin
Definition bootloader_config.hpp:936
bootcfg::StepPin step_pin
Definition bootloader_config.hpp:935
UART communication configuration structure.
Definition bootloader_config.hpp:774
uint8_t device_address
Device address for UART communication.
Definition bootloader_config.hpp:775
bootcfg::BaudRate baud_rate
UART baud rate setting.
Definition bootloader_config.hpp:780
uint8_t host_address
Host address for UART communication.
Definition bootloader_config.hpp:776
bool disable_uart
Disable UART interface.
Definition bootloader_config.hpp:777
bootcfg::UartTxPin tx_pin
UART transmit pin selection.
Definition bootloader_config.hpp:779
bootcfg::UartRxPin rx_pin
UART receive pin selection.
Definition bootloader_config.hpp:778