TMCStepper
Library supporting Trinamic Stepper Drivers for Arduino platforms
Loading...
Searching...
No Matches
TMC2130Stepper.h
Go to the documentation of this file.
1
7#pragma once
8
9#define INIT2130_REGISTER(REG) TMC2130_n::REG##_t REG##_register{}
10
11class TMC2130Stepper : public TMCStepper {
12 public:
13 TMC2130Stepper(uint16_t pinCS, float RS = default_RS, int8_t link_index = -1);
14 TMC2130Stepper(uint16_t pinCS, uint16_t pinMOSI, uint16_t pinMISO, uint16_t pinSCK, int8_t link_index = -1);
15 TMC2130Stepper(uint16_t pinCS, float RS, uint16_t pinMOSI, uint16_t pinMISO, uint16_t pinSCK, int8_t link_index = -1);
17 void begin();
18 void defaults();
19 void setSPISpeed(uint32_t speed);
20 void switchCSpin(bool state);
21 bool isEnabled();
22 void push();
23
24 // Helper functions
25 void sg_current_decrease(uint8_t value);
26 uint8_t sg_current_decrease();
27
28 // RW: GCONF
29 uint32_t GCONF();
30 void GCONF( uint32_t value);
31 void I_scale_analog( bool B);
32 void internal_Rsense( bool B);
33 void en_pwm_mode( bool B);
34 void enc_commutation( bool B);
35 void shaft( bool B);
36 void diag0_error( bool B);
37 void diag0_otpw( bool B);
38 void diag0_stall( bool B);
39 void diag1_stall( bool B);
40 void diag1_index( bool B);
41 void diag1_onstate( bool B);
42 void diag1_steps_skipped( bool B);
43 void diag0_int_pushpull( bool B);
44 void diag1_pushpull( bool B);
45 void small_hysteresis( bool B);
46 void stop_enable( bool B);
47 void direct_mode( bool B);
48 bool I_scale_analog();
49 bool internal_Rsense();
50 bool en_pwm_mode();
51 bool enc_commutation();
52 bool shaft();
53 bool diag0_error();
54 bool diag0_otpw();
55 bool diag0_stall();
56 bool diag1_stall();
57 bool diag1_index();
58 bool diag1_onstate();
60 bool diag0_int_pushpull();
61 bool diag1_pushpull();
62 bool small_hysteresis();
63 bool stop_enable();
64 bool direct_mode();
65
66 // R: IOIN
67 uint32_t IOIN();
68 bool step();
69 bool dir();
70 bool dcen_cfg4();
71 bool dcin_cfg5();
72 bool drv_enn_cfg6();
73 bool dco();
74 uint8_t version();
75
76 // W: TCOOLTHRS
77 uint32_t TCOOLTHRS();
78 void TCOOLTHRS( uint32_t input);
79
80 // W: THIGH
81 uint32_t THIGH();
82 void THIGH( uint32_t input);
83
84 // RW: XDRIRECT
85 uint32_t XDIRECT();
86 void XDIRECT( uint32_t input);
87 void coil_A( int16_t B);
88 void coil_B( int16_t B);
89 int16_t coil_A();
90 int16_t coil_B();
91
92 // W: VDCMIN
93 uint32_t VDCMIN();
94 void VDCMIN( uint32_t input);
95
96 // RW: CHOPCONF
97 uint32_t CHOPCONF();
98 void CHOPCONF( uint32_t value);
99 void toff( uint8_t B);
100 void hstrt( uint8_t B);
101 void hend( uint8_t B);
102 //void fd( uint8_t B);
103 void disfdcc( bool B);
104 void rndtf( bool B);
105 void chm( bool B);
106 void tbl( uint8_t B);
107 void vsense( bool B);
108 void vhighfs( bool B);
109 void vhighchm( bool B);
110 void sync( uint8_t B);
111 void mres( uint8_t B);
112 void intpol( bool B);
113 void dedge( bool B);
114 void diss2g( bool B);
115 uint8_t toff();
116 uint8_t hstrt();
117 uint8_t hend();
118 //uint8_t fd();
119 bool disfdcc();
120 bool rndtf();
121 bool chm();
122 uint8_t tbl();
123 bool vsense();
124 bool vhighfs();
125 bool vhighchm();
126 uint8_t sync();
127 uint8_t mres();
128 bool intpol();
129 bool dedge();
130 bool diss2g();
131
132 // W: COOLCONF
133 void COOLCONF(uint32_t value);
134 uint32_t COOLCONF();
135 void semin( uint8_t B);
136 void seup( uint8_t B);
137 void semax( uint8_t B);
138 void sedn( uint8_t B);
139 void seimin( bool B);
140 void sgt( int8_t B);
141 void sfilt( bool B);
142 uint8_t semin();
143 uint8_t seup();
144 uint8_t semax();
145 uint8_t sedn();
146 bool seimin();
147 int8_t sgt();
148 bool sfilt();
149
150 // W: DCCTRL
151 void DCCTRL(uint32_t input);
152 void dc_time(uint16_t input);
153 void dc_sg(uint8_t input);
154 uint32_t DCCTRL();
155 uint16_t dc_time();
156 uint8_t dc_sg();
157
158 // R: DRV_STATUS
159 uint32_t DRV_STATUS();
160 uint16_t sg_result();
161 bool fsactive();
162 uint8_t cs_actual();
163 bool stallguard();
164 bool ot();
165 bool otpw();
166 bool s2ga();
167 bool s2gb();
168 bool ola();
169 bool olb();
170 bool stst();
171
172 // W: PWMCONF
173 void PWMCONF( uint32_t value);
174 uint32_t PWMCONF();
175 void pwm_ampl( uint8_t B);
176 void pwm_grad( uint8_t B);
177 void pwm_freq( uint8_t B);
178 void pwm_autoscale( bool B);
179 void pwm_symmetric( bool B);
180 void freewheel( uint8_t B);
181 uint8_t pwm_ampl();
182 uint8_t pwm_grad();
183 uint8_t pwm_freq();
184 bool pwm_autoscale();
185 bool pwm_symmetric();
186 uint8_t freewheel();
187
188 // R: PWM_SCALE
189 uint8_t PWM_SCALE();
190
191 // W: ENCM_CTRL
192 uint8_t ENCM_CTRL();
193 void ENCM_CTRL( uint8_t input);
194 void inv( bool B);
195 void maxspeed( bool B);
196 bool inv();
197 bool maxspeed();
198
199 // R: LOST_STEPS
200 uint32_t LOST_STEPS();
201
202 // Function aliases
203
205
206 protected:
209 uint8_t transfer(const uint8_t data);
210 void transferEmptyBytes(const uint8_t n);
211 void write(uint8_t addressByte, uint32_t config);
212 uint32_t read(uint8_t addressByte);
213
224
225 struct IOINT_t { constexpr static uint8_t address = 0x04; };
226 struct PWM_SCALE_t { constexpr static uint8_t address = 0x71; };
227 struct LOST_STEPS_t { constexpr static uint8_t address = 0x73; };
228 struct DRV_STATUS_t { constexpr static uint8_t address = 0X6F; };
229
230 static uint32_t spi_speed; // Default 2MHz
231 const uint16_t _pinCS;
233 static constexpr float default_RS = 0.11;
234
236 static int8_t chain_length;
237};
bool dcin_cfg5()
Definition IOIN.cpp:20
uint16_t sg_result()
uint8_t freewheel()
Definition PWMCONF.cpp:34
INIT_REGISTER(GCONF)
INIT_REGISTER(COOLCONF)
bool diag0_error()
Definition GCONF.cpp:47
uint8_t sedn()
Definition COOLCONF.cpp:33
bool dcen_cfg4()
Definition IOIN.cpp:19
void write(uint8_t addressByte, uint32_t config)
bool dir()
Definition IOIN.cpp:18
bool stop_enable()
Definition GCONF.cpp:57
bool diag1_onstate()
Definition GCONF.cpp:52
uint8_t sg_current_decrease()
uint32_t PWMCONF()
Definition PWMCONF.cpp:16
bool step()
Definition IOIN.cpp:17
INIT_REGISTER(VDCMIN)
bool diag1_pushpull()
Definition GCONF.cpp:55
bool vhighchm()
Definition CHOPCONF.cpp:49
bool I_scale_analog()
Definition GCONF.cpp:42
INIT_REGISTER(CHOPCONF)
bool internal_Rsense()
Definition GCONF.cpp:43
void setSPISpeed(uint32_t speed)
INIT_REGISTER(XDIRECT)
SW_SPIClass * TMC_SW_SPI
INIT_REGISTER(ENCM_CTRL)
INIT_REGISTER(DCCTRL)
TMC2130Stepper(uint16_t pinCS, float RS=default_RS, int8_t link_index=-1)
uint8_t status_response
uint8_t hstrt()
Definition CHOPCONF.cpp:40
bool diag1_steps_skipped()
Definition GCONF.cpp:53
uint32_t CHOPCONF()
Definition CHOPCONF.cpp:16
uint8_t seup()
Definition COOLCONF.cpp:31
const uint16_t _pinCS
bool direct_mode()
Definition GCONF.cpp:58
bool dco()
Definition IOIN.cpp:22
uint8_t cs_actual()
INIT_REGISTER(PWMCONF)
uint8_t transfer(const uint8_t data)
bool diag0_otpw()
Definition GCONF.cpp:48
static constexpr float default_RS
bool drv_enn_cfg6()
Definition IOIN.cpp:21
uint32_t DRV_STATUS()
int8_t sgt()
Definition COOLCONF.cpp:37
uint8_t version()
Definition IOIN.cpp:23
bool diag1_index()
Definition GCONF.cpp:51
bool enc_commutation()
Definition GCONF.cpp:45
uint8_t pwm_ampl()
Definition PWMCONF.cpp:29
void endTransaction()
uint32_t LOST_STEPS()
uint8_t pwm_freq()
Definition PWMCONF.cpp:31
void transferEmptyBytes(const uint8_t n)
uint32_t COOLCONF()
Definition COOLCONF.cpp:16
bool en_pwm_mode()
Definition GCONF.cpp:44
uint8_t semin()
Definition COOLCONF.cpp:30
bool shaft()
Definition GCONF.cpp:46
uint8_t toff()
Definition CHOPCONF.cpp:39
INIT_REGISTER(THIGH)
static uint32_t spi_speed
static int8_t chain_length
void PWMCONF(uint32_t value)
Definition PWMCONF.cpp:17
uint8_t sync()
Definition CHOPCONF.cpp:50
void beginTransaction()
bool pwm_autoscale()
Definition PWMCONF.cpp:32
bool diag0_stall()
Definition GCONF.cpp:49
uint32_t IOIN()
Definition IOIN.cpp:16
INIT_REGISTER(TCOOLTHRS)
bool pwm_symmetric()
Definition PWMCONF.cpp:33
uint8_t tbl()
Definition CHOPCONF.cpp:46
uint8_t pwm_grad()
Definition PWMCONF.cpp:30
void DCCTRL(uint32_t input)
bool diag1_stall()
Definition GCONF.cpp:50
uint32_t read(uint8_t addressByte)
void switchCSpin(bool state)
uint32_t GCONF()
Definition GCONF.cpp:16
bool diag0_int_pushpull()
Definition GCONF.cpp:54
bool small_hysteresis()
Definition GCONF.cpp:56
uint8_t hend()
Definition CHOPCONF.cpp:41
uint8_t mres()
Definition CHOPCONF.cpp:51
uint8_t semax()
Definition COOLCONF.cpp:32
void COOLCONF(uint32_t value)
Definition COOLCONF.cpp:17
TMCStepper(float RS)
static constexpr uint8_t address
static constexpr uint8_t address
static constexpr uint8_t address
static constexpr uint8_t address