ESP32与TLE5012B磁编码器SPI通信故障求助
ESP32与TLE5012B磁编码器通信故障求助
我在项目中遇到ESP32与TLE5012B磁编码器的通信难题已久。TLE5012B主接口为SSC(MOSI与MISO短接的三线SPI),曾尝试增量接口,但ESP32无法跟上导致精度不足。编写的MicroPython代码通过SPI通信时,接收寄存器rxdata始终为空。已调整CS引脚操作、微调原理图,问题仍未解决,恳请帮助。
代码
from machine import SPI, Pin spi = SPI(1, 40000000, sck=Pin(14), mosi=Pin(13), miso=Pin(12)) #defining the SPI object cs = Pin(19,mode=Pin.OUT, value=1) #defining chip select pin rxdata = bytearray(4) #defining a 4 byte array txdata = b'32801' print(rxdata,"rxdata") #reading empty rx data as bit strings print(txdata,"txdata") #reading tx data before sent as bit string cs(0) # Select peripheral. spi.write(txdata) # Write 8 bytes, and don't care about received data. # Select peripheral. spi.readinto(rxdata)#, 0x42) # Read 8 bytes inplace while writing 0x42 for each byte. cs(1) print(rxdata,"rxdata")
原理图
已按照网上教程及产品datasheet在面包板上完成接线:
已尝试操作
- 曾使用增量接口,但ESP32无法跟上导致数据精度严重不足
- 调整CS引脚操作、微调原理图后,问题仍存在
参考资料
- Arduino Nano上运行成功的TLE5012通信代码(来源Arduino论坛)
- MicroPython SPI教程(来源Adafruit、EngineersGarage)
- TLE5012B datasheet
- TLE5012B寄存器设置文档(读取数据的寄存器为1000000000100001)
- TLE5012B SPI电路文档(已翻译为中文)
内容的提问来源于stack exchange,提问作者Michael Blaine
相关产品推荐
相关产品推荐

