tmc5160: diag0 support (#3159)

Allow for diag0 only hardware to use sensorless homing.

Signed-off-by:  Trevor Jones <trevorjones141@gmail.com>
This commit is contained in:
Trevor Jones 2020-08-09 06:17:51 -06:00 committed by GitHub
parent ea5e76746a
commit efebbb9a2f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 36 additions and 24 deletions

View file

@ -182,11 +182,20 @@ class TMCCommandHelper:
# Helper class for "sensorless homing"
class TMCVirtualPinHelper:
def __init__(self, config, mcu_tmc, diag_pin):
def __init__(self, config, mcu_tmc):
self.printer = config.get_printer()
self.mcu_tmc = mcu_tmc
self.fields = mcu_tmc.get_fields()
self.diag_pin = diag_pin
if self.fields.lookup_register('diag0_stall') is not None:
if config.get('diag0_pin', None) is not None:
self.diag_pin = config.get('diag0_pin')
self.diag_pin_field = 'diag0_stall'
else:
self.diag_pin = config.get('diag1_pin', None)
self.diag_pin_field = 'diag1_stall'
else:
self.diag_pin = config.get('diag_pin', None)
self.diag_pin_field = None
self.mcu_endstop = None
self.en_pwm = False
self.pwmthrs = 0
@ -228,7 +237,7 @@ class TMCVirtualPinHelper:
else:
# On earlier drivers, "stealthchop" must be disabled
self.fields.set_field("en_pwm_mode", 0)
val = self.fields.set_field("diag1_stall", 1)
val = self.fields.set_field(self.diag_pin_field, 1)
self.mcu_tmc.set_register("GCONF", val)
self.mcu_tmc.set_register("TCOOLTHRS", 0xfffff)
def handle_homing_move_end(self, endstops):
@ -240,7 +249,7 @@ class TMCVirtualPinHelper:
val = self.fields.set_field("en_spreadCycle", not self.en_pwm)
else:
self.fields.set_field("en_pwm_mode", self.en_pwm)
val = self.fields.set_field("diag1_stall", 0)
val = self.fields.set_field(self.diag_pin_field, 0)
self.mcu_tmc.set_register("GCONF", val)
self.mcu_tmc.set_register("TCOOLTHRS", 0)