mirror of
https://github.com/Klipper3d/klipper.git
synced 2026-01-17 13:25:43 -07:00
Merge 9c6853f403 into 48f0b3cad6
This commit is contained in:
commit
b3744e7067
3 changed files with 10 additions and 5 deletions
|
|
@ -111,10 +111,10 @@ class MCU_SPI:
|
|||
return self.spi_transfer_cmd.send([self.oid, data],
|
||||
minclock=minclock, reqclock=reqclock)
|
||||
def spi_transfer_with_preface(self, preface_data, data,
|
||||
minclock=0, reqclock=0):
|
||||
minclock=0, reqclock=0, retry=True):
|
||||
return self.spi_transfer_cmd.send_with_preface(
|
||||
self.spi_send_cmd, [self.oid, preface_data], [self.oid, data],
|
||||
minclock=minclock, reqclock=reqclock)
|
||||
minclock=minclock, reqclock=reqclock, retry=retry)
|
||||
|
||||
# Helper to setup an spi bus from settings in a config section
|
||||
def MCU_SPI_from_config(config, mode, pin_option="cs_pin",
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ class SHT3X:
|
|||
self.reactor = self.printer.get_reactor()
|
||||
self.i2c = bus.MCU_I2C_from_config(
|
||||
config, default_addr=SHT3X_I2C_ADDR, default_speed=100000)
|
||||
self._error = self.i2c.get_mcu().error
|
||||
self._error = self.printer.command_error
|
||||
self.report_time = config.getint('sht3x_report_time', 1, minval=1)
|
||||
self.deviceId = config.get('sensor_type')
|
||||
self.temp = self.min_temp = self.max_temp = self.humidity = 0.
|
||||
|
|
|
|||
|
|
@ -192,20 +192,25 @@ class MCU_TMC_SPI_chain:
|
|||
share = "tmc_spi_cs"
|
||||
self.spi = bus.MCU_SPI_from_config(config, 3, default_speed=4000000,
|
||||
share_type=share)
|
||||
self._error = self.printer.command_error
|
||||
self.taken_chain_positions = []
|
||||
def _build_cmd(self, data, chain_pos):
|
||||
return ([0x00] * ((self.chain_len - chain_pos) * 5) +
|
||||
data + [0x00] * ((chain_pos - 1) * 5))
|
||||
def reg_read(self, reg, chain_pos):
|
||||
cmd = self._build_cmd([reg, 0x00, 0x00, 0x00, 0x00], chain_pos)
|
||||
self.spi.spi_send(cmd)
|
||||
if self.printer.get_start_args().get('debugoutput') is not None:
|
||||
self.spi.spi_send(cmd)
|
||||
return {
|
||||
"spi_status": 0,
|
||||
"data": 0,
|
||||
"#receive_time": .0,
|
||||
}
|
||||
params = self.spi.spi_transfer(cmd)
|
||||
# Optimize read by grouping write + transfer request
|
||||
try:
|
||||
params = self.spi.spi_transfer_with_preface(cmd, cmd, retry=False)
|
||||
except self._error:
|
||||
params = self.spi.spi_transfer(cmd)
|
||||
pr = bytearray(params['response'])
|
||||
pr = pr[(self.chain_len - chain_pos) * 5 :
|
||||
(self.chain_len - chain_pos + 1) * 5]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue