射天狼 发表于 2020-4-25 13:34:08

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?




823032003 发表于 2020-4-25 14:11:11

请问 负载检测 的原理是?

射天狼 发表于 2020-4-25 14:36:32

下图有说明:
stallGuard2技术会测量流入电动机的电能和再次流出电动机的电能。 两种能量之间的差表示从电机承受的机械负载。
判断哪部分能量给电机,哪部分回到电源。来判断负载情况


174962512wq 发表于 2020-4-25 20:39:29

厉害,这个自己还没有时间实验,后面多交流

nyszx 发表于 2020-4-25 22:02:10

看样子不错呀,现在手上有个项目用的是POWERSTEP01,看来可以换这个

sunzhilei123 发表于 2021-1-24 11:34:32

有没有弄过TMC2130的堵转功能?

ecbm 发表于 2021-3-30 00:15:47

可否提供一个堵转归零的例程呢?我试了两天总是不成功。
页: [1]
查看完整版本: TMC电机驱动,高精度的无传感器负载检测之堵转调试总结