aboutsummaryrefslogtreecommitdiffstats
path: root/klippy
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-05-04 12:27:52 -0400
committerKevin O'Connor <kevin@koconnor.net>2018-05-07 09:10:34 -0400
commit22487d95e9b9b0ada171c72df5f5fbb3f3985724 (patch)
tree504aab38c166e18c0af7580b53d57a70e3788e52 /klippy
parent838da992e80808ad396a2a9afe119419935d9b56 (diff)
downloadkutter-22487d95e9b9b0ada171c72df5f5fbb3f3985724.tar.gz
kutter-22487d95e9b9b0ada171c72df5f5fbb3f3985724.tar.xz
kutter-22487d95e9b9b0ada171c72df5f5fbb3f3985724.zip
spicmds: Rework SPI message transmission
Improve the SPI message transmit system. Add support for bus speed and bus mode. Add support for sending SPI messages on shutdown. Signed-off-by: Petri Honkala <cruwaller@gmail.com> Signed-off-by: Douglas Hammond <wizhippo@gmail.com> Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy')
-rw-r--r--klippy/extras/ad5206.py23
1 files changed, 13 insertions, 10 deletions
diff --git a/klippy/extras/ad5206.py b/klippy/extras/ad5206.py
index e5bc96d3..a4764464 100644
--- a/klippy/extras/ad5206.py
+++ b/klippy/extras/ad5206.py
@@ -11,21 +11,24 @@ class ad5206:
enable_pin_params = ppins.lookup_pin('digital_out', enable_pin)
if enable_pin_params['invert']:
raise ppins.error("ad5206 can not invert pin")
- self.mcu = enable_pin_params['chip']
- self.pin = enable_pin_params['pin']
- self.mcu.add_config_object(self)
+ mcu = enable_pin_params['chip']
+ pin = enable_pin_params['pin']
scale = config.getfloat('scale', 1., above=0.)
- self.channels = [None] * 6
- for i in range(len(self.channels)):
+ channels = [None]*6
+ for i in range(len(channels)):
val = config.getfloat('channel_%d' % (i+1,), None,
minval=0., maxval=scale)
if val is not None:
- self.channels[i] = int(val * 256. / scale + .5)
- def build_config(self):
- for i, val in enumerate(self.channels):
+ channels[i] = int(val * 256. / scale + .5)
+ oid = mcu.create_oid()
+ mcu.add_config_cmd(
+ "config_spi oid=%d bus=%d pin=%s mode=%u rate=%u shutdown_msg=" % (
+ oid, 0, pin, 0, 25000000))
+ for i, val in enumerate(channels):
if val is not None:
- self.mcu.add_config_cmd(
- "send_spi_message pin=%s msg=%02x%02x" % (self.pin, i, val))
+ mcu.add_config_cmd(
+ "spi_send oid=%d data=%02x%02x" % (oid, i, val),
+ is_init=True)
def load_config_prefix(config):
return ad5206(config)