qq恶搞代码大全可复制免费(恶搞代码大全可复制)
一:硬件准备
二:TMCL-IDE软件
1.安装TMCL-IDE软件
2. 电流设置
3. 速度控制
4. 位置控制
5.示波器功能:
6.不同斩波模式的切换
7.力矩模式Stallguard配置
8. 节能Coolstep配置
8-1 设置加速度, 速度, 灵敏度
8-2 切换到Coolstep栏
8-2-1 设置速度阈值
8-2-2 设置电流的最小值
8-2-3 电流下降过程的幅度
9. 静音Stealthchop配置
(1)第一代Stealthchop
(2)第二代Stealthchop
10.高速Spreadcycle配置
11. 如何移植开发板代码
12. 左右限位和急停配置
13.相关视频
14.文档版本
一:硬件准备
展开全文
二:TMCL-IDE软件
1.安装TMCL-IDE软件
软件下载链接
https://www.trinamic.com/support/software/tmcl-ide/
1.开发板的USB驱动会自动安装,打开TMCL-IDE软件后会自动识别所连接的型号,如下
2. 电流设置
设置运行电流和静止电流,根据电机的电流设置运行电流Maximum Current和静止电流
Standby Current如下图
设置电流的寄存器0x30:按照下图1-2-3完成电流设置。
以上二者操作其中一个即可完成配置,建议两者配合方便熟悉寄存器。
3. 速度控制
控制电机运行-速度模式 , 在Control mode中快速操作,按照以下步骤1-2-3-4-5,设置最大加速度和最大速度,方向。
-如下为在寄存器中配置速度模式
配置加速度寄存器0x26:AMAX;最大速度寄存器0x27:Vmax
-换算实际速度快速方法
单击
选择细分
可以从上面的TMCLAxisParameters的配置推导到下面的实际速度Physicalunits也可以在
Physicunitss设置实际目标速度推到上上面的速度和加速度配置,然后将推导出来的设置设
到最大速度或加速度寄存器里面
当选择了Online之后,会在电机运行过程中实时显示速度
4. 位置控制
控制电机运行-位置模式
TRINAMIC的带有运动控制的芯片如TMC5041/5072/5130/5160/5161…..在位置模式中有2种
轨迹曲线梯形加减速和SixPoint六点加减速
-快速配置梯形加减速:
通过手动选择最大速度,加速度和减速度,如下
通过左侧设置目标位置
Moveto:绝对值位置模式后面的数值相对零点来运行
MoveBy:增量位置模式,后面的所在位置的起点相对于上一个位置结束点来说
如果选择以下1-2-3配置后电机会来回重复运行。
在寄存器中配置梯形加减速:
在寄存中找到最大速度Vmax,加速度AMAX和DMAX
VMAX:0x27;加速度AMAX:0x26;减速度DMAX:0x28
可以在下图中快速搜索,将搜索的想要配置的寄存器前面选择上✔
VMAX:0x27;加速度AMAX:0x26;减速度DMAX:0x28
设置完上述的速度,加减速之后,在目标位置寄存器设置目标位置之后电机就会按照上述的
速度和加减速运行到目标位置,
目标位置寄存器是XACTUAL0x21
以上介绍了梯形加减速的位置控制的2种配置模式,对于SixPoint加减速曲线模式方法一样,
在这里就不多叙述。
5.示波器功能:
在左侧的Infograph中打开示波器功能,可以实时显示电机的速度或者位置,而且可以将
数值导出。
6.不同斩波模式的切换
TMC的芯片会有三种斩波模式低速Stealthchop,中速Spreadcycle(适应Coolstep)和高速模式
(Highspeed整步模式),模式的切换是通过配置速度自动完成,不同芯片会有差异
(1) 如TMC5041/TMC5072/TMC5130是通过配置速度参数VCOOLTHRS和VHIGH
实际速度VACT ≤VCOOLTHRS时Stealthchop才能在配置之后起作用
当VHIGH≥|VACT|≥VCOOLTHRS时,Spreadcycle起作用,只有在这个范围内才可以启动
Coolstep,Stallguard(第四代的Stallguard和Coolstep不受这些限制,可以和Stealthchop同
时使用比如TMC2209等)
当实际速度VACT>VHIGH时电机工作在高速模式,此时是整步模式运行。
(2) 如TMC5160/5161/2208/2209是通过配置时间参数TPWMTHRS和THIGH
TPWMTHRS用来控制Stealthchop模式的最高速度阀值
THIGH用来控制Stallguard,coolstep模式的最高速度阀值和高速Highspeed的开始阀值
将电机以速度模式运行到所希望的转速此时读去TSTEP寄存器(两个细分之后微步的时间
值):
当TSTEP≥TPWMTHRS如果Stealchop模式被配置之后就会起作用
当TCOOLTHRS≥TSTEP≥THIGHCoolStep起作用,如果被配置之后;Stealthchop不起作用
当TCOOLTHRS≥TSTEP当Stallguard被配置后在过载时电机会自动停止,并且有信号输出
当TSTEP≤THIGH时CoolStep和Stealthchop不起作用,如果vhighfS被配置电机会工作
在整步模式
7.力矩模式Stallguard配置
Stallgurad无传感器负载检测功能,由于Stallguard是利用电机运行起来之后的反电势推算外部负载,因此Stallguard不适应电机的速度太低或者太高情况。
Stallguard的配置步骤以及方法如下:
7-1:设置目标速度
7-2:单击Coolstep&StallGuard
Stallguard的原来是是设置一个对外部力的敏感度通过StallguardthreShold(寄存器
COOLCONF_M106Dsgt)该数值越小灵敏度越高,该数值越大灵敏度越低区别就是外部增大负载之后,StallguardValue数值变化,注意:StallguardValue(寄存器0x6FSG_RESULT)的反馈数值和实际外部负载力相反,也就是外部力越大的时候,Stallguardvalue数值越接近于0,Stallguardthreshould数值越小的时候越灵敏StallguardValue越接近于0;当下面中StallguardVelocitythreshold中数值为非0的时候,而外部的负载大到使Stallguard value等于0时候,此时电机会自动停止。
StallguardVelocitythreshold是启动自动停止的速度阀值当速度超过这个速度的时候,StallguardValue=0的时候电机才会停止,否则电机不会停止。
SatllGuard Velocity Threshold由VCOOLTHRS0x31配置
详情参考各个芯片的dataSheet
把速度设置为目标速度之后可以调整灵敏度参数Stallguardthreshold来配置外部需要多少力
才可以让电机停止也就是使用Stallguardvalue=0
下图为同一速度不同StallguardthreShold下的Stallguardvalue(蓝色曲线反应外部力情况,
负载越大值越小)
Stallguardthreshold=12
上图为StallguardthreShold=2此时只要外部施加少许力电机就会停止(因为此时的
Stallguardvalue更接近于0)。
Stallguard功能可以实现不需要力传感器情况下的力控制,比如压力控制,无传感器回
零等。
8. 节能Coolstep配置
Coolstep配置相比如传统的步进电机是恒流驱动,为了不使电机丢步,只能把驱动电
流设置的很高,这样会带来功耗比较大,电机容易发热,容易产生剩磁震动等问题.Coolstep
是基于电机的反电动势动态控制输出电流,负载大的时候电流自动增加,负载小的时候电流
自动下降,相比传统的恒流驱动Coolstep可以节省80%的能量。
Coolstep是在调节好Stallguard的基础上来配置的,需要首先配置SGTStallguardthreShold(寄
存器COOLCONF_M10x6Dsgt)
8-1 设置加速度, 速度, 灵敏度
通过下图的1-2-3设置加速度,速度和灵敏度参数StallGuardthreshold寄存器0x6D下
图为2
保证增大负载时候Stallguardvalue(寄存器0x6FSG_RESULT)下将,负载减小时StallguardValue
上升
8-2 切换到Coolstep栏
8-2-1 设置速度阈值
Coolstep Velocity threshold设置Coolstep功能起作用的速度阀值,当实际速度高于该数值的
时候Coolstep不起作用,该寄存器由0x31 VCOOLTHRS决定
例如目前电机速度是50000当Coolstep velocity threshold大于50000时Coolstep不起作用
8-2-2 设置电流的最小值
Current minimum设置电流的最小值(当负载小的时候电流到达的数值为最大电
流的1/2或1/4)
Current Minimum所对应的寄存器如下 0x6D-seimin
下图为Currentminimun为1/2和1/4最小电流的对比
8-2-3 电流下降过程的幅度
current down step:电流下降过程的幅度
Current up step:电流上升的幅度
Current down step对应的寄存器为COOLCONF_M1-0x6D-sedn如下图
Current upstep对应的寄存器为 COOLCONF_M1-0x6D-seup 如下图
8-2-4:Hysteresis Start:当Stallguard Value(寄存器0x6FSG_RESULT)下图蓝色曲线低于该数值
的时候电流增加至最大电流。
Hysteresis Start对应的寄存器为COOLCONF_M1-0x6D-semin如下图
如下图所示当Stallguard Value蓝色曲线低于Hysteresis Start蓝色柱型底部,表示外部负载很
大;电流就会自动升至最大值以克服外部的负载红色曲线所示。
Hysteresis width:当StallguardValue(寄存器0x6FSG_RESULT)下图蓝色曲线等于或高于该数值
(蓝色柱型顶部)的时候电流会自动下降至最小电流值。
Hysteresis width对应的寄存器为COOLCONF_M1-0x6D-semax如下图
如下图当Stallguard value高于或等于Hysteresis width(蓝色柱状顶部)表示外部的负载很小,
此时电流会自动下降至最小电流
如下图电流会根据Stallguard的数值(反应的是外部负载)自动调节电流,以实现最佳能耗
9. 静音Stealthchop配置
TRINAMIC的静音斩波Stealthchop到目前一共有2代
早期的TMC5130/2100/2130/5041/5072是第一代Stealthchop
之后的TMC5160/5161/2208/2209/2160/2225是第二代的,区别是第二代的Stealthchop可以
自动配置AUTOTUNING
(1)第一代Stealthchop
Stealthchop是电压的斩波模式可实现低速静音,平稳运行。高速时候切换到Spreadcycle
模式的切换是通过不同的速度来实现,VCOOLTHRS(0x31)寄存器用来选择模式
该参数是使能Coolstep的最低速度值,是使能Stealthchop的最高速度值
如果Coolstep配置的话当VHIGH≥|VACT实际速度|≥VCOOLTHR时Coolstep起作用
当Stealthchop配置时,|VACT实际速度| ≤VCOOLTHR时Stealthchop起作用
每款芯片的datasheet会包括QuickConfigurationGuide里面有详细如何逐步配置Stealthchop
和Spreadcycle
9-1:将VCOOLTHRS 0x31设为1700000因此只有实际速度低于1700000pps Stealthchop才
起作用。
9-2:配置PWM_Autoscale
将PWM_Autoscale设为high
9-3:配置PWM_GRAD此处设置为3
注意:当PWM_GRAD=0的时候Stealthchop不起作用
9-4:配置PWM_AMPL用于配置Stealthchop速度变化时候由于相序跳变时候带来的电流过流
对于高阻值的电机PWM_AMPL可以设置为255
9-5:配置按照下图配置CHOPCONF对于寄存器Ox6C
9-6:在这之前请保证电机是静止状态。
在调试Stealthchop的时候原则是先设置一个很小的加速度然后慢慢提高速度
(2)第二代Stealthchop
用TMC5161来测试,如果有条件的话最好配备一个电流探头使
用示波器检测线圈电流,每款芯片的datasheet里面都会有如下快速配置指导
用电流探头检测电机线圈电流如果电流波形如第一个图的时候表示Stealthchop没有调试好,电流在加速和减速的时候有滞后现象,容易引起过流保护。下图的After Tuning是Stealthchop配置成功后的电流波形。
配置步骤如下:
(1)使能En_PWM_mode为High对应0x00寄存器如下图
(2)使能PWM_autoscale和PWM_autograd为High对应0x70寄存器,如下图
(3)配置下面2个寄存器
(4)开始AutoTuning
在电机停止时候(需要电机待机情况下超过130ms),
设置非常小的加速度AMAX0x26设置为50设置更小
设置非常小的速度VMAX对应0x27寄存器设置为10
在电机运动过程中确认PWM_SCALE_AUTO等于0,如果等于0的话PWM_SCALE_AUTO会被
自动写入PWM_GRAD_AUTO
然后逐步提供最大速度Vmax和重复确认PWM_SCALE_AUTO
直至加速到某个速度下电机会出现抖动,此时需要配置读取TSTEP参数将其设置到
TPWMTHRS寄存器,目的是切换至Spreadcycle模式
可以在每次开机回原点过程完成AUTOTUNING.
10.高速Spreadcycle配置
Spreadcycle是高速运行模式
如果Stealthchop和Spreadcycle一起用的话,通过VCOOLTHRS来切换,低速时候用Stealthchop
高速时候用Spreadcycle模式
如果是单独工作在Spreadcyc模式的话
参照以下步骤,详情参照Datasheet第14章节
11. 如何移植开发板代码
如何将开发板的配置快速移植到自己的MCU里?
将下面4的代码复制到自己的MCU里面
或将下面格式的代码复制到自己的MCU里面
12. 左右限位和急停配置
在带有MotionControl运动控制的芯片中,会具有左右限输入功能,如果将左右限位交由TMC芯片来处理的话,会降低MCU的负担和工作量。TMC5130/5160/5161/5041/5072…等带有运
动控制的TMC芯片会带有左右限位输入接口
上图从左往右依次是GND,R右限位输入,L左限位输入,5V输出+
下图为REFL和REFR外部接线示意
打开TMCL-IDE软件可以显示出左右限位状态,
默认情况下由于左限位L和右限位R内部上拉到5V因此默认状态为高电平。
以左限位为例Stop_L将Stop_L和GND短接后FlagView显示如下
左限位Stop_L变为低电平。
在寄存器中配置左右限位的寄存器为0x34:SW_MODE
Stop_L_enable:为使能左限位
Stop_R_enable:为使能右限位
如果想使用TMC的自动停止功能,在外部信号接进来能被感知之后,请使能相应的寄存器。
在此以使能右限位为例,使能Stop_R_enable如下图
此时需要保证电机停止,右限位为低电平
设置加速度AMAX和最大速度VMAX(注意默认往右方向旋转VMAX为正直,往左转VMAX
为负值)
此时电机右转,Stop_R为低电平,当Stop_R为高电平=1的时候电机停止,如果再次为低=0
电机继续右转。
Pol_stop_r可以将设置起作用的电平信号,当Pol_stop为0时高电平起作用,当Pol_stop
为1时低电平起作用。
例如将pol_stop_r设置为1时Stop_r为高电平时电机运行,为低电平时电机停止。
Swap_lr:可以将硬件的左右限位输入交换
TMC的芯片可以将到到限位的位置锁存在一个寄存器里面XLATCH0x36为触发限位锁存位置
的寄存器。
TMC还提供2种锁存当前位置的设置latch_r_active和latch_r_inactive
使能latch_r_active:在电机停止瞬间,当前位置会被锁存到XLATCH0x36
使能latch_r_inactive:在触发限位电机停止的时候并不会锁存当前位置而是当信号再次变
化电机开始运行瞬间锁存当前位置。
当带有编码器的时候,使能en_latch_encoder:当限位事件被触发之后当前位置的编码器
的数值会锁存到ENC_LATCH0x3C
Sg_stop:使用Stallguard功能使电机停止
请不要在电机加速阶段使能sg_stop必须要在电机达到最高速度,Stallguardvalue的数值
稳定时候才可以使能Sg_stop,如何使StallguardValue数值稳定可以通过调节TCOOLTHRS使
能stallguard。使能sg_stop后当Stallguardvalue等于0的时候电机会自动停止。该功能可
以用作无传感器回原点。
en_softstop:数值为0时硬停止即信号有变化时立即停止。
数值为1时激活软停止模式会按照Dmax,D1,VSTOP和TZEROWAIT的设定来
停止.
TZEROWAIT是用来设置电机速度降至为0时在执行下一运动中间的停止时间。
按照如下设置
当右限位触发之后电机会按照设置值减速至停止
13.相关视频
TMC5072视频介绍:
https://v.qq.com/x/page/l0747nirhdb.html?
如何从TMC4671开发板导出C代码:
https://v.qq.com/x/page/t3074g6n06a.html?
节能技术Coolstep:
https://v.qq.com/x/page/d30741v23rz.html?
无传感Stallguard:
https://v.qq.com/x/page/d3014mlftmz.html?
https://v.qq.com/x/page/f083363nh01.html?
TMC2208Stealthchop和Spreadcycle切换:
https://v.qq.com/x/page/f0923nuiowi.html?
第二代StealthchopTMC5160
https://v.qq.com/x/page/n300655p5qp.html?
https://v.youku.com/v_show/id_XNDM2Mzg0NTgwMA==.html
14.文档版本