From 520273e5abfd9a3dd899f94b5df602669b655ec0 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Mon, 29 Nov 2021 16:41:48 -0500 Subject: stepper: Support step_pulse_duration even on TMC drivers in UART/SPI mode Commit 689231df changed the default step_pulse_duration to 100ns for TMC drivers that are configured in UART/SPI mode, but it failed to document that change in Config_Changes.md and Config_Reference.md. Update those documents to reflect that change. Update the code so that a user may specify a custom step_pulse_duration even on TMC drivers that are configured in UART/SPI mode. This may be useful for drivers that use a level shifter on the step pin that requires more than a ~300ns to detect a level change. Signed-off-by: Kevin O'Connor --- klippy/stepper.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'klippy/stepper.py') diff --git a/klippy/stepper.py b/klippy/stepper.py index 2e6655ef..4a4f9ea4 100644 --- a/klippy/stepper.py +++ b/klippy/stepper.py @@ -14,6 +14,8 @@ class error(Exception): # Steppers ###################################################################### +MIN_BOTH_EDGE_DURATION = 0.000000200 + # Interface to low-level mcu and chelper code class MCU_stepper: def __init__(self, name, step_pin_params, dir_pin_params, step_dist, @@ -70,7 +72,8 @@ class MCU_stepper: self._step_pulse_duration = .000002 invert_step = self._invert_step sbe = int(self._mcu.get_constants().get('STEPPER_BOTH_EDGE', '0')) - if self._req_step_both_edge and sbe: + if (self._req_step_both_edge and sbe + and self._step_pulse_duration <= MIN_BOTH_EDGE_DURATION): # Enable stepper optimized step on both edges self._step_both_edge = True self._step_pulse_duration = 0. -- cgit v1.2.3-70-g09d2