TMC电机驱动,高精度的无传感器负载检测之堵转调试总结
本帖最后由 射天狼 于 2020-4-25 13:37 编辑这次测试TMC芯片的一个高级点的功能 高精度的无传感器负载检测
可以在线实时监测负载状态 这次调试这方面一个应用:堵转功能
测试板子:https://www.amobbs.com/thread-5728041-1-1.html
有的导轨两边不太方便装限位,也有的嫌线多 堵转就可以代替限位检测
可以通过寄存器设置堵转“劲儿”的大小甚至都可以设置成手一捏电机就停止状态 从而避免丢布 失速这类故障
涉及到的关键寄存器 直接搜索手册就可以
COOLCONF 地址0x6D sfilt sgt
DRV_STATUS 地址0X6F SG_RESULT和stallGuard
RAMP_STAT 地址0X35 event_stop_sg
SWMODE 地址0X34 sg_stop
主要配置步骤
1.使能SWMODE寄存器sg_stop
2.读写一次RAMPSTAT寄存器
堵转后需要重复读写一次或者每次发运动指令前 直接读写一次
regtemp=tmc_spi_readregister(slave,TMC5160_RAMPSTAT);
tmc_spi_writeregister(slave,TMC5160_RAMPSTAT ,regtemp);
3.配置TMC5160_TCOOLTHRS>=TSTEP 配置TMC5160_TCOOLTHRS尽量设置大点测试
TSTEP=Fclk/Fstep公式运行过程中有效 静止为最大值1048575
比如VMAX设置一秒5圈后
vmax*MotorTmc5160.microstep*200*tmc_fclk=5*256*200*1.048575=268435.2;
那么TSTEP=16000000/VMAX 约返回值 60左右 堵转或静止时数值会变的很大
下面是官方详细的电机堵转调试流程
实现原理和过程请看pdf
调试成功视频:{:lol:}
https://v.youku.com/v_show/id_XNDY0NzQ2NjA5Ng==.html?
请问 负载检测 的原理是? 下图有说明:
stallGuard2技术会测量流入电动机的电能和再次流出电动机的电能。 两种能量之间的差表示从电机承受的机械负载。
判断哪部分能量给电机,哪部分回到电源。来判断负载情况
厉害,这个自己还没有时间实验,后面多交流 看样子不错呀,现在手上有个项目用的是POWERSTEP01,看来可以换这个 有没有弄过TMC2130的堵转功能? 可否提供一个堵转归零的例程呢?我试了两天总是不成功。
页:
[1]