TMC5160使用相关问题1

📅 2026/8/22 3:11:04
TMC5160使用相关问题1
现象使用stealthChop或spreadCycle模式时老是出现S2VS被设置为1即A相对电压短路。最终原因两个任务一个A任务500ms打印各种寄存器的数据并串口输出一个B任务2ms获取RAMPSTAT寄存器的值但是底层通过SPI获取寄存器值SPI读写接口已经加锁。但是TMC5160对寄存器的读取是分为两步先发送地址再读取数据。导致在某些时刻A任务发送了第一步地址然后被B任务切走B任务读取了RAMPSTAT值再切回A任务时再次获取的就是RAMPSTAT的缓存值而不是DRV_STATUS的值。证据就是DRV_STATUS和RAMPSTAT的值一样。解决方案两个任务对TMC5160寄存器访问的最上层接口加锁解决。