diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index b3cc5a577..e06e0602f 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -75,9 +75,11 @@ uint16_t SP_min = 0x21FF; #ifdef TMC2130 #define STEPPER_MINIMUM_PULSE TMC2130_MINIMUM_PULSE #define STEPPER_SET_DIR_DELAY TMC2130_SET_DIR_DELAY +#define STEPPER_MINIMUM_DELAY TMC2130_MINIMUM_DELAY #else #define STEPPER_MINIMUM_PULSE 2 #define STEPPER_SET_DIR_DELAY 100 +#define STEPPER_MINIMUM_DELAY delayMicroseconds(STEPPER_MINIMUM_PULSE) #endif #ifdef TMC2130_DEDGE_STEPPING @@ -1448,7 +1450,7 @@ void babystep(const uint8_t axis,const bool direction) STEP_NC_HI(X_DUP_AXIS); #endif #ifndef TMC2130_DEDGE_STEPPING - delayMicroseconds(STEPPER_MINIMUM_PULSE); + STEPPER_MINIMUM_DELAY; STEP_NC_LO(X_AXIS); #ifdef DEBUG_XSTEP_DUP_PIN STEP_NC_LO(X_DUP_AXIS); @@ -1478,7 +1480,7 @@ void babystep(const uint8_t axis,const bool direction) STEP_NC_HI(Y_DUP_AXIS); #endif #ifndef TMC2130_DEDGE_STEPPING - delayMicroseconds(STEPPER_MINIMUM_PULSE); + STEPPER_MINIMUM_DELAY; STEP_NC_LO(Y_AXIS); #ifdef DEBUG_YSTEP_DUP_PIN STEP_NC_LO(Y_DUP_AXIS); @@ -1511,7 +1513,7 @@ void babystep(const uint8_t axis,const bool direction) STEP_NC_HI(Z2_AXIS); #endif #ifndef TMC2130_DEDGE_STEPPING - delayMicroseconds(STEPPER_MINIMUM_PULSE); + STEPPER_MINIMUM_DELAY; STEP_NC_LO(Z_AXIS); #ifdef Z_DUAL_STEPPER_DRIVERS STEP_NC_LO(Z2_AXIS); diff --git a/Firmware/tmc2130.cpp b/Firmware/tmc2130.cpp index 15646b925..41f7b7c12 100755 --- a/Firmware/tmc2130.cpp +++ b/Firmware/tmc2130.cpp @@ -717,10 +717,10 @@ static uint8_t tmc2130_rx(uint8_t axis, uint8_t addr, uint32_t* rval) #define _DO_STEP_Z TOGGLE(Z_STEP_PIN) #define _DO_STEP_E TOGGLE(E0_STEP_PIN) #else -#define _DO_STEP_X { WRITE(X_STEP_PIN, !INVERT_X_STEP_PIN); delayMicroseconds(TMC2130_MINIMUM_PULSE); WRITE(X_STEP_PIN, INVERT_X_STEP_PIN); } -#define _DO_STEP_Y { WRITE(Y_STEP_PIN, !INVERT_Y_STEP_PIN); delayMicroseconds(TMC2130_MINIMUM_PULSE); WRITE(Y_STEP_PIN, INVERT_Y_STEP_PIN); } -#define _DO_STEP_Z { WRITE(Z_STEP_PIN, !INVERT_Z_STEP_PIN); delayMicroseconds(TMC2130_MINIMUM_PULSE); WRITE(Z_STEP_PIN, INVERT_Z_STEP_PIN); } -#define _DO_STEP_E { WRITE(E0_STEP_PIN, !INVERT_E_STEP_PIN); delayMicroseconds(TMC2130_MINIMUM_PULSE); WRITE(E0_STEP_PIN, INVERT_E_STEP_PIN); } +#define _DO_STEP_X { WRITE(X_STEP_PIN, !INVERT_X_STEP_PIN); TMC2130_MINIMUM_DELAY; WRITE(X_STEP_PIN, INVERT_X_STEP_PIN); } +#define _DO_STEP_Y { WRITE(Y_STEP_PIN, !INVERT_Y_STEP_PIN); TMC2130_MINIMUM_DELAY; WRITE(Y_STEP_PIN, INVERT_Y_STEP_PIN); } +#define _DO_STEP_Z { WRITE(Z_STEP_PIN, !INVERT_Z_STEP_PIN); TMC2130_MINIMUM_DELAY; WRITE(Z_STEP_PIN, INVERT_Z_STEP_PIN); } +#define _DO_STEP_E { WRITE(E0_STEP_PIN, !INVERT_E_STEP_PIN); TMC2130_MINIMUM_DELAY; WRITE(E0_STEP_PIN, INVERT_E_STEP_PIN); } #endif diff --git a/Firmware/tmc2130.h b/Firmware/tmc2130.h index 4b5b764ce..36ba55522 100644 --- a/Firmware/tmc2130.h +++ b/Firmware/tmc2130.h @@ -33,6 +33,12 @@ extern uint8_t tmc2130_sg_homing_axes_mask; #define TMC2130_SET_DIR_DELAY 20 // minimum delay after setting direction in uS #define TMC2130_SET_PWR_DELAY 0 // minimum delay after changing pwr mode in uS +#if TMC2130_MINIMUM_PULSE == 0 +#define TMC2130_MINIMUM_DELAY //NOP +#else +#define TMC2130_MINIMUM_DELAY delayMicroseconds(TMC2130_MINIMUM_PULSE) +#endif + extern uint8_t tmc2130_home_enabled; extern uint8_t tmc2130_home_origin[2]; extern uint8_t tmc2130_home_bsteps[2];