数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 35460|回复: 32

折腾3D打印机(2-2)步进电机驱动TMC2208

[复制链接]
发表于 2019-12-13 21:21:10 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

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)两种模式下动态切换:低速时静音,速度超过一定值后自动切换到高速防抖动模式,防止电机在高速运转情况下出现抖动。但目前测试的结果,混合模式在高速下容易丢步。所以,不推荐打开混合模式。


打赏

参与人数 3家元 +42 收起 理由
全中文说明书 + 12 優秀文章
中心小学 + 20 謝謝分享
邢宝伟 + 10 以資鼓勵

查看全部打赏

本帖被以下淘专辑推荐:

 楼主| 发表于 2019-12-26 12:35:40 | 显示全部楼层
w896307778 发表于 2019-12-26 09:14
2208个小时2209的区别是啥?

2209是2208的升级版,最直观的就是加大了驱动电流,2209好像最大可以支持2A
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-3 06:58:13 | 显示全部楼层
黎明小升 发表于 2020-1-2 22:17
我现在就是TMC CONNECTION ERROR,M122报“READ: Testing X connection... Error: All LOW“和”
READ: Tes ...

这个初步看是2208跟主板通信没有对上。你要检查2208硬件版本、主板跳线还有固件设置。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-3 15:11:46 | 显示全部楼层
黎明小升 发表于 2020-1-3 09:13
昨晚折腾到今天凌晨2点折腾出来了,原来可能是那几个rx、tx管脚可能被其他功能占用了,我换成其余空余管 ...

12864屏幕乱码,官网有提到。不知道你改了哪里,参数如何改?
我也是用12864,在1.1.5到1.1.8固件都正常,1.1.9就是花屏。在2.0又是正常的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-31 20:38:59 | 显示全部楼层
水表君 发表于 2020-3-31 10:54
我用A4988,i3结构的,xz方向从来没出过问题,倒是y轴,有时候就丢步,电流也调了,每次丢步时候Y轴都会咯 ...

平台前后移动的就是Y轴吧?可能是负荷太重,2208带不起来。

所以建议用UART模式。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-15 19:10:52 | 显示全部楼层
lern 发表于 2020-4-1 19:09
设置URAT的步骤呢?能提供吗?谢谢

要结合你所用的主板,做好硬件连接,然后配置固件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-12 08:21:56 | 显示全部楼层
guojizhou 发表于 2021-12-11 10:05
2208发热太大,容易丢步,但是静音的确爽啊

发热和丢步,我感觉主要是因为工作在兼容模式,没有开UART模式,导致2208 驱动能力大幅度降低。

试试打开UART模式,会有惊喜
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-14 20:39:33 | 显示全部楼层
guojizhou 发表于 2021-12-14 11:17
TMC2208的静音效果真是不错,我是corxy机型电流调到300就可以稳定运行,为保险起见调到了500,目前只是40度 ...

那说明你的机器调整得很好!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-6-28 13:04 , Processed in 0.234000 second(s), 14 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表