pyb SPI bits can be 8 or 16, but TMC5130-TA is use 40 bit SPI. Does Pyboard have a way to communicate with this chip?
datasheet:https://www.trinamic.com/fileadmin/asse ... ev1.15.pdf
Chapter 4 on page 21, description of SPI
Thanks
How to communicate with 40 bit SPI
Re: How to communicate with 40 bit SPI
Just sent 5 bytes (= 40 bits).
Re: How to communicate with 40 bit SPI
Here is my code, but it doesn't works.
Code: Select all
def writeReg(self,regaddr,data):
self.tmc_cs.low()
self.spi.send(regaddr|0x80)
self.spi.send(0xFF & (data>>24))
self.spi.send(0xFF & (data>>16))
self.spi.send(0xFF & (data>>8))
self.spi.send(0xFF & (data>>0))
self.tmc_cs.high()
Re: How to communicate with 40 bit SPI
Pack your regaddr and data to one 5-byte bytearray and send it in one SPI transaction.
Re: How to communicate with 40 bit SPI
Code: Select all
def writeReg(self,regaddr,data):
self.tmc_cs.low()
ba=bytes([regaddr|0x80,0xFF&(data>>24),0xFF&(data>>16),0xFF&(data>>8),0xFF&data])
reg_val=self.spi.send_recv(ba)
self.tmc_cs.high()
self.reg_status=reg_val[0]>>32
return reg_val