mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-08-07 22:14:05 -06:00
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:
parent
ea5e76746a
commit
efebbb9a2f
6 changed files with 36 additions and 24 deletions
|
@ -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)
|
||||
|
||||
|
|
|
@ -210,8 +210,7 @@ class TMC2130:
|
|||
self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters)
|
||||
self.mcu_tmc = MCU_TMC_SPI(config, Registers, self.fields)
|
||||
# Allow virtual pins to be created
|
||||
diag1_pin = config.get('diag1_pin', None)
|
||||
tmc.TMCVirtualPinHelper(config, self.mcu_tmc, diag1_pin)
|
||||
tmc.TMCVirtualPinHelper(config, self.mcu_tmc)
|
||||
# Register commands
|
||||
cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc)
|
||||
cmdhelper.setup_register_dump(ReadRegisters)
|
||||
|
|
|
@ -60,8 +60,7 @@ class TMC2209:
|
|||
FieldFormatters)
|
||||
self.mcu_tmc = tmc_uart.MCU_TMC_uart(config, Registers, self.fields, 3)
|
||||
# Allow virtual pins to be created
|
||||
diag_pin = config.get('diag_pin', None)
|
||||
tmc.TMCVirtualPinHelper(config, self.mcu_tmc, diag_pin)
|
||||
tmc.TMCVirtualPinHelper(config, self.mcu_tmc)
|
||||
# Register commands
|
||||
cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc)
|
||||
cmdhelper.setup_register_dump(ReadRegisters)
|
||||
|
|
|
@ -309,8 +309,7 @@ class TMC5160:
|
|||
self.fields = tmc.FieldHelper(Fields, SignedFields, FieldFormatters)
|
||||
self.mcu_tmc = tmc2130.MCU_TMC_SPI(config, Registers, self.fields)
|
||||
# Allow virtual pins to be created
|
||||
diag1_pin = config.get('diag1_pin', None)
|
||||
tmc.TMCVirtualPinHelper(config, self.mcu_tmc, diag1_pin)
|
||||
tmc.TMCVirtualPinHelper(config, self.mcu_tmc)
|
||||
# Register commands
|
||||
cmdhelper = tmc.TMCCommandHelper(config, self.mcu_tmc)
|
||||
cmdhelper.setup_register_dump(ReadRegisters)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue