@@ -31,9 +31,14 @@ TMC2240Stepper::TMC2240Stepper(uint16_t pinCS, uint16_t pinMOSI, uint16_t pinMIS
3131 }
3232
3333void TMC2240Stepper::defaults () {
34- // GCONF_register.sr = 0x0000;
35- // CHOPCONF_register.sr = 0x10000053;
36- // PWMCONF_register.sr = 0xC10D0024;
34+ // GCONF_register.en_spreadcycle = 0;
35+ GCONF_register.multistep_filt = 1 ;
36+
37+ IHOLD_IRUN_register.iholddelay = 1 ;
38+ TPOWERDOWN_register.sr = 20 ;
39+
40+ CHOPCONF_register.sr = 0x10000053 ; // 1/16 x 256 single-edge
41+ PWMCONF_register.sr = 0xC10D0024 ; // autoscale=1, freq=01, grad & amp, freewheel=00
3742}
3843
3944__attribute__ ((weak))
@@ -152,7 +157,6 @@ void TMC2240Stepper::begin() {
152157
153158 // GCONF(GCONF_register.sr);
154159 // CHOPCONF(CHOPCONF_register.sr);
155- // COOLCONF(COOLCONF_register.sr);
156160 // PWMCONF(PWMCONF_register.sr);
157161 // IHOLD_IRUN(IHOLD_IRUN_register.sr);
158162
@@ -161,7 +165,10 @@ void TMC2240Stepper::begin() {
161165}
162166
163167void TMC2240Stepper::push () {
168+ TPOWERDOWN (TPOWERDOWN_register.sr );
169+ TPWMTHRS (TPWMTHRS_register.sr );
164170 GCONF (GCONF_register.sr );
171+ SLAVECONF (SLAVECONF_register.sr );
165172 DRV_CONF (DRV_CONF_register.sr );
166173 IHOLD_IRUN (IHOLD_IRUN_register.sr );
167174 CHOPCONF (CHOPCONF_register.sr );
@@ -327,6 +334,13 @@ void TMC2240Stepper::TPOWERDOWN(uint8_t input) {
327334 write (TPOWERDOWN_register.address , TPOWERDOWN_register.sr );
328335}
329336
337+ // W: TPWMTHRS
338+ uint32_t TMC2240Stepper::TPWMTHRS () { return TPWMTHRS_register.sr ; }
339+ void TMC2240Stepper::TPWMTHRS (uint32_t input) {
340+ TPWMTHRS_register.sr = input;
341+ write (TPWMTHRS_register.address , TPWMTHRS_register.sr );
342+ }
343+
330344void TMC2240Stepper::hysteresis_end (int8_t value) { hend (value+3 ); }
331345int8_t TMC2240Stepper::hysteresis_end () { return hend () - 3 ; };
332346
0 commit comments