HF-TMC51x0 Driver (TMC5130 & TMC5160) 0.1.0-dev
Hardware Agnostic C++ Driver for the TMC51x0 (TMC5130 & TMC5160)
Loading...
Searching...
No Matches
tmc51x0_registers.hpp
Go to the documentation of this file.
1
6#pragma once
8#include <cstdint>
9
10namespace tmc51x0 {
11
21namespace Registers {
22// NOLINTNEXTLINE(cppcoreguidelines-macro-usage) - Intentional: X-macro pattern
23// for register definitions
24#define X(addr, name, access, category, desc) constexpr uint8_t name = addr;
26#undef X
27} // namespace Registers
28
32enum class RampMode : uint8_t {
33 POSITIONING = 0x00,
34 VELOCITY_POS = 0x01,
35 VELOCITY_NEG = 0x02,
36 HOLD = 0x03
37};
38
42enum class PWMFreewheel : uint8_t {
43 NORMAL = 0x00,
44 ENABLED = 0x01,
45 SHORT_LS = 0x02,
46 SHORT_HS = 0x03
47};
48
52enum class EncoderSensitivity : uint8_t {
53 NO_EDGE = 0x00,
54 RISING_EDGE = 0x01,
55 FALLING_EDGE = 0x02,
57 0x03
58};
59
116 uint32_t value;
117
118 struct {
119 uint32_t
122 uint32_t faststandstill : 1;
124 uint32_t en_pwm_mode : 1;
127 uint32_t multistep_filt : 1;
130 uint32_t shaft : 1;
131 uint32_t diag0_error : 1;
134 uint32_t
137 uint32_t
143 uint32_t
148 uint32_t diag1_index : 1;
151 uint32_t
155 uint32_t diag1_steps_skipped : 1;
160 uint32_t
166 uint32_t small_hysteresis : 1;
168 uint32_t
172 uint32_t direct_mode : 1;
177 uint32_t test_mode : 1;
181 uint32_t reserved : 14;
183};
184
191 uint32_t value;
192
193 struct {
194 uint32_t reset : 1;
196 uint32_t drv_err : 1;
199 uint32_t uv_cp : 1;
201 uint32_t reserved : 29;
203};
204
211 uint32_t value;
212
213 struct {
214 uint32_t nodeaddr : 8;
218 uint32_t
222 uint32_t reserved : 20;
224};
225
233 uint32_t value;
234
235 struct {
236 uint32_t refl_step : 1;
237 uint32_t refr_dir : 1;
238 uint32_t encb_dcen_cfg4 : 1;
239 uint32_t enca_dcin_cfg5 : 1;
240 uint32_t drv_enn : 1;
241 uint32_t enc_n_dco_cfg6 : 1;
242 uint32_t sd_mode : 1;
243 uint32_t swcomp_in : 1;
244 uint32_t reserved : 16;
245 uint32_t version : 8;
247};
248
262 uint32_t value;
263
264 struct {
265 uint32_t otpbit : 3;
267 uint32_t reserved1 : 1;
268 uint32_t otpbyte : 2;
269 uint32_t reserved2 : 2;
270 uint32_t otpmagic : 8;
271 uint32_t reserved3 : 16;
273};
274
297 uint32_t value;
298
299 struct {
300 uint32_t otp_fclktrim : 5;
301 uint32_t
303 uint32_t otp_bbm : 1;
304 uint32_t otp_tbl : 1;
305 uint32_t reserved : 24;
307};
308
335 uint32_t value;
336
337 struct {
338 uint32_t s2vs_level : 4;
340 uint32_t reserved1 : 4;
341 uint32_t s2g_level : 4;
343 uint32_t reserved2 : 4;
344 uint32_t shortfilter : 2;
346 uint32_t shortdelay : 1;
348 uint32_t reserved3 : 13;
350};
351
386 uint32_t value;
387
388 struct {
389 uint32_t bbmtime : 5;
392 uint32_t reserved1 : 3;
393 uint32_t
396 uint32_t reserved2 : 4;
397 uint32_t otselect : 2;
399 uint32_t drvstrength : 2;
401 uint32_t filt_isense : 2;
403 uint32_t reserved3 : 10;
405};
406
417 uint32_t value;
418
419 struct {
420 uint32_t
422 uint32_t
424 uint32_t reserved : 16;
426};
427
447 uint32_t value;
448
449 struct {
450 uint32_t ihold : 5;
451 uint32_t reserved1 : 3;
452 uint32_t irun : 5;
453 uint32_t reserved2 : 3;
454 uint32_t iholddelay : 4;
455 uint32_t reserved3 : 12;
457};
458
491 uint32_t value;
492
493 struct {
494 uint32_t stop_l_enable : 1;
496 uint32_t stop_r_enable : 1;
498 uint32_t pol_stop_l : 1;
500 uint32_t
503 uint32_t
505 uint32_t latch_l_active : 1;
507 uint32_t
510 uint32_t latch_r_active : 1;
512 uint32_t
515 uint32_t en_latch_encoder : 1;
517 uint32_t sg_stop : 1;
519 uint32_t en_softstop : 1;
521 uint32_t reserved : 20;
523};
524
554 uint32_t value;
555
556 struct {
557 uint32_t status_stop_l : 1;
558 uint32_t status_stop_r : 1;
559 uint32_t status_latch_l : 1;
560 uint32_t status_latch_r : 1;
561 uint32_t event_stop_l : 1;
563 uint32_t event_stop_r : 1;
565 uint32_t event_stop_sg : 1;
566 uint32_t event_pos_reached : 1;
568 uint32_t
570 uint32_t
572 uint32_t vzero : 1;
573 uint32_t t_zerowait_active : 1;
575 uint32_t second_move : 1;
577 uint32_t status_sg : 1;
578 uint32_t reserved : 18;
580};
581
613 uint32_t value;
614
615 struct {
616 uint32_t pol_A : 1;
618 uint32_t pol_B : 1;
620 uint32_t pol_N : 1;
622 uint32_t
624 uint32_t clr_cont : 1;
626 uint32_t clr_once : 1;
628 uint32_t
630 uint32_t
632 uint32_t clr_enc_x : 1;
633 uint32_t latch_x_act : 1;
635 uint32_t enc_sel_decimal : 1;
637 uint32_t reserved : 21;
639};
640
655 uint32_t value;
656
657 struct {
658 uint32_t n_event : 1;
659 uint32_t deviation_warn : 1;
662 uint32_t reserved : 30;
664};
665
695 uint32_t value;
696
697 struct {
698 uint32_t w0 : 2;
699 uint32_t w1 : 2;
700 uint32_t w2 : 2;
701 uint32_t w3 : 2;
702 uint32_t x1 : 8;
703 uint32_t x2 : 8;
704 uint32_t x3 : 8;
706};
707
722 uint32_t value;
723
724 struct {
725 int32_t cur_b : 9;
727 uint32_t reserved1 : 7;
728 int32_t cur_a : 9;
730 uint32_t reserved2 : 7;
732};
733
780 uint32_t value;
781
782 struct {
783 uint32_t toff : 4;
784 uint32_t hstrt_tfd : 3;
785 uint32_t hend_offset : 4;
786 uint32_t tfd_3 : 1;
787 uint32_t disfdcc : 1;
788 uint32_t reserved1 : 1;
789 uint32_t
790 chm : 1;
791 uint32_t tbl : 2;
792 uint32_t reserved2 : 1;
793 uint32_t vhighfs : 1;
794 uint32_t vhighchm : 1;
795 uint32_t tpfd : 4;
796 uint32_t mres : 4;
797 uint32_t intpol : 1;
798 uint32_t dedge : 1;
799 uint32_t diss2g : 1;
800 uint32_t diss2vs : 1;
802};
803
839 uint32_t value;
840
841 struct {
842 uint32_t semin : 4;
844 uint32_t reserved1 : 1;
845 uint32_t seup : 2;
846 uint32_t reserved2 : 1;
847 uint32_t semax : 4;
849 uint32_t reserved3 : 1;
850 uint32_t sedn : 2;
851 uint32_t seimin : 1;
852 int32_t sgt : 7;
854 uint32_t reserved4 : 1;
855 uint32_t sfilt : 1;
856 uint32_t reserved5 : 7;
858};
859
866 uint32_t value;
867
868 struct {
869 uint32_t dc_time : 10;
870 uint32_t reserved1 : 6;
871 uint32_t dc_sg : 8;
873 uint32_t reserved2 : 8;
875};
876
913 uint32_t value;
914
915 struct {
916 uint32_t sg_result : 10;
918 uint32_t reserved1 : 2;
919 uint32_t s2vsa : 1;
920 uint32_t s2vsb : 1;
921 uint32_t stealth : 1;
922 uint32_t fsactive : 1;
923 uint32_t cs_actual : 5;
925 uint32_t reserved2 : 3;
927 uint32_t stallguard : 1;
928 uint32_t ot : 1;
929 uint32_t otpw : 1;
930 uint32_t s2ga : 1;
931 uint32_t s2gb : 1;
932 uint32_t ola : 1;
933 uint32_t olb : 1;
934 uint32_t stst : 1;
936};
937
974 uint32_t value;
975
976 struct {
977 uint32_t pwm_ofs : 8;
978 uint32_t
980 uint32_t pwm_freq : 2;
981 uint32_t
983 uint32_t pwm_autograd : 1;
984 uint32_t freewheel : 2;
985 uint32_t reserved1 : 2;
986 uint32_t pwm_reg : 4;
987 uint32_t pwm_lim : 4;
990};
991
1005 uint32_t value;
1006
1007 struct {
1008 uint32_t pwm_scale_sum : 8;
1009 uint32_t reserved1 : 8;
1010 int32_t pwm_scale_auto : 9;
1012 uint32_t reserved2 : 7;
1014};
1015
1023 uint32_t value;
1024
1025 struct {
1026 uint32_t pwm_ofs_auto : 8;
1027 uint32_t reserved1 : 8;
1028 uint32_t pwm_grad_auto : 8;
1029 uint32_t reserved2 : 8;
1031};
1032
1033} // namespace tmc51x0
Definition tmc51x0_register_defs.cpp:10
EncoderSensitivity
Encoder N channel sensitivity enumeration values.
Definition tmc51x0_registers.hpp:52
@ BOTH_EDGES
N channel active on N event activation and de-activation.
@ FALLING_EDGE
N channel active when the N event is de-activated.
@ NO_EDGE
N channel active while the N event is valid.
@ RISING_EDGE
N channel active when the N event is activated.
RampMode
Ramp mode enumeration values.
Definition tmc51x0_registers.hpp:32
@ HOLD
Velocity remains unchanged, unless stop event occurs.
@ VELOCITY_NEG
Negative VMAX, using AMAX acceleration.
@ POSITIONING
Positioning mode using all A, D and V parameters.
@ VELOCITY_POS
Positive VMAX, using AMAX acceleration.
PWMFreewheel
PWM freewheel mode enumeration values.
Definition tmc51x0_registers.hpp:42
@ NORMAL
Normal operation.
@ ENABLED
Freewheeling.
@ SHORT_HS
Coil shorted using HS drivers.
@ SHORT_LS
Coil shorted using LS drivers.
#define X(addr, name, access, category, desc)
X-MACRO definitions for TMC51x0 registers (TMC5130 & TMC5160)
#define REGISTER_LIST(X)
Definition tmc51x0_register_defs.hpp:42
Chopper and driver configuration register (CHOPCONF)
Definition tmc51x0_registers.hpp:779
uint32_t diss2vs
Bit 31: Short to supply protection disable.
Definition tmc51x0_registers.hpp:800
uint32_t tfd_3
Bit 11: TFD[3] (chm=1) or reserved (chm=0)
Definition tmc51x0_registers.hpp:786
uint32_t disfdcc
Bit 12: Fast decay mode (chm=1)
Definition tmc51x0_registers.hpp:787
uint32_t tbl
Bits 16..15: Comparator blank time select.
Definition tmc51x0_registers.hpp:791
uint32_t intpol
Bit 28: Interpolation to 256 microsteps.
Definition tmc51x0_registers.hpp:797
uint32_t vhighfs
Bit 18: High velocity fullstep selection.
Definition tmc51x0_registers.hpp:793
uint32_t diss2g
Bit 30: Short to GND protection disable.
Definition tmc51x0_registers.hpp:799
uint32_t reserved2
Bit 17: Reserved, set to 0.
Definition tmc51x0_registers.hpp:792
uint32_t vhighchm
Bit 19: High velocity chopper mode.
Definition tmc51x0_registers.hpp:794
uint32_t toff
Bits 3..0: Off time and driver enable.
Definition tmc51x0_registers.hpp:783
uint32_t reserved1
Bit 13: Reserved, set to 0.
Definition tmc51x0_registers.hpp:788
struct tmc51x0::CHOPCONF_Register::@16 bits
uint32_t chm
Bit 14: Chopper mode (0=SpreadCycle, 1=Constant off time)
Definition tmc51x0_registers.hpp:790
uint32_t mres
Bits 27..24: Micro step resolution.
Definition tmc51x0_registers.hpp:796
uint32_t hstrt_tfd
Bits 6..4: HSTRT (chm=0) or TFD[2..0] (chm=1)
Definition tmc51x0_registers.hpp:784
uint32_t value
Definition tmc51x0_registers.hpp:780
uint32_t hend_offset
Bits 10..7: HEND (chm=0) or OFFSET (chm=1)
Definition tmc51x0_registers.hpp:785
uint32_t dedge
Bit 29: Enable double edge step pulses.
Definition tmc51x0_registers.hpp:798
uint32_t tpfd
Bits 23..20: Passive fast decay time.
Definition tmc51x0_registers.hpp:795
coolStep smart current control and stallGuard2 configuration register (COOLCONF)
Definition tmc51x0_registers.hpp:838
uint32_t reserved2
Bit 7: Reserved, set to 0.
Definition tmc51x0_registers.hpp:846
uint32_t reserved1
Bit 4: Reserved, set to 0.
Definition tmc51x0_registers.hpp:844
uint32_t value
Definition tmc51x0_registers.hpp:839
int32_t sgt
Definition tmc51x0_registers.hpp:852
uint32_t semax
Definition tmc51x0_registers.hpp:847
uint32_t seimin
Bit 15: Minimum current for smart current control.
Definition tmc51x0_registers.hpp:851
uint32_t seup
Bits 6..5: Current increment step width.
Definition tmc51x0_registers.hpp:845
uint32_t sfilt
Bit 24: StallGuard2 filter enable.
Definition tmc51x0_registers.hpp:855
struct tmc51x0::COOLCONF_Register::@17 bits
uint32_t sedn
Bits 14..13: Current decrement step speed.
Definition tmc51x0_registers.hpp:850
uint32_t semin
Definition tmc51x0_registers.hpp:842
uint32_t reserved4
Bit 23: Reserved, set to 0.
Definition tmc51x0_registers.hpp:854
uint32_t reserved5
Bits 31..25: Reserved, set to 0.
Definition tmc51x0_registers.hpp:856
uint32_t reserved3
Bit 12: Reserved, set to 0.
Definition tmc51x0_registers.hpp:849
dcStep automatic commutation configuration register (DCCTRL)
Definition tmc51x0_registers.hpp:865
uint32_t dc_time
Upper PWM on time limit for commutation.
Definition tmc51x0_registers.hpp:869
uint32_t value
Definition tmc51x0_registers.hpp:866
struct tmc51x0::DCCTRL_Register::@18 bits
uint32_t dc_sg
Definition tmc51x0_registers.hpp:871
uint32_t reserved1
Reserved bits.
Definition tmc51x0_registers.hpp:870
uint32_t reserved2
Reserved bits.
Definition tmc51x0_registers.hpp:873
Driver configuration register (DRV_CONF)
Definition tmc51x0_registers.hpp:385
uint32_t value
Definition tmc51x0_registers.hpp:386
uint32_t reserved3
Reserved.
Definition tmc51x0_registers.hpp:403
uint32_t otselect
Definition tmc51x0_registers.hpp:397
uint32_t filt_isense
Definition tmc51x0_registers.hpp:401
uint32_t reserved2
Reserved.
Definition tmc51x0_registers.hpp:396
struct tmc51x0::DRV_CONF_Register::@7 bits
uint32_t reserved1
Reserved.
Definition tmc51x0_registers.hpp:392
uint32_t bbmclks
Definition tmc51x0_registers.hpp:394
uint32_t bbmtime
Definition tmc51x0_registers.hpp:389
uint32_t drvstrength
Definition tmc51x0_registers.hpp:399
stallGuard2 value and driver error flags register (DRV_STATUS)
Definition tmc51x0_registers.hpp:912
uint32_t s2ga
Bit 27: Short to ground indicator phase A.
Definition tmc51x0_registers.hpp:930
uint32_t fsactive
Bit 15: Full step active indicator.
Definition tmc51x0_registers.hpp:922
uint32_t ola
Bit 29: Open load indicator phase A.
Definition tmc51x0_registers.hpp:932
uint32_t stealth
Bit 14: StealthChop indicator.
Definition tmc51x0_registers.hpp:921
uint32_t reserved2
21 is also reserved per datasheet)
Definition tmc51x0_registers.hpp:925
uint32_t value
Definition tmc51x0_registers.hpp:913
uint32_t stallguard
Bit 24: StallGuard2 status.
Definition tmc51x0_registers.hpp:927
uint32_t cs_actual
Definition tmc51x0_registers.hpp:923
uint32_t stst
Bit 31: Standstill indicator.
Definition tmc51x0_registers.hpp:934
struct tmc51x0::DRV_STATUS_Register::@19 bits
uint32_t s2vsa
Bit 12: Short to supply indicator phase A.
Definition tmc51x0_registers.hpp:919
uint32_t s2vsb
Bit 13: Short to supply indicator phase B.
Definition tmc51x0_registers.hpp:920
uint32_t sg_result
Definition tmc51x0_registers.hpp:916
uint32_t s2gb
Bit 28: Short to ground indicator phase B.
Definition tmc51x0_registers.hpp:931
uint32_t otpw
Bit 26: Overtemperature pre-warning flag.
Definition tmc51x0_registers.hpp:929
uint32_t reserved1
Bits 11..10: Reserved, ignore these bits.
Definition tmc51x0_registers.hpp:918
uint32_t ot
Bit 25: Overtemperature flag.
Definition tmc51x0_registers.hpp:928
uint32_t olb
Bit 30: Open load indicator phase B.
Definition tmc51x0_registers.hpp:933
Encoder configuration register (ENCMODE)
Definition tmc51x0_registers.hpp:612
uint32_t latch_x_act
Definition tmc51x0_registers.hpp:633
uint32_t reserved
Reserved bits (11..31)
Definition tmc51x0_registers.hpp:637
uint32_t ignore_AB
Bit 3: Ignore A and B polarity for N channel event.
Definition tmc51x0_registers.hpp:623
uint32_t enc_sel_decimal
Definition tmc51x0_registers.hpp:635
uint32_t neg_edge
Bit 7: N channel event sensitivity (negative edge)
Definition tmc51x0_registers.hpp:631
uint32_t value
Definition tmc51x0_registers.hpp:613
struct tmc51x0::ENCMODE_Register::@12 bits
uint32_t pol_B
Definition tmc51x0_registers.hpp:618
uint32_t pol_N
Definition tmc51x0_registers.hpp:620
uint32_t pos_edge
Bit 6: N channel event sensitivity (positive edge)
Definition tmc51x0_registers.hpp:629
uint32_t pol_A
Definition tmc51x0_registers.hpp:616
uint32_t clr_cont
Definition tmc51x0_registers.hpp:624
uint32_t clr_enc_x
Bit 8: Clear encoder counter X_ENC upon N-event.
Definition tmc51x0_registers.hpp:632
uint32_t clr_once
Definition tmc51x0_registers.hpp:626
Encoder status register (ENC_STATUS)
Definition tmc51x0_registers.hpp:654
uint32_t deviation_warn
Definition tmc51x0_registers.hpp:659
struct tmc51x0::ENC_STATUS_Register::@13 bits
uint32_t reserved
Reserved bits (2..31)
Definition tmc51x0_registers.hpp:662
uint32_t n_event
Bit 0: N event detected (Write '1' to clear)
Definition tmc51x0_registers.hpp:658
uint32_t value
Definition tmc51x0_registers.hpp:655
General configuration register (GCONF)
Definition tmc51x0_registers.hpp:115
uint32_t diag0_stall_step
Definition tmc51x0_registers.hpp:138
uint32_t small_hysteresis
Definition tmc51x0_registers.hpp:166
uint32_t multistep_filt
Definition tmc51x0_registers.hpp:127
uint32_t en_pwm_mode
Definition tmc51x0_registers.hpp:124
uint32_t diag1_index
Definition tmc51x0_registers.hpp:148
uint32_t diag0_otpw
Definition tmc51x0_registers.hpp:135
uint32_t reserved
Bits 18-31: Reserved.
Definition tmc51x0_registers.hpp:181
uint32_t faststandstill
Definition tmc51x0_registers.hpp:122
uint32_t value
Definition tmc51x0_registers.hpp:116
uint32_t diag1_onstate
Definition tmc51x0_registers.hpp:152
uint32_t direct_mode
Definition tmc51x0_registers.hpp:172
uint32_t diag1_steps_skipped
Definition tmc51x0_registers.hpp:155
uint32_t diag0_error
Definition tmc51x0_registers.hpp:131
uint32_t diag1_stall_dir
Definition tmc51x0_registers.hpp:144
uint32_t diag0_int_pushpull
Definition tmc51x0_registers.hpp:161
uint32_t test_mode
Definition tmc51x0_registers.hpp:177
uint32_t shaft
Bit 4: 1=Inverse motor direction.
Definition tmc51x0_registers.hpp:130
uint32_t recalibrate
Definition tmc51x0_registers.hpp:120
uint32_t diag1_poscomp_pushpull
Definition tmc51x0_registers.hpp:163
uint32_t stop_enable
Definition tmc51x0_registers.hpp:169
struct tmc51x0::GCONF_Register::@0 bits
Global status register (GSTAT)
Definition tmc51x0_registers.hpp:190
uint32_t uv_cp
Definition tmc51x0_registers.hpp:199
uint32_t reserved
Reserved bits.
Definition tmc51x0_registers.hpp:201
uint32_t reset
Definition tmc51x0_registers.hpp:194
struct tmc51x0::GSTAT_Register::@1 bits
uint32_t value
Definition tmc51x0_registers.hpp:191
uint32_t drv_err
Definition tmc51x0_registers.hpp:196
Driver current control register (IHOLD_IRUN)
Definition tmc51x0_registers.hpp:446
uint32_t reserved3
Reserved bits (20..31)
Definition tmc51x0_registers.hpp:455
uint32_t reserved2
Reserved bits (13..15)
Definition tmc51x0_registers.hpp:453
uint32_t value
Definition tmc51x0_registers.hpp:447
uint32_t ihold
Bits 4..0: Standstill current (0=1/32...31=32/32)
Definition tmc51x0_registers.hpp:450
uint32_t irun
Bits 12..8: Motor run current (0=1/32...31=32/32)
Definition tmc51x0_registers.hpp:452
uint32_t reserved1
Reserved bits (5..7)
Definition tmc51x0_registers.hpp:451
uint32_t iholddelay
Bits 19..16: Motor power down delay (0-15)
Definition tmc51x0_registers.hpp:454
struct tmc51x0::IHOLD_IRUN_Register::@9 bits
Input pin register (IOIN) - Read-only at address 0x04.
Definition tmc51x0_registers.hpp:232
uint32_t version
IC version.
Definition tmc51x0_registers.hpp:245
uint32_t reserved
Reserved bits.
Definition tmc51x0_registers.hpp:244
uint32_t refr_dir
Reference right / direction input.
Definition tmc51x0_registers.hpp:237
uint32_t swcomp_in
Software comparator input.
Definition tmc51x0_registers.hpp:243
uint32_t encb_dcen_cfg4
Encoder B / DCEN / CFG4.
Definition tmc51x0_registers.hpp:238
uint32_t enca_dcin_cfg5
Encoder A / DCIN / CFG5.
Definition tmc51x0_registers.hpp:239
uint32_t sd_mode
1=External step and dir source
Definition tmc51x0_registers.hpp:242
uint32_t refl_step
Reference left / step input.
Definition tmc51x0_registers.hpp:236
uint32_t drv_enn
Driver enable (inverted)
Definition tmc51x0_registers.hpp:240
struct tmc51x0::IOIN_Register::@3 bits
uint32_t enc_n_dco_cfg6
Encoder N / DCO / CFG6.
Definition tmc51x0_registers.hpp:241
uint32_t value
Definition tmc51x0_registers.hpp:233
Actual microstep current register (MSCURACT)
Definition tmc51x0_registers.hpp:721
uint32_t reserved2
Reserved bits (25..31)
Definition tmc51x0_registers.hpp:730
uint32_t reserved1
Reserved bits (9..15)
Definition tmc51x0_registers.hpp:727
int32_t cur_b
Definition tmc51x0_registers.hpp:725
uint32_t value
Definition tmc51x0_registers.hpp:722
struct tmc51x0::MSCURACT_Register::@15 bits
int32_t cur_a
Definition tmc51x0_registers.hpp:728
Microstep lookup table segmentation definition register (MSLUTSEL)
Definition tmc51x0_registers.hpp:694
uint32_t w2
Bits 5..4: LUT width select from ofs(X2) to ofs(X3-1)
Definition tmc51x0_registers.hpp:700
uint32_t w1
Bits 3..2: LUT width select from ofs(X1) to ofs(X2-1)
Definition tmc51x0_registers.hpp:699
uint32_t x1
Bits 15..8: LUT segment 1 start.
Definition tmc51x0_registers.hpp:702
uint32_t w0
Bits 1..0: LUT width select from ofs00 to ofs(X1-1)
Definition tmc51x0_registers.hpp:698
uint32_t value
Definition tmc51x0_registers.hpp:695
struct tmc51x0::MSLUTSEL_Register::@14 bits
uint32_t x2
Bits 23..16: LUT segment 2 start.
Definition tmc51x0_registers.hpp:703
uint32_t x3
Bits 31..24: LUT segment 3 start.
Definition tmc51x0_registers.hpp:704
uint32_t w3
Bits 7..6: LUT width select from ofs(X3) to ofs255.
Definition tmc51x0_registers.hpp:701
UART node address configuration register (NODECONF)
Definition tmc51x0_registers.hpp:210
struct tmc51x0::NODECONF_Register::@2 bits
uint32_t nodeaddr
Definition tmc51x0_registers.hpp:214
uint32_t reserved
Reserved bits.
Definition tmc51x0_registers.hpp:222
uint32_t senddelay
Definition tmc51x0_registers.hpp:219
uint32_t value
Definition tmc51x0_registers.hpp:211
Offset calibration result register (OFFSET_READ)
Definition tmc51x0_registers.hpp:416
uint32_t value
Definition tmc51x0_registers.hpp:417
uint32_t phase_b
Phase B offset calibration result (bits 7..0, signed)
Definition tmc51x0_registers.hpp:421
uint32_t reserved
Reserved bits.
Definition tmc51x0_registers.hpp:424
uint32_t phase_a
Phase A offset calibration result (bits 15..8, signed)
Definition tmc51x0_registers.hpp:423
struct tmc51x0::OFFSET_READ_Register::@8 bits
OTP programming register (OTP_PROG)
Definition tmc51x0_registers.hpp:261
uint32_t reserved2
Bits 7..6: Reserved.
Definition tmc51x0_registers.hpp:269
uint32_t otpmagic
Bits 15..8: Set to 0xBD to enable programming.
Definition tmc51x0_registers.hpp:270
uint32_t reserved1
Bit 3: Reserved.
Definition tmc51x0_registers.hpp:267
uint32_t otpbit
Definition tmc51x0_registers.hpp:265
uint32_t reserved3
Bits 31..16: Reserved bits.
Definition tmc51x0_registers.hpp:271
uint32_t value
Definition tmc51x0_registers.hpp:262
struct tmc51x0::OTP_PROG_Register::@4 bits
uint32_t otpbyte
Bits 5..4: Selection of OTP byte. Set to 00.
Definition tmc51x0_registers.hpp:268
OTP read register (OTP_READ)
Definition tmc51x0_registers.hpp:296
uint32_t otp_tbl
Bit 7: Reset default for TBL.
Definition tmc51x0_registers.hpp:304
uint32_t reserved
Reserved bits.
Definition tmc51x0_registers.hpp:305
struct tmc51x0::OTP_READ_Register::@5 bits
uint32_t otp_S2_level
Bit 5: Reset default for Short detection levels.
Definition tmc51x0_registers.hpp:302
uint32_t value
Definition tmc51x0_registers.hpp:297
uint32_t otp_fclktrim
Bits 4..0: Reset default for FCLKTRIM (0-31)
Definition tmc51x0_registers.hpp:300
uint32_t otp_bbm
Bit 6: Reset default for DRVCONF.BBMCLKS.
Definition tmc51x0_registers.hpp:303
stealthChop voltage PWM mode chopper configuration register (PWMCONF)
Definition tmc51x0_registers.hpp:973
uint32_t pwm_lim
Definition tmc51x0_registers.hpp:987
uint32_t value
Definition tmc51x0_registers.hpp:974
uint32_t pwm_freq
Bits 17..16: PWM frequency selection.
Definition tmc51x0_registers.hpp:980
uint32_t freewheel
Bits 21..20: Stand still option when I_HOLD=0.
Definition tmc51x0_registers.hpp:984
uint32_t pwm_autograd
Bit 19: PWM automatic gradient adaptation.
Definition tmc51x0_registers.hpp:983
struct tmc51x0::PWMCONF_Register::@20 bits
uint32_t pwm_grad
Bits 15..8: User defined PWM amplitude (gradient)
Definition tmc51x0_registers.hpp:979
uint32_t pwm_ofs
Bits 7..0: User defined PWM amplitude (offset)
Definition tmc51x0_registers.hpp:977
uint32_t pwm_reg
Bits 27..24: Regulation loop gradient.
Definition tmc51x0_registers.hpp:986
uint32_t pwm_autoscale
Bit 18: Enable PWM automatic amplitude scaling.
Definition tmc51x0_registers.hpp:982
uint32_t reserved1
Bits 23..22: Reserved, set to 0.
Definition tmc51x0_registers.hpp:985
stealthChop automatically generated values read out register (PWM_AUTO)
Definition tmc51x0_registers.hpp:1022
uint32_t reserved1
Reserved bits.
Definition tmc51x0_registers.hpp:1027
uint32_t value
Definition tmc51x0_registers.hpp:1023
uint32_t pwm_ofs_auto
Automatically determined offset value.
Definition tmc51x0_registers.hpp:1026
uint32_t reserved2
Reserved bits.
Definition tmc51x0_registers.hpp:1029
uint32_t pwm_grad_auto
Automatically determined gradient value.
Definition tmc51x0_registers.hpp:1028
struct tmc51x0::PWM_AUTO_Register::@22 bits
Results of stealthChop amplitude regulator register (PWM_SCALE)
Definition tmc51x0_registers.hpp:1004
uint32_t reserved2
Reserved bits (25..31)
Definition tmc51x0_registers.hpp:1012
int32_t pwm_scale_auto
Definition tmc51x0_registers.hpp:1010
uint32_t reserved1
Reserved bits (8..15)
Definition tmc51x0_registers.hpp:1009
uint32_t pwm_scale_sum
Bits 7..0: Actual PWM duty cycle (0-255)
Definition tmc51x0_registers.hpp:1008
struct tmc51x0::PWM_SCALE_Register::@21 bits
uint32_t value
Definition tmc51x0_registers.hpp:1005
Ramp status and switch event status register (RAMP_STAT)
Definition tmc51x0_registers.hpp:553
struct tmc51x0::RAMP_STAT_Register::@11 bits
uint32_t status_stop_l
Reference switch left status (1=active)
Definition tmc51x0_registers.hpp:557
uint32_t vzero
Signals that the actual velocity is 0.
Definition tmc51x0_registers.hpp:572
uint32_t t_zerowait_active
Definition tmc51x0_registers.hpp:573
uint32_t position_reached
Signals that the target position is reached.
Definition tmc51x0_registers.hpp:571
uint32_t second_move
Definition tmc51x0_registers.hpp:575
uint32_t event_stop_sg
Signals an active StallGuard2 stop event.
Definition tmc51x0_registers.hpp:565
uint32_t status_stop_r
Reference switch right status (1=active)
Definition tmc51x0_registers.hpp:558
uint32_t event_stop_l
Definition tmc51x0_registers.hpp:561
uint32_t event_pos_reached
Definition tmc51x0_registers.hpp:566
uint32_t event_stop_r
Definition tmc51x0_registers.hpp:563
uint32_t value
Definition tmc51x0_registers.hpp:554
uint32_t status_latch_l
Latch left ready.
Definition tmc51x0_registers.hpp:559
uint32_t velocity_reached
Signals that the target velocity is reached.
Definition tmc51x0_registers.hpp:569
uint32_t status_latch_r
Latch right ready.
Definition tmc51x0_registers.hpp:560
uint32_t reserved
Reserved bits.
Definition tmc51x0_registers.hpp:578
uint32_t status_sg
Signals an active stallGuard2 input.
Definition tmc51x0_registers.hpp:577
Short detector configuration register (SHORT_CONF)
Definition tmc51x0_registers.hpp:334
uint32_t reserved1
Bits 7..4: Reserved.
Definition tmc51x0_registers.hpp:340
uint32_t value
Definition tmc51x0_registers.hpp:335
uint32_t reserved2
Bits 15..12: Reserved.
Definition tmc51x0_registers.hpp:343
uint32_t shortdelay
Definition tmc51x0_registers.hpp:346
uint32_t s2vs_level
Definition tmc51x0_registers.hpp:338
uint32_t shortfilter
Definition tmc51x0_registers.hpp:344
uint32_t reserved3
Bits 31..19: Reserved.
Definition tmc51x0_registers.hpp:348
uint32_t s2g_level
Definition tmc51x0_registers.hpp:341
struct tmc51x0::SHORT_CONF_Register::@6 bits
Switch mode configuration register (SW_MODE)
Definition tmc51x0_registers.hpp:490
uint32_t sg_stop
Definition tmc51x0_registers.hpp:517
uint32_t latch_l_active
Definition tmc51x0_registers.hpp:505
uint32_t en_latch_encoder
Definition tmc51x0_registers.hpp:515
uint32_t pol_stop_l
Definition tmc51x0_registers.hpp:498
uint32_t pol_stop_r
Definition tmc51x0_registers.hpp:501
uint32_t latch_r_inactive
Definition tmc51x0_registers.hpp:513
uint32_t en_softstop
Definition tmc51x0_registers.hpp:519
uint32_t value
Definition tmc51x0_registers.hpp:491
uint32_t stop_r_enable
Definition tmc51x0_registers.hpp:496
uint32_t reserved
Reserved bits.
Definition tmc51x0_registers.hpp:521
uint32_t latch_l_inactive
Definition tmc51x0_registers.hpp:508
uint32_t swap_lr
Swap the left and the right reference switch inputs.
Definition tmc51x0_registers.hpp:504
struct tmc51x0::SW_MODE_Register::@10 bits
uint32_t stop_l_enable
Definition tmc51x0_registers.hpp:494
uint32_t latch_r_active
Definition tmc51x0_registers.hpp:510