mirror of
https://github.com/andreili/klipper.git
synced 2025-08-24 03:44:06 +02:00
tmc: add enriched SPI read
Currently TMC spi just drop the data that could be useful. Export that data. Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
This commit is contained in:
parent
993cec0891
commit
33bd67f9b7
@ -200,12 +200,21 @@ class MCU_TMC_SPI_chain:
|
|||||||
cmd = self._build_cmd([reg, 0x00, 0x00, 0x00, 0x00], chain_pos)
|
cmd = self._build_cmd([reg, 0x00, 0x00, 0x00, 0x00], chain_pos)
|
||||||
self.spi.spi_send(cmd)
|
self.spi.spi_send(cmd)
|
||||||
if self.printer.get_start_args().get('debugoutput') is not None:
|
if self.printer.get_start_args().get('debugoutput') is not None:
|
||||||
return 0
|
return {
|
||||||
|
"spi_status": 0,
|
||||||
|
"data": 0,
|
||||||
|
"#receive_time": .0,
|
||||||
|
}
|
||||||
params = self.spi.spi_transfer(cmd)
|
params = self.spi.spi_transfer(cmd)
|
||||||
pr = bytearray(params['response'])
|
pr = bytearray(params['response'])
|
||||||
pr = pr[(self.chain_len - chain_pos) * 5 :
|
pr = pr[(self.chain_len - chain_pos) * 5 :
|
||||||
(self.chain_len - chain_pos + 1) * 5]
|
(self.chain_len - chain_pos + 1) * 5]
|
||||||
return (pr[1] << 24) | (pr[2] << 16) | (pr[3] << 8) | pr[4]
|
return {
|
||||||
|
"spi_status": pr[0],
|
||||||
|
"data": (pr[1] << 24) | (pr[2] << 16) | (pr[3] << 8) | pr[4],
|
||||||
|
"#receive_time": params["#receive_time"],
|
||||||
|
}
|
||||||
|
|
||||||
def reg_write(self, reg, val, chain_pos, print_time=None):
|
def reg_write(self, reg, val, chain_pos, print_time=None):
|
||||||
minclock = 0
|
minclock = 0
|
||||||
if print_time is not None:
|
if print_time is not None:
|
||||||
@ -258,11 +267,13 @@ class MCU_TMC_SPI:
|
|||||||
self.tmc_frequency = tmc_frequency
|
self.tmc_frequency = tmc_frequency
|
||||||
def get_fields(self):
|
def get_fields(self):
|
||||||
return self.fields
|
return self.fields
|
||||||
def get_register(self, reg_name):
|
def get_register_raw(self, reg_name):
|
||||||
reg = self.name_to_reg[reg_name]
|
reg = self.name_to_reg[reg_name]
|
||||||
with self.mutex:
|
with self.mutex:
|
||||||
read = self.tmc_spi.reg_read(reg, self.chain_pos)
|
resp = self.tmc_spi.reg_read(reg, self.chain_pos)
|
||||||
return read
|
return resp
|
||||||
|
def get_register(self, reg_name):
|
||||||
|
return self.get_register_raw(reg_name)["data"]
|
||||||
def set_register(self, reg_name, val, print_time=None):
|
def set_register(self, reg_name, val, print_time=None):
|
||||||
reg = self.name_to_reg[reg_name]
|
reg = self.name_to_reg[reg_name]
|
||||||
with self.mutex:
|
with self.mutex:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user