HF-TMC51x0 Driver (TMC5130 & TMC5160) 0.1.0-dev
Hardware Agnostic C++ Driver for the TMC51x0 (TMC5130 & TMC5160)
Loading...
Searching...
No Matches
tmc51x0::TMC51x0PinConfig Struct Reference

TMC51x0 GPIO pin configuration structure. More...

#include <tmc51x0_comm_interface.hpp>

Public Member Functions

 TMC51x0PinConfig ()=default
 Default constructor - all pins unmapped (-1)
 
 TMC51x0PinConfig (int en, int dir=-1, int step=-1) noexcept
 Constructor with basic pins.
 

Public Attributes

int en_pin {-1}
 EN pin (DRV_ENN, pin 28) - Required.
 
int dir_pin
 DIR pin (REFR_DIR, pin 18) - Optional, same as ref_right_pin.
 
int step_pin
 STEP pin (REFL_STEP, pin 17) - Optional, same as ref_left_pin.
 
int ref_left_pin
 Left reference switch (REFL_STEP, pin 17) - Same as step_pin.
 
int ref_right_pin
 Right reference switch (REFR_DIR, pin 18) - Same as dir_pin.
 
int diag0_pin {-1}
 DIAG0 pin (DIAG0_SWN, pin 26) - Optional.
 
int diag1_pin {-1}
 DIAG1 pin (DIAG1_SWP, pin 27) - Optional.
 
int enc_a_pin {-1}
 Encoder A (ENCA_DCIN_CFG5, pin 24) - Same as dc_in_pin.
 
int enc_b_pin {-1}
 Encoder B (ENCB_DCEN_CFG4, pin 23) - Same as dc_en_pin.
 
int enc_n_pin {-1}
 Encoder N (ENCN_DCO_CFG6, pin 25) - Same as dc_out_pin.
 
int dc_in_pin {-1}
 
int dc_en_pin {-1}
 
int dc_out_pin
 DC Step ready output (ENCN_DCO_CFG6, pin 25) - Same as enc_n_pin.
 
int clk_pin {-1}
 Clock input (CLK, pin 12) - Optional.
 
int spi_mode_pin {-1}
 
int sd_mode_pin {-1}
 hardwired. HIGH=External step/dir, LOW=Internal ramp
 

Detailed Description

TMC51x0 GPIO pin configuration structure.

This structure allows configuring all TMC51x0 control pins in a single place. Compound pins (pins that share the same physical GPIO) are automatically handled - you only need to specify the GPIO once, and both logical pins will be mapped to it.

Compound pin relationships (same physical pin):

  • Pin 17: REFL_STEP (SD_MODE=0) or STEP (SD_MODE=1) - specify via step_pin or ref_left_pin
  • Pin 18: REFR_DIR (SD_MODE=0) or DIR (SD_MODE=1) - specify via dir_pin or ref_right_pin
  • Pin 23: ENCB (SD_MODE=0) or DCEN (SD_MODE=1) - specify via enc_b_pin or dc_en_pin
  • Pin 24: ENCA (SD_MODE=0) or DCIN (SD_MODE=1) - specify via enc_a_pin or dc_in_pin
  • Pin 25: ENCN (SD_MODE=0) or DCO (SD_MODE=1) - specify via enc_n_pin or dc_out_pin
Note
Use -1 (or GPIO_NUM_NC equivalent) for pins that are not connected.
The ApplyPinConfig() method automatically handles compound pin mapping.

Constructor & Destructor Documentation

◆ TMC51x0PinConfig() [1/2]

tmc51x0::TMC51x0PinConfig::TMC51x0PinConfig ( )
default

Default constructor - all pins unmapped (-1)

◆ TMC51x0PinConfig() [2/2]

tmc51x0::TMC51x0PinConfig::TMC51x0PinConfig ( int en,
int dir = -1,
int step = -1 )
inlinenoexcept

Constructor with basic pins.

Parameters
enEN pin (required)
dirDIR pin (optional, -1 if not used)
stepSTEP pin (optional, -1 if not used)

Member Data Documentation

◆ clk_pin

int tmc51x0::TMC51x0PinConfig::clk_pin {-1}

Clock input (CLK, pin 12) - Optional.

◆ dc_en_pin

int tmc51x0::TMC51x0PinConfig::dc_en_pin {-1}

DC Step enable input (ENCB_DCEN_CFG4, pin 23) - Same as enc_b_pin

◆ dc_in_pin

int tmc51x0::TMC51x0PinConfig::dc_in_pin {-1}

DC Step gating input (ENCA_DCIN_CFG5, pin 24) - Same as enc_a_pin

◆ dc_out_pin

int tmc51x0::TMC51x0PinConfig::dc_out_pin
Initial value:
{
-1}

DC Step ready output (ENCN_DCO_CFG6, pin 25) - Same as enc_n_pin.

◆ diag0_pin

int tmc51x0::TMC51x0PinConfig::diag0_pin {-1}

DIAG0 pin (DIAG0_SWN, pin 26) - Optional.

◆ diag1_pin

int tmc51x0::TMC51x0PinConfig::diag1_pin {-1}

DIAG1 pin (DIAG1_SWP, pin 27) - Optional.

◆ dir_pin

int tmc51x0::TMC51x0PinConfig::dir_pin
Initial value:
{
-1}

DIR pin (REFR_DIR, pin 18) - Optional, same as ref_right_pin.

◆ en_pin

int tmc51x0::TMC51x0PinConfig::en_pin {-1}

EN pin (DRV_ENN, pin 28) - Required.

◆ enc_a_pin

int tmc51x0::TMC51x0PinConfig::enc_a_pin {-1}

Encoder A (ENCA_DCIN_CFG5, pin 24) - Same as dc_in_pin.

◆ enc_b_pin

int tmc51x0::TMC51x0PinConfig::enc_b_pin {-1}

Encoder B (ENCB_DCEN_CFG4, pin 23) - Same as dc_en_pin.

◆ enc_n_pin

int tmc51x0::TMC51x0PinConfig::enc_n_pin {-1}

Encoder N (ENCN_DCO_CFG6, pin 25) - Same as dc_out_pin.

◆ ref_left_pin

int tmc51x0::TMC51x0PinConfig::ref_left_pin
Initial value:
{
-1}

Left reference switch (REFL_STEP, pin 17) - Same as step_pin.

◆ ref_right_pin

int tmc51x0::TMC51x0PinConfig::ref_right_pin
Initial value:
{
-1}

Right reference switch (REFR_DIR, pin 18) - Same as dir_pin.

◆ sd_mode_pin

int tmc51x0::TMC51x0PinConfig::sd_mode_pin {-1}

hardwired. HIGH=External step/dir, LOW=Internal ramp

SD_MODE pin (pin 21) - Optional, typically

◆ spi_mode_pin

int tmc51x0::TMC51x0PinConfig::spi_mode_pin {-1}

SPI_MODE pin (pin 22) - Optional, typically hardwired. HIGH=SPI, LOW=UART

◆ step_pin

int tmc51x0::TMC51x0PinConfig::step_pin
Initial value:
{
-1}

STEP pin (REFL_STEP, pin 17) - Optional, same as ref_left_pin.


The documentation for this struct was generated from the following file: