diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2021-08-05 14:25:53 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2021-08-06 13:12:49 -0400 |
commit | 33dcb3829717102f5243ad805f3ee09d52c0c9cf (patch) | |
tree | 9cbbb18a4ce6bfebc54a60a395630c17e94849e9 /klippy/extras/tmc.py | |
parent | a52a627893071c0e68cd033ff4e745f017532ca2 (diff) | |
download | kutter-33dcb3829717102f5243ad805f3ee09d52c0c9cf.tar.gz kutter-33dcb3829717102f5243ad805f3ee09d52c0c9cf.tar.xz kutter-33dcb3829717102f5243ad805f3ee09d52c0c9cf.zip |
tmc: Consistently use lower case for all TMC field names
The Trinamic specs aren't consistent with upper vs lower case, which
can be confusing. Improve clarity by using lower case names
consistently in the code. Register names will continue to use all
upper case naming in the code.
Update the SET_TMC_FIELD command to automatically convert field names
to lower case.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/tmc.py')
-rw-r--r-- | klippy/extras/tmc.py | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/klippy/extras/tmc.py b/klippy/extras/tmc.py index 6868b994..6fa8af4e 100644 --- a/klippy/extras/tmc.py +++ b/klippy/extras/tmc.py @@ -96,18 +96,18 @@ class TMCErrorCheck: self.gstat_reg_info = None self.clear_gstat = True # Setup for DRV_STATUS query - self.irun_field = "IRUN" + self.irun_field = "irun" reg_name = "DRV_STATUS" mask = err_mask = cs_actual_mask = 0 if name_parts[0] == 'tmc2130': # TMC2130 driver quirks self.clear_gstat = False - cs_actual_mask = self.fields.all_fields[reg_name]["CS_ACTUAL"] + cs_actual_mask = self.fields.all_fields[reg_name]["cs_actual"] elif name_parts[0] == 'tmc2660': # TMC2660 driver quirks - self.irun_field = "CS" + self.irun_field = "cs" reg_name = "READRSP@RDSEL2" - cs_actual_mask = self.fields.all_fields[reg_name]["SE"] + cs_actual_mask = self.fields.all_fields[reg_name]["se"] err_fields = ["ot", "s2ga", "s2gb", "s2vsa", "s2vsb"] warn_fields = ["otpw", "t120", "t143", "t150", "t157"] for f in err_fields + warn_fields: @@ -140,8 +140,8 @@ class TMCErrorCheck: irun = self.fields.get_field(self.irun_field) if self.check_timer is None or irun < 4: break - if (self.irun_field == "IRUN" - and not self.fields.get_field("IHOLD")): + if (self.irun_field == "irun" + and not self.fields.get_field("ihold")): break # CS_ACTUAL field of zero - indicates a driver reset count += 1 @@ -215,7 +215,7 @@ class TMCCommandHelper: self._init_registers(print_time) cmd_SET_TMC_FIELD_help = "Set a register field of a TMC driver" def cmd_SET_TMC_FIELD(self, gcmd): - field_name = gcmd.get('FIELD') + field_name = gcmd.get('FIELD').lower() reg_name = self.fields.lookup_register(field_name, None) if reg_name is None: raise gcmd.error("Unknown field name '%s'" % (field_name,)) @@ -349,8 +349,8 @@ class TMCVirtualPinHelper: # Setup for sensorless homing reg = self.fields.lookup_register("en_pwm_mode", None) if reg is None: - self.en_pwm = not self.fields.get_field("en_spreadCycle") - self.pwmthrs = self.fields.get_field("TPWMTHRS") + self.en_pwm = not self.fields.get_field("en_spreadcycle") + self.pwmthrs = self.fields.get_field("tpwmthrs") else: self.en_pwm = self.fields.get_field("en_pwm_mode") self.pwmthrs = 0 @@ -366,29 +366,29 @@ class TMCVirtualPinHelper: reg = self.fields.lookup_register("en_pwm_mode", None) if reg is None: # On "stallguard4" drivers, "stealthchop" must be enabled - tp_val = self.fields.set_field("TPWMTHRS", 0) + tp_val = self.fields.set_field("tpwmthrs", 0) self.mcu_tmc.set_register("TPWMTHRS", tp_val) - val = self.fields.set_field("en_spreadCycle", 0) + val = self.fields.set_field("en_spreadcycle", 0) else: # On earlier drivers, "stealthchop" must be disabled self.fields.set_field("en_pwm_mode", 0) val = self.fields.set_field(self.diag_pin_field, 1) self.mcu_tmc.set_register("GCONF", val) - tc_val = self.fields.set_field("TCOOLTHRS", 0xfffff) + tc_val = self.fields.set_field("tcoolthrs", 0xfffff) self.mcu_tmc.set_register("TCOOLTHRS", tc_val) def handle_homing_move_end(self, hmove): if self.mcu_endstop not in hmove.get_mcu_endstops(): return reg = self.fields.lookup_register("en_pwm_mode", None) if reg is None: - tp_val = self.fields.set_field("TPWMTHRS", self.pwmthrs) + tp_val = self.fields.set_field("tpwmthrs", self.pwmthrs) self.mcu_tmc.set_register("TPWMTHRS", tp_val) - val = self.fields.set_field("en_spreadCycle", not self.en_pwm) + 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(self.diag_pin_field, 0) self.mcu_tmc.set_register("GCONF", val) - tc_val = self.fields.set_field("TCOOLTHRS", 0) + tc_val = self.fields.set_field("tcoolthrs", 0) self.mcu_tmc.set_register("TCOOLTHRS", tc_val) @@ -410,15 +410,15 @@ class TMCMicrostepHelper: steps = {'256': 0, '128': 1, '64': 2, '32': 3, '16': 4, '8': 5, '4': 6, '2': 7, '1': 8} mres = ms_config.getchoice('microsteps', steps) - self.fields.set_field("MRES", mres) + self.fields.set_field("mres", mres) self.fields.set_field("intpol", config.getboolean("interpolate", True)) def get_microsteps(self): - return 256 >> self.fields.get_field("MRES") + return 256 >> self.fields.get_field("mres") def get_phase(self): - field_name = "MSCNT" + field_name = "mscnt" if self.fields.lookup_register(field_name, None) is None: # TMC2660 uses MSTEP - field_name = "MSTEP" + field_name = "mstep" reg = self.mcu_tmc.get_register(self.fields.lookup_register(field_name)) mscnt = self.fields.get_field(field_name, reg) return 1023 - mscnt, 1024 @@ -432,13 +432,13 @@ def TMCStealthchopHelper(config, mcu_tmc, tmc_freq): stepper_name = " ".join(config.get_name().split()[1:]) stepper_config = config.getsection(stepper_name) step_dist = stepper.parse_step_distance(stepper_config) - step_dist_256 = step_dist / (1 << fields.get_field("MRES")) + step_dist_256 = step_dist / (1 << fields.get_field("mres")) threshold = int(tmc_freq * step_dist_256 / velocity + .5) - fields.set_field("TPWMTHRS", max(0, min(0xfffff, threshold))) + fields.set_field("tpwmthrs", max(0, min(0xfffff, threshold))) en_pwm_mode = True reg = fields.lookup_register("en_pwm_mode", None) if reg is not None: fields.set_field("en_pwm_mode", en_pwm_mode) else: # TMC2208 uses en_spreadCycle - fields.set_field("en_spreadCycle", not en_pwm_mode) + fields.set_field("en_spreadcycle", not en_pwm_mode) |