aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras
diff options
context:
space:
mode:
authorFlorian Heilmann <Florian.Heilmann@gmx.net>2018-10-24 22:01:12 +0200
committerKevinOConnor <kevin@koconnor.net>2018-10-24 16:01:12 -0400
commitb6bf4551551e5a20cf420a1d3c5049d601d941c3 (patch)
tree67862cb4abda34887111180908b084c075ab6f88 /klippy/extras
parent1a437c1fd1a428b9a1495a74da6a0f3d19de0c14 (diff)
downloadkutter-b6bf4551551e5a20cf420a1d3c5049d601d941c3.tar.gz
kutter-b6bf4551551e5a20cf420a1d3c5049d601d941c3.tar.xz
kutter-b6bf4551551e5a20cf420a1d3c5049d601d941c3.zip
tmc2660: Add endstop phase detection functionality to TMC2660 extra (#816)
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
Diffstat (limited to 'klippy/extras')
-rw-r--r--klippy/extras/endstop_phase.py2
-rw-r--r--klippy/extras/tmc2660.py13
2 files changed, 13 insertions, 2 deletions
diff --git a/klippy/extras/endstop_phase.py b/klippy/extras/endstop_phase.py
index 81d9b147..20ddd340 100644
--- a/klippy/extras/endstop_phase.py
+++ b/klippy/extras/endstop_phase.py
@@ -6,7 +6,7 @@
import math, logging
import homing
-TRINAMIC_DRIVERS = ["tmc2130", "tmc2208"]
+TRINAMIC_DRIVERS = ["tmc2130", "tmc2208", "tmc2660"]
class EndstopPhase:
def __init__(self, config):
diff --git a/klippy/extras/tmc2660.py b/klippy/extras/tmc2660.py
index ec177efa..6f14f7ac 100644
--- a/klippy/extras/tmc2660.py
+++ b/klippy/extras/tmc2660.py
@@ -162,7 +162,7 @@ class TMC2660:
self.driver_sdoff = False # since we don't support SPI mode yet, this has to be False
vsense = {'low': 0, 'high': 1}
self.driver_vsense = config.getchoice('driver_VSENSE', vsense, default='high')
- self.driver_rdsel = 2 # stallguard2 and coolstep current level
+ self.driver_rdsel = 0 # Microsteps (used by endstop phase)
# Build and send registers
@@ -248,6 +248,17 @@ class TMC2660:
self.is_idle = True
return eventtime + 0.1
+ def get_microsteps(self):
+ return 256 >> self.driver_mres
+
+ def get_phase(self):
+ # Send DRVCTRL to get a response
+ reg_data = [(self.reg_drvctrl >> 16) & 0xff, (self.reg_drvctrl >> 8) & 0xff, self.reg_drvctrl & 0xff]
+ params = self.spi_transfer_cmd.send_with_response([self.oid, reg_data], 'spi_transfer_response', self.oid)
+ pr = bytearray(params['response'])
+ steps = (((pr[0] << 16) | (pr[1] << 8) | pr[2]) & READRSP['MSTEP'][1]) >> READRSP['MSTEP'][0]
+ return steps >> self.driver_mres
+
def set_current(self, current):
self.driver_cs = current_to_reg(current)
reg = self.reg_sgcsconf