TMCStepper
Library supporting Trinamic Stepper Drivers for Arduino platforms
Loading...
Searching...
No Matches
TMC5160Stepper.cpp
Go to the documentation of this file.
1
6#include "../TMCStepper.h"
7#include "TMC_MACROS.h"
8
9TMC5160Stepper::TMC5160Stepper(uint16_t pinCS, float RS, int8_t link) : TMC5130Stepper(pinCS, RS, link)
10 { defaults(); }
11TMC5160Stepper::TMC5160Stepper(uint16_t pinCS, float RS, uint16_t pinMOSI, uint16_t pinMISO, uint16_t pinSCK, int8_t link) :
12 TMC5130Stepper(pinCS, RS, pinMOSI, pinMISO, pinSCK, link)
13 { defaults(); }
14TMC5160Stepper::TMC5160Stepper(uint16_t pinCS, uint16_t pinMOSI, uint16_t pinMISO, uint16_t pinSCK, int8_t link) :
15 TMC5130Stepper(pinCS, default_RS, pinMOSI, pinMISO, pinSCK, link)
16 { defaults(); }
17
19 SHORT_CONF_register.s2vs_level = 6;
20 SHORT_CONF_register.s2g_level = 6;
21 SHORT_CONF_register.shortfilter = 0b01;
22 SHORT_CONF_register.shortdelay = 0;
23
24 DRV_CONF_register.bbmtime = 0;
25 DRV_CONF_register.bbmclks = 4;
26 DRV_CONF_register.otselect = 0b00;
27 DRV_CONF_register.drvstrength = 0b10;
28 DRV_CONF_register.filt_isense = 0b00;
29
30 TPOWERDOWN_register.sr = 10;
31
32 VSTOP_register.sr = 1;
33
34 ENC_CONST_register.sr = 65536;
35
36 //MSLUT0_register.sr = ???;
37 //MSLUT1_register.sr = ???;
38 //MSLUT2_register.sr = ???;
39 //MSLUT3_register.sr = ???;
40 //MSLUT4_register.sr = ???;
41 //MSLUT5_register.sr = ???;
42 //MSLUT6_register.sr = ???;
43 //MSLUT7_register.sr = ???;
44
45 //MSLUTSEL_register.sr = ???;
46
47 //MSLUTSTART_register.start_sin = 0;
48 //MSLUTSTART_register.start_sin90 = 247;
49
50 //CHOPCONF_register.sr = 0x10410150;
51 CHOPCONF_register.toff = 0;
52 CHOPCONF_register.hstrt = 5;
53 CHOPCONF_register.hend = 2;
54 CHOPCONF_register.disfdcc = false;
55 CHOPCONF_register.rndtf = false;
56 CHOPCONF_register.chm = false;
57 CHOPCONF_register.tbl = 2;
58 CHOPCONF_register.vsense = false;
59 CHOPCONF_register.vhighfs = false;
60 CHOPCONF_register.vhighchm = false;
61 CHOPCONF_register.sync = 4;
62 CHOPCONF_register.mres = 0;
63 CHOPCONF_register.intpol = true;
64 CHOPCONF_register.dedge = false;
65 CHOPCONF_register.diss2g = false;
66
67 //PWMCONF_register.sr = 0xC40C001E;
68 PWMCONF_register.pwm_ofs = 30;
69 PWMCONF_register.pwm_grad = 0;
70 PWMCONF_register.pwm_freq = 0;
71 PWMCONF_register.pwm_autoscale = true;
72 PWMCONF_register.pwm_autograd = true;
73 PWMCONF_register.freewheel = 0;
74 PWMCONF_register.pwm_reg = 4;
75 PWMCONF_register.pwm_lim = 12;
76}
77
79 IHOLD_IRUN(IHOLD_IRUN_register.sr);
80 TPOWERDOWN(TPOWERDOWN_register.sr);
81 TPWMTHRS(TPWMTHRS_register.sr);
82 GCONF(GCONF_register.sr);
83 TCOOLTHRS(TCOOLTHRS_register.sr);
84 THIGH(THIGH_register.sr);
85 XDIRECT(XDIRECT_register.sr);
86 VDCMIN(VDCMIN_register.sr);
87 CHOPCONF(CHOPCONF_register.sr);
88 COOLCONF(COOLCONF_register.sr);
89 DCCTRL(DCCTRL_register.sr);
90 PWMCONF(PWMCONF_register.sr);
91 SHORT_CONF(SHORT_CONF_register.sr);
92 DRV_CONF(DRV_CONF_register.sr);
93 GLOBAL_SCALER(GLOBAL_SCALER_register.sr);
94 SLAVECONF(SLAVECONF_register.sr);
95 TMC_OUTPUT(OUTPUT_register.sr);
96 X_COMPARE(X_COMPARE_register.sr);
97 RAMPMODE(RAMPMODE_register.sr);
98 XACTUAL(XACTUAL_register.sr);
99 VSTART(VSTART_register.sr);
100 a1(A1_register.sr);
101 v1(V1_register.sr);
102 AMAX(AMAX_register.sr);
103 VMAX(VMAX_register.sr);
104 DMAX(DMAX_register.sr);
105 d1(D1_register.sr);
106 VSTOP(VSTOP_register.sr);
107 TZEROWAIT(TZEROWAIT_register.sr);
108 SW_MODE(SW_MODE_register.sr);
109 ENCMODE(ENCMODE_register.sr);
110 ENC_CONST(ENC_CONST_register.sr);
111 ENC_DEVIATION(ENC_DEVIATION_register.sr);
112}
113
114// R+WC: ENC_STATUS
115uint8_t TMC5160Stepper::ENC_STATUS() { return read(ENC_STATUS_t::address); }
116void TMC5160Stepper::ENC_STATUS(uint8_t input) {
117 write(ENC_STATUS_t::address, input & 0x3);
118}
119
120// W: ENC_DEVIATION
121uint32_t TMC5160Stepper::ENC_DEVIATION() { return ENC_DEVIATION_register.sr; }
122void TMC5160Stepper::ENC_DEVIATION(uint32_t input) {
123 ENC_DEVIATION_register.sr = input;
124 write(ENC_DEVIATION_register.address, ENC_DEVIATION_register.sr);
125}
126
127// R: PWM_AUTO
130}
void write(uint8_t addressByte, uint32_t config)
uint32_t CHOPCONF()
Definition CHOPCONF.cpp:16
uint32_t COOLCONF()
Definition COOLCONF.cpp:16
uint32_t read(uint8_t addressByte)
uint32_t GCONF()
Definition GCONF.cpp:16
TMC5130Stepper(uint16_t pinCS, float RS=default_RS, int8_t link_index=-1)
uint32_t ENCMODE()
Definition ENCMODE.cpp:16
uint16_t SLAVECONF()
Definition SLAVECONF.cpp:44
uint32_t SW_MODE()
Definition SW_MODE.cpp:13
uint8_t pwm_grad_auto()
uint8_t GLOBAL_SCALER()
static constexpr float default_RS
TMC5160Stepper(uint16_t pinCS, float RS=default_RS, int8_t link_index=-1)
uint32_t ENC_DEVIATION()
uint32_t DRV_CONF()
Definition DRV_CONF.cpp:16
uint32_t PWMCONF()
Definition PWMCONF.cpp:40
uint32_t SHORT_CONF()
uint32_t IHOLD_IRUN()
uint8_t TPOWERDOWN()
uint32_t TPWMTHRS()
uint8_t pwm_grad_auto
static constexpr uint8_t address
uint8_t pwm_ofs_auto