diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2018-05-04 20:23:58 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2018-05-07 09:10:34 -0400 |
commit | f70fefa06f9fe1aaca8c6303f0ee9e904a6f3623 (patch) | |
tree | d806c232bef22284960c8d9911cd6b8cc8306b30 /klippy/extras/replicape.py | |
parent | 31ae74c56c9663fdbcc8f332efd0e331d2e024ff (diff) | |
download | kutter-f70fefa06f9fe1aaca8c6303f0ee9e904a6f3623.tar.gz kutter-f70fefa06f9fe1aaca8c6303f0ee9e904a6f3623.tar.xz kutter-f70fefa06f9fe1aaca8c6303f0ee9e904a6f3623.zip |
linux: Convert linux SPI code to use the generic spicmds.c code
Use the generic spi send/receive code on Linux. Update the replicape
code to use the updated command format.
Also, update the replicape code to turn off the stepper motors on a
shutdown event.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/replicape.py')
-rw-r--r-- | klippy/extras/replicape.py | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/klippy/extras/replicape.py b/klippy/extras/replicape.py index 1f5ec50b..5bc851e9 100644 --- a/klippy/extras/replicape.py +++ b/klippy/extras/replicape.py @@ -7,8 +7,7 @@ import logging import pins, mcu REPLICAPE_MAX_CURRENT = 3.84 -REPLICAPE_SHIFT_REGISTER_BUS = 1 -REPLICAPE_SHIFT_REGISTER_DEVICE = 1 +REPLICAPE_SHIFT_REGISTER_BUS = 0x0101 REPLICAPE_PCA9685_BUS = 2 REPLICAPE_PCA9685_ADDRESS = 0x70 REPLICAPE_PCA9685_CYCLE_TIME = .001 @@ -137,7 +136,7 @@ class Replicape: "power_fan0": (pca9685_pwm, 7), "power_fan1": (pca9685_pwm, 8), "power_fan2": (pca9685_pwm, 9), "power_fan3": (pca9685_pwm, 10) } # Setup stepper config - self.send_spi_cmd = None + self.spi_send_cmd = None self.last_stepper_time = 0. self.stepper_dacs = {} shift_registers = [1, 0, 0, 1, 1] @@ -177,13 +176,18 @@ class Replicape: shift_registers[4] &= ~1 self.sr_enabled = tuple(reversed(shift_registers)) self.host_mcu.add_config_object(self) - self.host_mcu.add_config_cmd("send_spi bus=%d dev=%d msg=%s" % ( - REPLICAPE_SHIFT_REGISTER_BUS, REPLICAPE_SHIFT_REGISTER_DEVICE, - "".join(["%02x" % (x,) for x in self.sr_disabled]))) + self.sr_oid = self.host_mcu.create_oid() + str_sr_disabled = "".join(["%02x" % (x,) for x in self.sr_disabled]) + self.host_mcu.add_config_cmd( + "config_spi_without_cs oid=%d bus=%d mode=0 rate=50000000" + " shutdown_msg=%s" % ( + self.sr_oid, REPLICAPE_SHIFT_REGISTER_BUS, str_sr_disabled)) + self.host_mcu.add_config_cmd("spi_send oid=%d data=%s" % ( + self.sr_oid, str_sr_disabled), is_init=True) def build_config(self): cmd_queue = self.host_mcu.alloc_command_queue() - self.send_spi_cmd = self.host_mcu.lookup_command( - "send_spi bus=%u dev=%u msg=%*s", cq=cmd_queue) + self.spi_send_cmd = self.host_mcu.lookup_command( + "spi_send oid=%c data=%*s", cq=cmd_queue) def note_pwm_start_value(self, channel, start_value, shutdown_value): self.mcu_pwm_start_value |= not not start_value self.mcu_pwm_shutdown_value |= not not shutdown_value @@ -215,10 +219,8 @@ class Replicape: return print_time = max(print_time, self.last_stepper_time + PIN_MIN_TIME) clock = self.host_mcu.print_time_to_clock(print_time) - # XXX - the send_spi message should be scheduled - self.send_spi_cmd.send([REPLICAPE_SHIFT_REGISTER_BUS, - REPLICAPE_SHIFT_REGISTER_DEVICE, sr], - minclock=clock, reqclock=clock) + # XXX - the spi_send message should be scheduled + self.spi_send_cmd.send([self.sr_oid, sr], minclock=clock, reqclock=clock) def setup_pin(self, pin_params): pin = pin_params['pin'] if pin not in self.pins: |