|
72 | 72 | #endif |
73 | 73 | ; |
74 | 74 | #if ENABLED(TMC_DEBUG) |
75 | | - #if HAS_TMCX1X0 || HAS_TMC220x |
| 75 | + #if HAS_TMCX1X0_OR_2240 || HAS_TMC220x |
76 | 76 | uint8_t cs_actual; |
77 | 77 | #endif |
78 | 78 | #if HAS_STALLGUARD |
|
298 | 298 | st.printLabel(); |
299 | 299 | SString<60> report(':', pwm_scale); |
300 | 300 | #if ENABLED(TMC_DEBUG) |
301 | | - #if HAS_TMCX1X0 || HAS_TMC220x |
| 301 | + #if HAS_TMCX1X0_OR_2240 || HAS_TMC220x |
302 | 302 | report.append('/', data.cs_actual); |
303 | 303 | #endif |
304 | 304 | #if HAS_STALLGUARD |
|
575 | 575 |
|
576 | 576 | template<class TMC> |
577 | 577 | 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 |
578 | 597 |
|
579 | 598 | #if HAS_DRIVER(TMC2130) || HAS_DRIVER(TMC5130) |
580 | 599 | static void _tmc_status(TMC2130Stepper &st, const TMC_debug_enum i) { |
|
600 | 619 | #endif |
601 | 620 |
|
602 | 621 | #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 | | - |
609 | 622 | static void _tmc_status(TMC2160Stepper &st, const TMC_debug_enum i) { |
610 | 623 | switch (i) { |
611 | 624 | case TMC_PWM_SCALE: SERIAL_ECHO(st.PWM_SCALE()); break; |
|
676 | 689 |
|
677 | 690 | #endif // HAS_TMC220x |
678 | 691 |
|
| 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 | + |
679 | 707 | #if HAS_DRIVER(TMC2660) |
680 | 708 | static void _tmc_parse_drv_status(TMC2660Stepper, const TMC_drv_status_enum) { } |
681 | 709 | static void _tmc_status(TMC2660Stepper &st, const TMC_debug_enum i) { |
|
686 | 714 | } |
687 | 715 | #endif |
688 | 716 |
|
| 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 | + |
689 | 732 | template <typename TMC> |
690 | 733 | static void tmc_status(TMC &st, const TMC_debug_enum i) { |
691 | 734 | SERIAL_CHAR('\t'); |
|
703 | 746 | SERIAL_ECHO(st.ihold()); |
704 | 747 | SERIAL_ECHOPGM("/31"); |
705 | 748 | 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; |
710 | 750 | case TMC_VSENSE: print_vsense(st); break; |
711 | 751 | 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; |
716 | 753 | #if ENABLED(HYBRID_THRESHOLD) |
717 | 754 | case TMC_TPWMTHRS: SERIAL_ECHO(uint32_t(st.TPWMTHRS())); break; |
718 | 755 | case TMC_TPWMTHRS_MMS: { |
|
725 | 762 | case TMC_OTPW_TRIGGERED: serialprint_truefalse(st.getOTPW()); break; |
726 | 763 | #endif |
727 | 764 | 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; |
729 | 766 | case TMC_HEND: SERIAL_ECHO(st.hysteresis_end()); break; |
730 | 767 | case TMC_HSTRT: SERIAL_ECHO(st.hysteresis_start()); break; |
731 | 768 | case TMC_MSCNT: SERIAL_ECHO(st.get_microstep_counter()); break; |
|
753 | 790 | //case TMC_OTPW_TRIGGERED: serialprint_truefalse(st.getOTPW()); break; |
754 | 791 | case TMC_SGT: SERIAL_ECHO(st.sgt()); break; |
755 | 792 | 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; |
757 | 794 | case TMC_HEND: SERIAL_ECHO(st.hysteresis_end()); break; |
758 | 795 | case TMC_HSTRT: SERIAL_ECHO(st.hysteresis_start()); break; |
759 | | - default: break; |
| 796 | + default: _tmc_status(st, i); break; |
760 | 797 | } |
761 | 798 | } |
762 | 799 | #endif |
|
916 | 953 | TMC_REPORT("Stallguard thrs", TMC_SGT); |
917 | 954 | TMC_REPORT("uStep count", TMC_MSCNT); |
918 | 955 | DRV_REPORT("DRVSTATUS", TMC_DRV_CODES); |
919 | | - #if HAS_TMCX1X0 || HAS_TMC220x |
| 956 | + #if HAS_TMCX1X0_OR_2240 || HAS_TMC220x |
920 | 957 | DRV_REPORT("sg_result", TMC_SG_RESULT); |
921 | 958 | #endif |
922 | | - #if HAS_TMCX1X0 |
| 959 | + #if HAS_TMCX1X0_OR_2240 |
923 | 960 | DRV_REPORT("stallguard", TMC_STALLGUARD); |
924 | 961 | DRV_REPORT("fsactive", TMC_FSACTIVE); |
925 | 962 | #endif |
|
944 | 981 |
|
945 | 982 | #define PRINT_TMC_REGISTER(REG_CASE) case TMC_GET_##REG_CASE: print_hex_long(st.REG_CASE(), ':'); break |
946 | 983 |
|
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 | + } |
954 | 997 | } |
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 |
960 | 999 |
|
961 | | - #if HAS_TRINAMIC_CONFIG |
962 | 1000 | template<class TMC> |
963 | 1001 | static void tmc_get_registers(TMC &st, const TMC_get_registers_enum i) { |
964 | 1002 | switch (i) { |
|
978 | 1016 | } |
979 | 1017 | SERIAL_CHAR('\t'); |
980 | 1018 | } |
981 | | - #endif |
| 1019 | + #endif // HAS_TRINAMIC_CONFIG |
| 1020 | + |
982 | 1021 | #if HAS_DRIVER(TMC2660) |
983 | 1022 | template <char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID> |
984 | 1023 | static void tmc_get_registers(TMCMarlin<TMC2660Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const TMC_get_registers_enum i) { |
|
1105 | 1144 | // TODO |
1106 | 1145 | return false; |
1107 | 1146 | } |
1108 | | - void tmc_disable_stallguard(TMC2660Stepper, const bool) {}; |
| 1147 | + void tmc_disable_stallguard(TMC2660Stepper, const bool) { } |
1109 | 1148 |
|
1110 | 1149 | #endif // USE_SENSORLESS |
1111 | 1150 |
|
|
0 commit comments