aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/tmc2130.py
diff options
context:
space:
mode:
authorAlex Voinea <voinea.dragos.alexandru@gmail.com>2022-12-22 03:23:23 +0100
committerGitHub <noreply@github.com>2022-12-21 21:23:23 -0500
commit9b60daf62dd7c02164c53f2baa72e3e6c8af441f (patch)
treeb70abfddf2e68cba3e9ba97c1ce84a70f36d1794 /klippy/extras/tmc2130.py
parentaac613bf44ca1feb4334ab35378b48711baccb60 (diff)
downloadkutter-9b60daf62dd7c02164c53f2baa72e3e6c8af441f.tar.gz
kutter-9b60daf62dd7c02164c53f2baa72e3e6c8af441f.tar.xz
kutter-9b60daf62dd7c02164c53f2baa72e3e6c8af441f.zip
tmc: Configurable microstep lookup table (#5920)
Make all the microstep lookup table registers configurable via the config file. It also loads the default values. TMC220x and TMC2660 do not support this feature. Signed-off-by: Alex Voinea <voinea.dragos.alexandru@gmail.com>
Diffstat (limited to 'klippy/extras/tmc2130.py')
-rw-r--r--klippy/extras/tmc2130.py32
1 files changed, 28 insertions, 4 deletions
diff --git a/klippy/extras/tmc2130.py b/klippy/extras/tmc2130.py
index f2142d26..128c1d93 100644
--- a/klippy/extras/tmc2130.py
+++ b/klippy/extras/tmc2130.py
@@ -11,10 +11,12 @@ TMC_FREQUENCY=13200000.
Registers = {
"GCONF": 0x00, "GSTAT": 0x01, "IOIN": 0x04, "IHOLD_IRUN": 0x10,
"TPOWERDOWN": 0x11, "TSTEP": 0x12, "TPWMTHRS": 0x13, "TCOOLTHRS": 0x14,
- "THIGH": 0x15, "XDIRECT": 0x2d, "MSLUT0": 0x60, "MSLUTSEL": 0x68,
- "MSLUTSTART": 0x69, "MSCNT": 0x6a, "MSCURACT": 0x6b, "CHOPCONF": 0x6c,
- "COOLCONF": 0x6d, "DCCTRL": 0x6e, "DRV_STATUS": 0x6f, "PWMCONF": 0x70,
- "PWM_SCALE": 0x71, "ENCM_CTRL": 0x72, "LOST_STEPS": 0x73,
+ "THIGH": 0x15, "XDIRECT": 0x2d, "MSLUT0": 0x60, "MSLUT1": 0x61,
+ "MSLUT2": 0x62, "MSLUT3": 0x63, "MSLUT4": 0x64, "MSLUT5": 0x65,
+ "MSLUT6": 0x66, "MSLUT7": 0x67, "MSLUTSEL": 0x68, "MSLUTSTART": 0x69,
+ "MSCNT": 0x6a, "MSCURACT": 0x6b, "CHOPCONF": 0x6c, "COOLCONF": 0x6d,
+ "DCCTRL": 0x6e, "DRV_STATUS": 0x6f, "PWMCONF": 0x70, "PWM_SCALE": 0x71,
+ "ENCM_CTRL": 0x72, "LOST_STEPS": 0x73,
}
ReadRegisters = [
@@ -45,6 +47,27 @@ Fields["TSTEP"] = { "tstep": 0xfffff }
Fields["TPWMTHRS"] = { "tpwmthrs": 0xfffff }
Fields["TCOOLTHRS"] = { "tcoolthrs": 0xfffff }
Fields["THIGH"] = { "thigh": 0xfffff }
+Fields["MSLUT0"] = { "mslut0": 0xffffffff }
+Fields["MSLUT1"] = { "mslut1": 0xffffffff }
+Fields["MSLUT2"] = { "mslut2": 0xffffffff }
+Fields["MSLUT3"] = { "mslut3": 0xffffffff }
+Fields["MSLUT4"] = { "mslut4": 0xffffffff }
+Fields["MSLUT5"] = { "mslut5": 0xffffffff }
+Fields["MSLUT6"] = { "mslut6": 0xffffffff }
+Fields["MSLUT7"] = { "mslut7": 0xffffffff }
+Fields["MSLUTSEL"] = {
+ "x3": 0xFF << 24,
+ "x2": 0xFF << 16,
+ "x1": 0xFF << 8,
+ "w3": 0x03 << 6,
+ "w2": 0x03 << 4,
+ "w1": 0x03 << 2,
+ "w0": 0x03 << 0,
+}
+Fields["MSLUTSTART"] = {
+ "start_sin": 0xFF << 0,
+ "start_sin90": 0xFF << 16,
+}
Fields["MSCNT"] = { "mscnt": 0x3ff }
Fields["MSCURACT"] = { "cur_a": 0x1ff, "cur_b": 0x1ff << 16 }
Fields["CHOPCONF"] = {
@@ -268,6 +291,7 @@ class TMC2130:
self.get_phase_offset = cmdhelper.get_phase_offset
self.get_status = cmdhelper.get_status
# Setup basic register values
+ tmc.TMCWaveTableHelper(config, self.mcu_tmc)
tmc.TMCStealthchopHelper(config, self.mcu_tmc, TMC_FREQUENCY)
# Allow other registers to be set from the config
set_config_field = self.fields.set_config_field