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 <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2021-11-29 16:41:48 -05:00
parent 54acca37ba
commit 520273e5ab
3 changed files with 11 additions and 5 deletions

View file

@ -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.