tmc: Configurable `multistep_filt`

Signed-off-by: Alex Voinea <voinea.dragos.alexandru@gmail.com>
This commit is contained in:
Alex Voinea 2023-03-30 18:08:56 +02:00 committed by KevinOConnor
parent 6cbb6f144b
commit 5ee72d320c
6 changed files with 16 additions and 5 deletions

View File

@ -20,6 +20,9 @@ parameters if `[input_shaper]` was enabled already.
20230407: The `stalled_bytes` counter in the log and in the 20230407: The `stalled_bytes` counter in the log and in the
`printer.mcu.last_stats` field has been renamed to `upcoming_bytes`. `printer.mcu.last_stats` field has been renamed to `upcoming_bytes`.
20230323: On tmc5160 drivers `multistep_filt` is now enabled by default. Set
`driver_MULTISTEP_FILT: False` in the tmc5160 config for the previous behavior.
20230304: The `SET_TMC_CURRENT` command now properly adjusts the globalscaler 20230304: The `SET_TMC_CURRENT` command now properly adjusts the globalscaler
register for drivers that have it. This removes a limitation where on tmc5160, register for drivers that have it. This removes a limitation where on tmc5160,
the currents could not be raised higher with `SET_TMC_CURRENT` than the the currents could not be raised higher with `SET_TMC_CURRENT` than the

View File

@ -3202,6 +3202,7 @@ run_current:
# set, "stealthChop" mode will be enabled if the stepper motor # set, "stealthChop" mode will be enabled if the stepper motor
# velocity is below this value. The default is 0, which disables # velocity is below this value. The default is 0, which disables
# "stealthChop" mode. # "stealthChop" mode.
#driver_MULTISTEP_FILT: True
#driver_IHOLDDELAY: 8 #driver_IHOLDDELAY: 8
#driver_TPOWERDOWN: 20 #driver_TPOWERDOWN: 20
#driver_TBL: 2 #driver_TBL: 2
@ -3243,6 +3244,7 @@ run_current:
# The address of the TMC2209 chip for UART messages (an integer # The address of the TMC2209 chip for UART messages (an integer
# between 0 and 3). This is typically used when multiple TMC2209 # between 0 and 3). This is typically used when multiple TMC2209
# chips are connected to the same UART pin. The default is zero. # chips are connected to the same UART pin. The default is zero.
#driver_MULTISTEP_FILT: True
#driver_IHOLDDELAY: 8 #driver_IHOLDDELAY: 8
#driver_TPOWERDOWN: 20 #driver_TPOWERDOWN: 20
#driver_TBL: 2 #driver_TBL: 2
@ -3417,6 +3419,7 @@ run_current:
# to tune a motor with unbalanced coils. See the `Sine Wave Lookup Table` # to tune a motor with unbalanced coils. See the `Sine Wave Lookup Table`
# section in the datasheet for information about this field and how to tune # section in the datasheet for information about this field and how to tune
# it. # it.
#driver_MULTISTEP_FILT: True
#driver_IHOLDDELAY: 6 #driver_IHOLDDELAY: 6
#driver_IRUNDELAY: 4 #driver_IRUNDELAY: 4
#driver_TPOWERDOWN: 10 #driver_TPOWERDOWN: 10
@ -3532,6 +3535,7 @@ run_current:
# values used by the driver. The value must be specified as a decimal integer # values used by the driver. The value must be specified as a decimal integer
# (hex form is not supported). In order to compute the wave table fields, # (hex form is not supported). In order to compute the wave table fields,
# see the tmc2130 "Calculation Sheet" from the Trinamic website. # see the tmc2130 "Calculation Sheet" from the Trinamic website.
#driver_MULTISTEP_FILT: True
#driver_IHOLDDELAY: 6 #driver_IHOLDDELAY: 6
#driver_TPOWERDOWN: 10 #driver_TPOWERDOWN: 10
#driver_TBL: 2 #driver_TBL: 2

View File

@ -197,10 +197,11 @@ class TMC2208:
self.get_status = cmdhelper.get_status self.get_status = cmdhelper.get_status
# Setup basic register values # Setup basic register values
self.fields.set_field("mstep_reg_select", True) self.fields.set_field("mstep_reg_select", True)
self.fields.set_field("multistep_filt", True)
tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY)
# Allow other registers to be set from the config # Allow other registers to be set from the config
set_config_field = self.fields.set_config_field set_config_field = self.fields.set_config_field
# GCONF
set_config_field(config, "multistep_filt", True)
# CHOPCONF # CHOPCONF
set_config_field(config, "toff", 3) set_config_field(config, "toff", 3)
set_config_field(config, "hstrt", 5) set_config_field(config, "hstrt", 5)

View File

@ -73,10 +73,11 @@ class TMC2209:
self.get_status = cmdhelper.get_status self.get_status = cmdhelper.get_status
# Setup basic register values # Setup basic register values
self.fields.set_field("mstep_reg_select", True) self.fields.set_field("mstep_reg_select", True)
self.fields.set_field("multistep_filt", True)
tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY)
# Allow other registers to be set from the config # Allow other registers to be set from the config
set_config_field = self.fields.set_config_field set_config_field = self.fields.set_config_field
# GCONF
set_config_field(config, "multistep_filt", True)
# CHOPCONF # CHOPCONF
set_config_field(config, "toff", 3) set_config_field(config, "toff", 3)
set_config_field(config, "hstrt", 5) set_config_field(config, "hstrt", 5)

View File

@ -354,12 +354,13 @@ class TMC2240:
self.get_phase_offset = cmdhelper.get_phase_offset self.get_phase_offset = cmdhelper.get_phase_offset
self.get_status = cmdhelper.get_status self.get_status = cmdhelper.get_status
# Setup basic register values # Setup basic register values
self.fields.set_field("multistep_filt", True)
tmc.TMCWaveTableHelper(config, self.mcu_tmc) tmc.TMCWaveTableHelper(config, self.mcu_tmc)
self.fields.set_config_field(config, "offset_sin90", 0) self.fields.set_config_field(config, "offset_sin90", 0)
tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY)
# CHOPCONF
set_config_field = self.fields.set_config_field set_config_field = self.fields.set_config_field
# GCONF
set_config_field(config, "multistep_filt", True)
# CHOPCONF
set_config_field(config, "toff", 3) set_config_field(config, "toff", 3)
set_config_field(config, "hstrt", 5) set_config_field(config, "hstrt", 5)
set_config_field(config, "hend", 2) set_config_field(config, "hend", 2)

View File

@ -334,10 +334,11 @@ class TMC5160:
self.get_phase_offset = cmdhelper.get_phase_offset self.get_phase_offset = cmdhelper.get_phase_offset
self.get_status = cmdhelper.get_status self.get_status = cmdhelper.get_status
# Setup basic register values # Setup basic register values
self.fields.set_field("multistep_filt", True)
tmc.TMCWaveTableHelper(config, self.mcu_tmc) tmc.TMCWaveTableHelper(config, self.mcu_tmc)
tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY) tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY)
set_config_field = self.fields.set_config_field set_config_field = self.fields.set_config_field
# GCONF
set_config_field(config, "multistep_filt", True)
# CHOPCONF # CHOPCONF
set_config_field(config, "toff", 3) set_config_field(config, "toff", 3)
set_config_field(config, "hstrt", 5) set_config_field(config, "hstrt", 5)