mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2024-11-28 14:24:34 +00:00
✨ Per-axis TMC hold multiplier (#23345)
This commit is contained in:
parent
a941cd33e2
commit
c74161c011
@ -2690,6 +2690,7 @@
|
||||
#define X_RSENSE 0.11
|
||||
#define X_CHAIN_POS -1 // -1..0: Not chained. 1: MCU MOSI connected. 2: Next in chain, ...
|
||||
//#define X_INTERPOLATE true // Enable to override 'INTERPOLATE' for the X axis
|
||||
//#define X_HOLD_MULTIPLIER 0.5 // Enable to override 'HOLD_MULTIPLIER' for the X axis
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(X2)
|
||||
@ -2699,6 +2700,7 @@
|
||||
#define X2_RSENSE 0.11
|
||||
#define X2_CHAIN_POS -1
|
||||
//#define X2_INTERPOLATE true
|
||||
//#define X2_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(Y)
|
||||
@ -2708,6 +2710,7 @@
|
||||
#define Y_RSENSE 0.11
|
||||
#define Y_CHAIN_POS -1
|
||||
//#define Y_INTERPOLATE true
|
||||
//#define Y_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(Y2)
|
||||
@ -2717,6 +2720,7 @@
|
||||
#define Y2_RSENSE 0.11
|
||||
#define Y2_CHAIN_POS -1
|
||||
//#define Y2_INTERPOLATE true
|
||||
//#define Y2_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(Z)
|
||||
@ -2726,6 +2730,7 @@
|
||||
#define Z_RSENSE 0.11
|
||||
#define Z_CHAIN_POS -1
|
||||
//#define Z_INTERPOLATE true
|
||||
//#define Z_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(Z2)
|
||||
@ -2735,6 +2740,7 @@
|
||||
#define Z2_RSENSE 0.11
|
||||
#define Z2_CHAIN_POS -1
|
||||
//#define Z2_INTERPOLATE true
|
||||
//#define Z2_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(Z3)
|
||||
@ -2744,6 +2750,7 @@
|
||||
#define Z3_RSENSE 0.11
|
||||
#define Z3_CHAIN_POS -1
|
||||
//#define Z3_INTERPOLATE true
|
||||
//#define Z3_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(Z4)
|
||||
@ -2753,6 +2760,7 @@
|
||||
#define Z4_RSENSE 0.11
|
||||
#define Z4_CHAIN_POS -1
|
||||
//#define Z4_INTERPOLATE true
|
||||
//#define Z4_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(I)
|
||||
@ -2762,6 +2770,7 @@
|
||||
#define I_RSENSE 0.11
|
||||
#define I_CHAIN_POS -1
|
||||
//#define I_INTERPOLATE true
|
||||
//#define I_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(J)
|
||||
@ -2771,6 +2780,7 @@
|
||||
#define J_RSENSE 0.11
|
||||
#define J_CHAIN_POS -1
|
||||
//#define J_INTERPOLATE true
|
||||
//#define J_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(K)
|
||||
@ -2780,6 +2790,7 @@
|
||||
#define K_RSENSE 0.11
|
||||
#define K_CHAIN_POS -1
|
||||
//#define K_INTERPOLATE true
|
||||
//#define K_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(E0)
|
||||
@ -2788,6 +2799,7 @@
|
||||
#define E0_RSENSE 0.11
|
||||
#define E0_CHAIN_POS -1
|
||||
//#define E0_INTERPOLATE true
|
||||
//#define E0_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(E1)
|
||||
@ -2796,6 +2808,7 @@
|
||||
#define E1_RSENSE 0.11
|
||||
#define E1_CHAIN_POS -1
|
||||
//#define E1_INTERPOLATE true
|
||||
//#define E1_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(E2)
|
||||
@ -2804,6 +2817,7 @@
|
||||
#define E2_RSENSE 0.11
|
||||
#define E2_CHAIN_POS -1
|
||||
//#define E2_INTERPOLATE true
|
||||
//#define E2_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(E3)
|
||||
@ -2812,6 +2826,7 @@
|
||||
#define E3_RSENSE 0.11
|
||||
#define E3_CHAIN_POS -1
|
||||
//#define E3_INTERPOLATE true
|
||||
//#define E3_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(E4)
|
||||
@ -2820,6 +2835,7 @@
|
||||
#define E4_RSENSE 0.11
|
||||
#define E4_CHAIN_POS -1
|
||||
//#define E4_INTERPOLATE true
|
||||
//#define E4_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(E5)
|
||||
@ -2828,6 +2844,7 @@
|
||||
#define E5_RSENSE 0.11
|
||||
#define E5_CHAIN_POS -1
|
||||
//#define E5_INTERPOLATE true
|
||||
//#define E5_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(E6)
|
||||
@ -2836,6 +2853,7 @@
|
||||
#define E6_RSENSE 0.11
|
||||
#define E6_CHAIN_POS -1
|
||||
//#define E6_INTERPOLATE true
|
||||
//#define E6_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(E7)
|
||||
@ -2844,6 +2862,7 @@
|
||||
#define E7_RSENSE 0.11
|
||||
#define E7_CHAIN_POS -1
|
||||
//#define E7_INTERPOLATE true
|
||||
//#define E7_HOLD_MULTIPLIER 0.5
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -1861,231 +1861,332 @@
|
||||
#undef Z3_STALL_SENSITIVITY
|
||||
#undef Z4_STALL_SENSITIVITY
|
||||
#endif
|
||||
#if defined(X_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(X)
|
||||
#define X_SENSORLESS 1
|
||||
#endif
|
||||
#if defined(X2_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(X2)
|
||||
#define X2_SENSORLESS 1
|
||||
#endif
|
||||
#if defined(Y_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(Y)
|
||||
#define Y_SENSORLESS 1
|
||||
#endif
|
||||
#if defined(Y2_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(Y2)
|
||||
#define Y2_SENSORLESS 1
|
||||
#endif
|
||||
#if defined(Z_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(Z)
|
||||
#define Z_SENSORLESS 1
|
||||
#endif
|
||||
#if defined(Z2_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(Z2)
|
||||
#define Z2_SENSORLESS 1
|
||||
#endif
|
||||
#if defined(Z3_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(Z3)
|
||||
#define Z3_SENSORLESS 1
|
||||
#endif
|
||||
#if defined(Z4_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(Z4)
|
||||
#define Z4_SENSORLESS 1
|
||||
#endif
|
||||
#if defined(I_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(I)
|
||||
#define I_SENSORLESS 1
|
||||
#endif
|
||||
#if defined(J_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(J)
|
||||
#define J_SENSORLESS 1
|
||||
#endif
|
||||
#if defined(K_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(K)
|
||||
#define K_SENSORLESS 1
|
||||
|
||||
#if AXIS_IS_TMC(X)
|
||||
#if defined(X_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(X)
|
||||
#define X_SENSORLESS 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(X)
|
||||
#define X_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if ENABLED(SPI_ENDSTOPS)
|
||||
#define X_SPI_SENSORLESS X_SENSORLESS
|
||||
#endif
|
||||
#ifndef X_INTERPOLATE
|
||||
#define X_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef X_HOLD_MULTIPLIER
|
||||
#define X_HOLD_MULTIPLIER HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef X_SLAVE_ADDRESS
|
||||
#define X_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if AXIS_HAS_STEALTHCHOP(X)
|
||||
#define X_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(X2)
|
||||
#define X2_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Y)
|
||||
#define Y_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Y2)
|
||||
#define Y2_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Z)
|
||||
#define Z_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Z2)
|
||||
#define Z2_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Z3)
|
||||
#define Z3_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Z4)
|
||||
#define Z4_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(I)
|
||||
#define I_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(J)
|
||||
#define J_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(K)
|
||||
#define K_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if E_STEPPERS > 0 && AXIS_HAS_STEALTHCHOP(E0)
|
||||
#define E0_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if E_STEPPERS > 1 && AXIS_HAS_STEALTHCHOP(E1)
|
||||
#define E1_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if E_STEPPERS > 2 && AXIS_HAS_STEALTHCHOP(E2)
|
||||
#define E2_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if E_STEPPERS > 3 && AXIS_HAS_STEALTHCHOP(E3)
|
||||
#define E3_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if E_STEPPERS > 4 && AXIS_HAS_STEALTHCHOP(E4)
|
||||
#define E4_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if E_STEPPERS > 5 && AXIS_HAS_STEALTHCHOP(E5)
|
||||
#define E5_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if E_STEPPERS > 6 && AXIS_HAS_STEALTHCHOP(E6)
|
||||
#define E6_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if E_STEPPERS > 7 && AXIS_HAS_STEALTHCHOP(E7)
|
||||
#define E7_HAS_STEALTHCHOP 1
|
||||
#if AXIS_IS_TMC(X2)
|
||||
#if defined(X2_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(X2)
|
||||
#define X2_SENSORLESS 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(X2)
|
||||
#define X2_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#ifndef X2_INTERPOLATE
|
||||
#define X2_INTERPOLATE X_INTERPOLATE
|
||||
#endif
|
||||
#ifndef X2_HOLD_MULTIPLIER
|
||||
#define X2_HOLD_MULTIPLIER X_HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef X2_SLAVE_ADDRESS
|
||||
#define X2_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(SPI_ENDSTOPS)
|
||||
#define X_SPI_SENSORLESS X_SENSORLESS
|
||||
#if HAS_Y_AXIS
|
||||
#if AXIS_IS_TMC(Y)
|
||||
#if defined(Y_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(Y)
|
||||
#define Y_SENSORLESS 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Y)
|
||||
#define Y_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if ENABLED(SPI_ENDSTOPS)
|
||||
#define Y_SPI_SENSORLESS Y_SENSORLESS
|
||||
#endif
|
||||
#if HAS_Z_AXIS
|
||||
#ifndef Y_INTERPOLATE
|
||||
#define Y_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef Y_HOLD_MULTIPLIER
|
||||
#define Y_HOLD_MULTIPLIER HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef Y_SLAVE_ADDRESS
|
||||
#define Y_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
|
||||
#if defined(Y2_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(Y2)
|
||||
#define Y2_SENSORLESS 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Y2)
|
||||
#define Y2_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#ifndef Y2_INTERPOLATE
|
||||
#define Y2_INTERPOLATE Y_INTERPOLATE
|
||||
#endif
|
||||
#ifndef Y2_HOLD_MULTIPLIER
|
||||
#define Y2_HOLD_MULTIPLIER Y_HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef Y2_SLAVE_ADDRESS
|
||||
#define Y2_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(Z)
|
||||
#if defined(Z_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(Z)
|
||||
#define Z_SENSORLESS 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Z)
|
||||
#define Z_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if ENABLED(SPI_ENDSTOPS)
|
||||
#define Z_SPI_SENSORLESS Z_SENSORLESS
|
||||
#endif
|
||||
#if LINEAR_AXES >= 4
|
||||
#ifndef Z_INTERPOLATE
|
||||
#define Z_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef Z_HOLD_MULTIPLIER
|
||||
#define Z_HOLD_MULTIPLIER HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef Z_SLAVE_ADDRESS
|
||||
#define Z_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#if NUM_Z_STEPPER_DRIVERS >= 2
|
||||
#if defined(Z2_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(Z2)
|
||||
#define Z2_SENSORLESS 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Z2)
|
||||
#define Z2_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#ifndef Z2_INTERPOLATE
|
||||
#define Z2_INTERPOLATE Z_INTERPOLATE
|
||||
#endif
|
||||
#ifndef Z2_HOLD_MULTIPLIER
|
||||
#define Z2_HOLD_MULTIPLIER Z_HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef Z2_SLAVE_ADDRESS
|
||||
#define Z2_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#if NUM_Z_STEPPER_DRIVERS >= 3
|
||||
#if defined(Z3_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(Z3)
|
||||
#define Z3_SENSORLESS 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Z3)
|
||||
#define Z3_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#ifndef Z3_INTERPOLATE
|
||||
#define Z3_INTERPOLATE Z_INTERPOLATE
|
||||
#endif
|
||||
#ifndef Z3_HOLD_MULTIPLIER
|
||||
#define Z3_HOLD_MULTIPLIER Z_HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef Z3_SLAVE_ADDRESS
|
||||
#define Z3_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#if NUM_Z_STEPPER_DRIVERS >= 4
|
||||
#if defined(Z4_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(Z4)
|
||||
#define Z4_SENSORLESS 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(Z4)
|
||||
#define Z4_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#ifndef Z4_INTERPOLATE
|
||||
#define Z4_INTERPOLATE Z_INTERPOLATE
|
||||
#endif
|
||||
#ifndef Z4_HOLD_MULTIPLIER
|
||||
#define Z4_HOLD_MULTIPLIER Z_HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef Z4_SLAVE_ADDRESS
|
||||
#define Z4_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(I)
|
||||
#if defined(I_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(I)
|
||||
#define I_SENSORLESS 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(I)
|
||||
#define I_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if ENABLED(SPI_ENDSTOPS)
|
||||
#define I_SPI_SENSORLESS I_SENSORLESS
|
||||
#endif
|
||||
#if LINEAR_AXES >= 5
|
||||
#ifndef I_INTERPOLATE
|
||||
#define I_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef I_HOLD_MULTIPLIER
|
||||
#define I_HOLD_MULTIPLIER HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef I_SLAVE_ADDRESS
|
||||
#define I_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if AXIS_IS_TMC(J)
|
||||
#if defined(J_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(J)
|
||||
#define J_SENSORLESS 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(J)
|
||||
#define J_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if ENABLED(SPI_ENDSTOPS)
|
||||
#define J_SPI_SENSORLESS J_SENSORLESS
|
||||
#endif
|
||||
#if LINEAR_AXES >= 6
|
||||
#define K_SPI_SENSORLESS K_SENSORLESS
|
||||
#ifndef J_INTERPOLATE
|
||||
#define J_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef J_HOLD_MULTIPLIER
|
||||
#define J_HOLD_MULTIPLIER HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef J_SLAVE_ADDRESS
|
||||
#define J_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#ifndef X_INTERPOLATE
|
||||
#define X_INTERPOLATE INTERPOLATE
|
||||
|
||||
#if AXIS_IS_TMC(K)
|
||||
#if defined(K_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(K)
|
||||
#define K_SENSORLESS 1
|
||||
#endif
|
||||
#if AXIS_HAS_STEALTHCHOP(K)
|
||||
#define K_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#if ENABLED(SPI_ENDSTOPS)
|
||||
#define K_SPI_SENSORLESS K_SENSORLESS
|
||||
#endif
|
||||
#ifndef K_INTERPOLATE
|
||||
#define K_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef K_HOLD_MULTIPLIER
|
||||
#define K_HOLD_MULTIPLIER HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef K_SLAVE_ADDRESS
|
||||
#define K_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#ifndef X2_INTERPOLATE
|
||||
#define X2_INTERPOLATE INTERPOLATE
|
||||
|
||||
#if AXIS_IS_TMC(E0)
|
||||
#if AXIS_HAS_STEALTHCHOP(E0)
|
||||
#define E0_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#ifndef E0_INTERPOLATE
|
||||
#define E0_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef E0_HOLD_MULTIPLIER
|
||||
#define E0_HOLD_MULTIPLIER HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef E0_SLAVE_ADDRESS
|
||||
#define E0_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Y_INTERPOLATE
|
||||
#define Y_INTERPOLATE INTERPOLATE
|
||||
#if AXIS_IS_TMC(E1)
|
||||
#if AXIS_HAS_STEALTHCHOP(E1)
|
||||
#define E1_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#ifndef E1_INTERPOLATE
|
||||
#define E1_INTERPOLATE E0_INTERPOLATE
|
||||
#endif
|
||||
#ifndef E1_HOLD_MULTIPLIER
|
||||
#define E1_HOLD_MULTIPLIER E0_HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef E1_SLAVE_ADDRESS
|
||||
#define E1_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Y2_INTERPOLATE
|
||||
#define Y2_INTERPOLATE INTERPOLATE
|
||||
#if AXIS_IS_TMC(E2)
|
||||
#if AXIS_HAS_STEALTHCHOP(E2)
|
||||
#define E2_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#ifndef E2_INTERPOLATE
|
||||
#define E2_INTERPOLATE E0_INTERPOLATE
|
||||
#endif
|
||||
#ifndef E2_HOLD_MULTIPLIER
|
||||
#define E2_HOLD_MULTIPLIER E0_HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef E2_SLAVE_ADDRESS
|
||||
#define E2_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z_INTERPOLATE
|
||||
#define Z_INTERPOLATE INTERPOLATE
|
||||
#if AXIS_IS_TMC(E3)
|
||||
#if AXIS_HAS_STEALTHCHOP(E3)
|
||||
#define E3_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#ifndef E3_INTERPOLATE
|
||||
#define E3_INTERPOLATE E0_INTERPOLATE
|
||||
#endif
|
||||
#ifndef E3_HOLD_MULTIPLIER
|
||||
#define E3_HOLD_MULTIPLIER E0_HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef E3_SLAVE_ADDRESS
|
||||
#define E3_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z2_INTERPOLATE
|
||||
#define Z2_INTERPOLATE INTERPOLATE
|
||||
#if AXIS_IS_TMC(E4)
|
||||
#if AXIS_HAS_STEALTHCHOP(E4)
|
||||
#define E4_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#ifndef E4_INTERPOLATE
|
||||
#define E4_INTERPOLATE E0_INTERPOLATE
|
||||
#endif
|
||||
#ifndef E4_HOLD_MULTIPLIER
|
||||
#define E4_HOLD_MULTIPLIER E0_HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef E4_SLAVE_ADDRESS
|
||||
#define E4_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z3_INTERPOLATE
|
||||
#define Z3_INTERPOLATE INTERPOLATE
|
||||
#if AXIS_IS_TMC(E5)
|
||||
#if AXIS_HAS_STEALTHCHOP(E5)
|
||||
#define E5_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#ifndef E5_INTERPOLATE
|
||||
#define E5_INTERPOLATE E0_INTERPOLATE
|
||||
#endif
|
||||
#ifndef E5_HOLD_MULTIPLIER
|
||||
#define E5_HOLD_MULTIPLIER E0_HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef E5_SLAVE_ADDRESS
|
||||
#define E5_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#ifndef Z4_INTERPOLATE
|
||||
#define Z4_INTERPOLATE INTERPOLATE
|
||||
#if AXIS_IS_TMC(E6)
|
||||
#if AXIS_HAS_STEALTHCHOP(E6)
|
||||
#define E6_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#ifndef E6_INTERPOLATE
|
||||
#define E6_INTERPOLATE E0_INTERPOLATE
|
||||
#endif
|
||||
#ifndef E6_HOLD_MULTIPLIER
|
||||
#define E6_HOLD_MULTIPLIER E0_HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef E6_SLAVE_ADDRESS
|
||||
#define E6_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#if LINEAR_AXES >= 4 && !defined(I_INTERPOLATE)
|
||||
#define I_INTERPOLATE INTERPOLATE
|
||||
#if AXIS_IS_TMC(E7)
|
||||
#if AXIS_HAS_STEALTHCHOP(E7)
|
||||
#define E7_HAS_STEALTHCHOP 1
|
||||
#endif
|
||||
#ifndef E7_INTERPOLATE
|
||||
#define E7_INTERPOLATE E0_INTERPOLATE
|
||||
#endif
|
||||
#ifndef E7_HOLD_MULTIPLIER
|
||||
#define E7_HOLD_MULTIPLIER E0_HOLD_MULTIPLIER
|
||||
#endif
|
||||
#ifndef E7_SLAVE_ADDRESS
|
||||
#define E7_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#if LINEAR_AXES >= 5 && !defined(J_INTERPOLATE)
|
||||
#define J_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#if LINEAR_AXES >= 6 && !defined(K_INTERPOLATE)
|
||||
#define K_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef E0_INTERPOLATE
|
||||
#define E0_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef E1_INTERPOLATE
|
||||
#define E1_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef E2_INTERPOLATE
|
||||
#define E2_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef E3_INTERPOLATE
|
||||
#define E3_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef E4_INTERPOLATE
|
||||
#define E4_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef E5_INTERPOLATE
|
||||
#define E5_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef E6_INTERPOLATE
|
||||
#define E6_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef E7_INTERPOLATE
|
||||
#define E7_INTERPOLATE INTERPOLATE
|
||||
#endif
|
||||
#ifndef X_SLAVE_ADDRESS
|
||||
#define X_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef Y_SLAVE_ADDRESS
|
||||
#define Y_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef Z_SLAVE_ADDRESS
|
||||
#define Z_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef I_SLAVE_ADDRESS
|
||||
#define I_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef J_SLAVE_ADDRESS
|
||||
#define J_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef K_SLAVE_ADDRESS
|
||||
#define K_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef X2_SLAVE_ADDRESS
|
||||
#define X2_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef Y2_SLAVE_ADDRESS
|
||||
#define Y2_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef Z2_SLAVE_ADDRESS
|
||||
#define Z2_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef Z3_SLAVE_ADDRESS
|
||||
#define Z3_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef Z4_SLAVE_ADDRESS
|
||||
#define Z4_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef E0_SLAVE_ADDRESS
|
||||
#define E0_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef E1_SLAVE_ADDRESS
|
||||
#define E1_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef E2_SLAVE_ADDRESS
|
||||
#define E2_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef E3_SLAVE_ADDRESS
|
||||
#define E3_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef E4_SLAVE_ADDRESS
|
||||
#define E4_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef E5_SLAVE_ADDRESS
|
||||
#define E5_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef E6_SLAVE_ADDRESS
|
||||
#define E6_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#ifndef E7_SLAVE_ADDRESS
|
||||
#define E7_SLAVE_ADDRESS 0
|
||||
#endif
|
||||
#endif
|
||||
#endif // HAS_TRINAMIC_CONFIG
|
||||
|
||||
#if ANY_AXIS_HAS(HW_SERIAL)
|
||||
#define HAS_TMC_HW_SERIAL 1
|
||||
|
@ -38,7 +38,7 @@
|
||||
enum StealthIndex : uint8_t {
|
||||
LOGICAL_AXIS_LIST(STEALTH_AXIS_E, STEALTH_AXIS_X, STEALTH_AXIS_Y, STEALTH_AXIS_Z, STEALTH_AXIS_I, STEALTH_AXIS_J, STEALTH_AXIS_K)
|
||||
};
|
||||
#define TMC_INIT(ST, STEALTH_INDEX) tmc_init(stepper##ST, ST##_CURRENT, ST##_MICROSTEPS, ST##_HYBRID_THRESHOLD, stealthchop_by_axis[STEALTH_INDEX], chopper_timing_##ST, ST##_INTERPOLATE)
|
||||
#define TMC_INIT(ST, STEALTH_INDEX) tmc_init(stepper##ST, ST##_CURRENT, ST##_MICROSTEPS, ST##_HYBRID_THRESHOLD, stealthchop_by_axis[STEALTH_INDEX], chopper_timing_##ST, ST##_INTERPOLATE, ST##_HOLD_MULTIPLIER)
|
||||
|
||||
// IC = TMC model number
|
||||
// ST = Stepper object letter
|
||||
@ -200,7 +200,7 @@ enum StealthIndex : uint8_t {
|
||||
|
||||
#if HAS_DRIVER(TMC2130)
|
||||
template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
|
||||
void tmc_init(TMCMarlin<TMC2130Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t hyb_thrs, const bool stealth, const chopper_timing_t &chop_init, const bool interpolate) {
|
||||
void tmc_init(TMCMarlin<TMC2130Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t hyb_thrs, const bool stealth, const chopper_timing_t &chop_init, const bool interpolate, float hold_multiplier) {
|
||||
st.begin();
|
||||
|
||||
CHOPCONF_t chopconf{0};
|
||||
@ -212,7 +212,7 @@ enum StealthIndex : uint8_t {
|
||||
TERN_(SQUARE_WAVE_STEPPING, chopconf.dedge = true);
|
||||
st.CHOPCONF(chopconf.sr);
|
||||
|
||||
st.rms_current(mA, HOLD_MULTIPLIER);
|
||||
st.rms_current(mA, hold_multiplier);
|
||||
st.microsteps(microsteps);
|
||||
st.iholddelay(10);
|
||||
st.TPOWERDOWN(128); // ~2s until driver lowers to hold current
|
||||
@ -235,7 +235,7 @@ enum StealthIndex : uint8_t {
|
||||
|
||||
#if HAS_DRIVER(TMC2160)
|
||||
template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
|
||||
void tmc_init(TMCMarlin<TMC2160Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t hyb_thrs, const bool stealth, const chopper_timing_t &chop_init, const bool interpolate) {
|
||||
void tmc_init(TMCMarlin<TMC2160Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t hyb_thrs, const bool stealth, const chopper_timing_t &chop_init, const bool interpolate, float hold_multiplier) {
|
||||
st.begin();
|
||||
|
||||
CHOPCONF_t chopconf{0};
|
||||
@ -247,7 +247,7 @@ enum StealthIndex : uint8_t {
|
||||
TERN_(SQUARE_WAVE_STEPPING, chopconf.dedge = true);
|
||||
st.CHOPCONF(chopconf.sr);
|
||||
|
||||
st.rms_current(mA, HOLD_MULTIPLIER);
|
||||
st.rms_current(mA, hold_multiplier);
|
||||
st.microsteps(microsteps);
|
||||
st.iholddelay(10);
|
||||
st.TPOWERDOWN(128); // ~2s until driver lowers to hold current
|
||||
@ -604,7 +604,7 @@ enum StealthIndex : uint8_t {
|
||||
|
||||
#if HAS_DRIVER(TMC2208)
|
||||
template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
|
||||
void tmc_init(TMCMarlin<TMC2208Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t hyb_thrs, const bool stealth, const chopper_timing_t &chop_init, const bool interpolate) {
|
||||
void tmc_init(TMCMarlin<TMC2208Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t hyb_thrs, const bool stealth, const chopper_timing_t &chop_init, const bool interpolate, float hold_multiplier) {
|
||||
TMC2208_n::GCONF_t gconf{0};
|
||||
gconf.pdn_disable = true; // Use UART
|
||||
gconf.mstep_reg_select = true; // Select microsteps with UART
|
||||
@ -622,7 +622,7 @@ enum StealthIndex : uint8_t {
|
||||
TERN_(SQUARE_WAVE_STEPPING, chopconf.dedge = true);
|
||||
st.CHOPCONF(chopconf.sr);
|
||||
|
||||
st.rms_current(mA, HOLD_MULTIPLIER);
|
||||
st.rms_current(mA, hold_multiplier);
|
||||
st.microsteps(microsteps);
|
||||
st.iholddelay(10);
|
||||
st.TPOWERDOWN(128); // ~2s until driver lowers to hold current
|
||||
@ -646,7 +646,7 @@ enum StealthIndex : uint8_t {
|
||||
|
||||
#if HAS_DRIVER(TMC2209)
|
||||
template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
|
||||
void tmc_init(TMCMarlin<TMC2209Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t hyb_thrs, const bool stealth, const chopper_timing_t &chop_init, const bool interpolate) {
|
||||
void tmc_init(TMCMarlin<TMC2209Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t hyb_thrs, const bool stealth, const chopper_timing_t &chop_init, const bool interpolate, float hold_multiplier) {
|
||||
TMC2208_n::GCONF_t gconf{0};
|
||||
gconf.pdn_disable = true; // Use UART
|
||||
gconf.mstep_reg_select = true; // Select microsteps with UART
|
||||
@ -664,7 +664,7 @@ enum StealthIndex : uint8_t {
|
||||
TERN_(SQUARE_WAVE_STEPPING, chopconf.dedge = true);
|
||||
st.CHOPCONF(chopconf.sr);
|
||||
|
||||
st.rms_current(mA, HOLD_MULTIPLIER);
|
||||
st.rms_current(mA, hold_multiplier);
|
||||
st.microsteps(microsteps);
|
||||
st.iholddelay(10);
|
||||
st.TPOWERDOWN(128); // ~2s until driver lowers to hold current
|
||||
@ -688,7 +688,7 @@ enum StealthIndex : uint8_t {
|
||||
|
||||
#if HAS_DRIVER(TMC2660)
|
||||
template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
|
||||
void tmc_init(TMCMarlin<TMC2660Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t, const bool, const chopper_timing_t &chop_init, const bool interpolate) {
|
||||
void tmc_init(TMCMarlin<TMC2660Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t, const bool, const chopper_timing_t &chop_init, const bool interpolate, float hold_multiplier) {
|
||||
st.begin();
|
||||
|
||||
TMC2660_n::CHOPCONF_t chopconf{0};
|
||||
@ -710,7 +710,7 @@ enum StealthIndex : uint8_t {
|
||||
|
||||
#if HAS_DRIVER(TMC5130)
|
||||
template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
|
||||
void tmc_init(TMCMarlin<TMC5130Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t hyb_thrs, const bool stealth, const chopper_timing_t &chop_init, const bool interpolate) {
|
||||
void tmc_init(TMCMarlin<TMC5130Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t hyb_thrs, const bool stealth, const chopper_timing_t &chop_init, const bool interpolate, float hold_multiplier) {
|
||||
st.begin();
|
||||
|
||||
CHOPCONF_t chopconf{0};
|
||||
@ -722,7 +722,7 @@ enum StealthIndex : uint8_t {
|
||||
TERN_(SQUARE_WAVE_STEPPING, chopconf.dedge = true);
|
||||
st.CHOPCONF(chopconf.sr);
|
||||
|
||||
st.rms_current(mA, HOLD_MULTIPLIER);
|
||||
st.rms_current(mA, hold_multiplier);
|
||||
st.microsteps(microsteps);
|
||||
st.iholddelay(10);
|
||||
st.TPOWERDOWN(128); // ~2s until driver lowers to hold current
|
||||
@ -745,7 +745,7 @@ enum StealthIndex : uint8_t {
|
||||
|
||||
#if HAS_DRIVER(TMC5160)
|
||||
template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
|
||||
void tmc_init(TMCMarlin<TMC5160Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t hyb_thrs, const bool stealth, const chopper_timing_t &chop_init, const bool interpolate) {
|
||||
void tmc_init(TMCMarlin<TMC5160Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t hyb_thrs, const bool stealth, const chopper_timing_t &chop_init, const bool interpolate, float hold_multiplier) {
|
||||
st.begin();
|
||||
|
||||
CHOPCONF_t chopconf{0};
|
||||
@ -757,7 +757,7 @@ enum StealthIndex : uint8_t {
|
||||
TERN_(SQUARE_WAVE_STEPPING, chopconf.dedge = true);
|
||||
st.CHOPCONF(chopconf.sr);
|
||||
|
||||
st.rms_current(mA, HOLD_MULTIPLIER);
|
||||
st.rms_current(mA, hold_multiplier);
|
||||
st.microsteps(microsteps);
|
||||
st.iholddelay(10);
|
||||
st.TPOWERDOWN(128); // ~2s until driver lowers to hold current
|
||||
|
Loading…
Reference in New Issue
Block a user