|
爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 dgpower 于 2019-12-17 19:36 编辑
TMC2208模块,现在一般是13-15块一片,比A4988/DRV8825可贵了不少。但它最大的优点是可以直接替换前者(16细分),不需要更改固件(主板或固件不开源),只需要简单将模块对应的步进电机,其中一组线圈的两根线,比如A+、A-对调一下,就可以了。带来的好处可是实实在在的:安静!它实际上是把主板16细分的驱动信号,通过芯片内部算法,模拟成256细分的信号,再输出来驱动步进电机。按广告说法,电机运行噪音可以降低10dB!
一、TMC2208的几种工作模式
它有三种工作模式:
第一种,常规模式。就是上面说的直接替换A4988/DRV8825的模式。在marlin固件里面,叫TMC2208_STANDALONE
这种模式最大的问题是带负载能力差。
我的测试结果,同样一个测试切片文件,A4988、DRV8825能顺利完成,但2208随着运行速度的增加,会逐渐出现丢步的现象。
在另外一个长方块的测试里,X方向正常,Y方向就随着层高的增加,逐步向一个方向偏移,很奇葩。
第二种模式是SPI。一般需要通过单独的硬件电路写芯片寄存器,比较复杂,用的人很少,就不详细介绍了。
第三种模式,叫UART模式。重点推介一下
这种模式下,可以实现TMC所有功能均通过软件在线设置:通过软件指令,直接调整驱动电流大小、驱动的硬件细分设置、改变驱动的工作模式;在驱动过热或者过载的时候,可以自动给出报告,提醒用户。
UART模式设置起来相对复杂,而且需要驱动、主板、固件三方面配合。但,复杂的代价是带负载能力强,更改灵活。
举个例子,常规模块或者TMC2208_STANDALONE模式,想改变驱动电流大小,(搬动打印机)打开主板,用螺丝刀调整动模块上的电位器,然后用万用表测量电压,再计算出电流。这时候,你想把XY轴电机驱动电流都调成一样?!:sweat:。。。。这可是拼人品的事
而UART模式下就没有问题了,在固件或通过M指令直接写就可以了,想要啥数值就是啥数值,确保了两个电机的电流是一致的。:victory:
二、重点介绍一下UART模式
要实现这种模式,首先必须模块要支持UART模式,这里可以看上一篇文章 折腾3D打印机(2-1)步进电机驱动。
第二是要主板支持。幸好现在好多主板,只要写清楚是支持marlin固件的,基本上就可以通过简单跳线来实现。比如MKS的SGENL V1.0、BIGTREE的SKR V1.3。不清楚的话,问问店家。
第三就是固件支持。开源的marlin固件,里面有专门的代码,参考主板说明书,一步一步设置下去,一般就能成功的。但如果出现TMC CONNECTION ERROR,那就表示有问题,需要查找原因。
在UART模式下,2208的带负载能力很强。原来在2208的普通模式下,测试切片文件,就算电流加大到900mA,还是通不过,老丢步。改为UART模式,默认800mA,顺利通过。:victory:而且,好处一箩筐:电流小了,电机发热大大降低。原来用DRV8825,Z/E轴的驱动电流是1300mA,现在840mA就可以了;XY轴电机驱动电流完全一样(数字调节),提升了打印质量;256细分带来了超级安静和打印质量大幅度提升。
普通模式下,2208一般工作在硬件16细分(内部模拟256输出),而UART模式,可以设定为32/64/128/256等多种模式。毕竟,内部模拟还是有误差的,硬件细分提高后,再用内部模拟到256细分输出。拍脑袋的想法是,输出的256细分信号应该更加的平滑和精确。
UART模式下,再打开HYBRID_THRESHOLD,根据运行速度,让2208在超级静音(ultra quiet stepping mode)和高速防抖动(spreadCycle stepping mode)两种模式下动态切换:低速时静音,速度超过一定值后自动切换到高速防抖动模式,防止电机在高速运转情况下出现抖动。但目前测试的结果,混合模式在高速下容易丢步。所以,不推荐打开混合模式。
|
打赏
-
查看全部打赏
|