Skip to content

Commit 55ded9e

Browse files
committed
revisit TMC_DEBUG
1 parent 71c0ac8 commit 55ded9e

2 files changed

Lines changed: 79 additions & 37 deletions

File tree

Marlin/src/core/drivers.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,12 @@
113113
#define HAS_TRINAMIC_STANDALONE 1
114114
#endif
115115

116-
#if HAS_DRIVER(TMC2130) || HAS_DRIVER(TMC2160) || HAS_DRIVER(TMC5130) || HAS_DRIVER(TMC5160) || HAS_DRIVER(TMC2240)
116+
#if HAS_DRIVER(TMC2130) || HAS_DRIVER(TMC2160) || HAS_DRIVER(TMC5130) || HAS_DRIVER(TMC5160)
117117
#define HAS_TMCX1X0 1
118118
#endif
119+
#if HAS_TMCX1X0 || HAS_DRIVER(TMC2240)
120+
#define HAS_TMCX1X0_OR_2240 1
121+
#endif
119122
#if HAS_DRIVER(TMC2208) || HAS_DRIVER(TMC2209)
120123
#define HAS_TMC220x 1
121124
#endif

Marlin/src/feature/tmc_util.cpp

Lines changed: 75 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
#endif
7373
;
7474
#if ENABLED(TMC_DEBUG)
75-
#if HAS_TMCX1X0 || HAS_TMC220x
75+
#if HAS_TMCX1X0_OR_2240 || HAS_TMC220x
7676
uint8_t cs_actual;
7777
#endif
7878
#if HAS_STALLGUARD
@@ -298,7 +298,7 @@
298298
st.printLabel();
299299
SString<60> report(':', pwm_scale);
300300
#if ENABLED(TMC_DEBUG)
301-
#if HAS_TMCX1X0 || HAS_TMC220x
301+
#if HAS_TMCX1X0_OR_2240 || HAS_TMC220x
302302
report.append('/', data.cs_actual);
303303
#endif
304304
#if HAS_STALLGUARD
@@ -575,6 +575,25 @@
575575

576576
template<class TMC>
577577
static void print_vsense(TMC &st) { SERIAL_ECHO(st.vsense() ? F("1=.18") : F("0=.325")); }
578+
#if HAS_DRIVER(TMC2160)
579+
template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
580+
void print_vsense(TMCMarlin<TMC2160Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &) { }
581+
#endif
582+
#if HAS_DRIVER(TMC5160)
583+
template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
584+
void print_vsense(TMCMarlin<TMC5160Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &) { }
585+
#endif
586+
#if HAS_DRIVER(TMC2240)
587+
template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
588+
void print_vsense(TMCMarlin<TMC2240Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &) { }
589+
#endif
590+
591+
template <typename TMC>
592+
void print_cs_actual(TMC &st) { SERIAL_ECHO(st.cs_actual(), F("/31")); }
593+
#if HAS_DRIVER(TMC2240)
594+
template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
595+
void print_cs_actual(TMCMarlin<TMC2240Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &) { }
596+
#endif
578597

579598
#if HAS_DRIVER(TMC2130) || HAS_DRIVER(TMC5130)
580599
static void _tmc_status(TMC2130Stepper &st, const TMC_debug_enum i) {
@@ -600,12 +619,6 @@
600619
#endif
601620

602621
#if HAS_DRIVER(TMC2160) || HAS_DRIVER(TMC5160)
603-
template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
604-
void print_vsense(TMCMarlin<TMC2160Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &) { }
605-
606-
template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
607-
void print_vsense(TMCMarlin<TMC5160Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &) { }
608-
609622
static void _tmc_status(TMC2160Stepper &st, const TMC_debug_enum i) {
610623
switch (i) {
611624
case TMC_PWM_SCALE: SERIAL_ECHO(st.PWM_SCALE()); break;
@@ -676,6 +689,21 @@
676689

677690
#endif // HAS_TMC220x
678691

692+
#if HAS_DRIVER(TMC2240)
693+
static void _tmc_parse_drv_status(TMC2240Stepper, const TMC_drv_status_enum) { }
694+
static void _tmc_status(TMC2240Stepper &st, const TMC_debug_enum i) {
695+
switch (i) {
696+
case TMC_PWM_SCALE_SUM: SERIAL_ECHO(st.pwm_scale_sum()); break;
697+
case TMC_PWM_SCALE_AUTO: SERIAL_ECHO(st.pwm_scale_auto()); break;
698+
case TMC_PWM_OFS_AUTO: SERIAL_ECHO(st.pwm_ofs_auto()); break;
699+
case TMC_PWM_GRAD_AUTO: SERIAL_ECHO(st.pwm_grad_auto()); break;
700+
case TMC_STEALTHCHOP: serialprint_truefalse(st.stealth()); break;
701+
case TMC_INTERPOLATE: serialprint_truefalse(st.intpol()); break;
702+
default: break;
703+
}
704+
}
705+
#endif
706+
679707
#if HAS_DRIVER(TMC2660)
680708
static void _tmc_parse_drv_status(TMC2660Stepper, const TMC_drv_status_enum) { }
681709
static void _tmc_status(TMC2660Stepper &st, const TMC_debug_enum i) {
@@ -686,6 +714,21 @@
686714
}
687715
#endif
688716

717+
template <typename TMC>
718+
void print_tstep(TMC &st) {
719+
const uint32_t tstep_value = st.TSTEP();
720+
if (tstep_value != 0xFFFFF)
721+
SERIAL_ECHO(tstep_value);
722+
else
723+
SERIAL_ECHOPGM("max");
724+
}
725+
void print_tstep(TMC2660Stepper &st) { }
726+
727+
template <typename TMC>
728+
void print_blank_time(TMC &st) { SERIAL_ECHO(st.blank_time()); }
729+
template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
730+
void print_blank_time(TMCMarlin<TMC2240Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &) { }
731+
689732
template <typename TMC>
690733
static void tmc_status(TMC &st, const TMC_debug_enum i) {
691734
SERIAL_CHAR('\t');
@@ -703,16 +746,10 @@
703746
SERIAL_ECHO(st.ihold());
704747
SERIAL_ECHOPGM("/31");
705748
break;
706-
case TMC_CS_ACTUAL:
707-
SERIAL_ECHO(st.cs_actual());
708-
SERIAL_ECHOPGM("/31");
709-
break;
749+
case TMC_CS_ACTUAL: print_cs_actual(st); break;
710750
case TMC_VSENSE: print_vsense(st); break;
711751
case TMC_MICROSTEPS: SERIAL_ECHO(st.microsteps()); break;
712-
case TMC_TSTEP: {
713-
const uint32_t tstep_value = st.TSTEP();
714-
if (tstep_value != 0xFFFFF) SERIAL_ECHO(tstep_value); else SERIAL_ECHOPGM("max");
715-
} break;
752+
case TMC_TSTEP: print_tstep(st); break;
716753
#if ENABLED(HYBRID_THRESHOLD)
717754
case TMC_TPWMTHRS: SERIAL_ECHO(uint32_t(st.TPWMTHRS())); break;
718755
case TMC_TPWMTHRS_MMS: {
@@ -725,7 +762,7 @@
725762
case TMC_OTPW_TRIGGERED: serialprint_truefalse(st.getOTPW()); break;
726763
#endif
727764
case TMC_TOFF: SERIAL_ECHO(st.toff()); break;
728-
case TMC_TBL: SERIAL_ECHO(st.blank_time()); break;
765+
case TMC_TBL: print_blank_time(st); break;
729766
case TMC_HEND: SERIAL_ECHO(st.hysteresis_end()); break;
730767
case TMC_HSTRT: SERIAL_ECHO(st.hysteresis_start()); break;
731768
case TMC_MSCNT: SERIAL_ECHO(st.get_microstep_counter()); break;
@@ -753,10 +790,10 @@
753790
//case TMC_OTPW_TRIGGERED: serialprint_truefalse(st.getOTPW()); break;
754791
case TMC_SGT: SERIAL_ECHO(st.sgt()); break;
755792
case TMC_TOFF: SERIAL_ECHO(st.toff()); break;
756-
case TMC_TBL: SERIAL_ECHO(st.blank_time()); break;
793+
case TMC_TBL: print_blank_time(st); break;
757794
case TMC_HEND: SERIAL_ECHO(st.hysteresis_end()); break;
758795
case TMC_HSTRT: SERIAL_ECHO(st.hysteresis_start()); break;
759-
default: break;
796+
default: _tmc_status(st, i); break;
760797
}
761798
}
762799
#endif
@@ -916,10 +953,10 @@
916953
TMC_REPORT("Stallguard thrs", TMC_SGT);
917954
TMC_REPORT("uStep count", TMC_MSCNT);
918955
DRV_REPORT("DRVSTATUS", TMC_DRV_CODES);
919-
#if HAS_TMCX1X0 || HAS_TMC220x
956+
#if HAS_TMCX1X0_OR_2240 || HAS_TMC220x
920957
DRV_REPORT("sg_result", TMC_SG_RESULT);
921958
#endif
922-
#if HAS_TMCX1X0
959+
#if HAS_TMCX1X0_OR_2240
923960
DRV_REPORT("stallguard", TMC_STALLGUARD);
924961
DRV_REPORT("fsactive", TMC_FSACTIVE);
925962
#endif
@@ -944,21 +981,22 @@
944981

945982
#define PRINT_TMC_REGISTER(REG_CASE) case TMC_GET_##REG_CASE: print_hex_long(st.REG_CASE(), ':'); break
946983

947-
#if HAS_TMCX1X0
948-
static void tmc_get_ic_registers(TMC2130Stepper &st, const TMC_get_registers_enum i) {
949-
switch (i) {
950-
PRINT_TMC_REGISTER(TCOOLTHRS);
951-
PRINT_TMC_REGISTER(THIGH);
952-
PRINT_TMC_REGISTER(COOLCONF);
953-
default: SERIAL_CHAR('\t'); break;
984+
#if HAS_TRINAMIC_CONFIG
985+
986+
template<class TMC>
987+
static void tmc_get_ic_registers(TMC &, const TMC_get_registers_enum) { SERIAL_CHAR('\t'); }
988+
989+
#if HAS_TMCX1X0
990+
static void tmc_get_ic_registers(TMC2130Stepper &st, const TMC_get_registers_enum i) {
991+
switch (i) {
992+
PRINT_TMC_REGISTER(TCOOLTHRS);
993+
PRINT_TMC_REGISTER(THIGH);
994+
PRINT_TMC_REGISTER(COOLCONF);
995+
default: SERIAL_CHAR('\t'); break;
996+
}
954997
}
955-
}
956-
#endif
957-
#if HAS_TMC220x
958-
static void tmc_get_ic_registers(TMC2208Stepper, const TMC_get_registers_enum) { SERIAL_CHAR('\t'); }
959-
#endif
998+
#endif
960999

961-
#if HAS_TRINAMIC_CONFIG
9621000
template<class TMC>
9631001
static void tmc_get_registers(TMC &st, const TMC_get_registers_enum i) {
9641002
switch (i) {
@@ -978,7 +1016,8 @@
9781016
}
9791017
SERIAL_CHAR('\t');
9801018
}
981-
#endif
1019+
#endif // HAS_TRINAMIC_CONFIG
1020+
9821021
#if HAS_DRIVER(TMC2660)
9831022
template <char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
9841023
static void tmc_get_registers(TMCMarlin<TMC2660Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const TMC_get_registers_enum i) {
@@ -1105,7 +1144,7 @@
11051144
// TODO
11061145
return false;
11071146
}
1108-
void tmc_disable_stallguard(TMC2660Stepper, const bool) {};
1147+
void tmc_disable_stallguard(TMC2660Stepper, const bool) { }
11091148

11101149
#endif // USE_SENSORLESS
11111150

0 commit comments

Comments
 (0)