简介:围绕东芝TB6560AHQ步进电机驱动芯片的这份技术文档,面向从事步进电机驱动器设计、调试的电子工程师及机电专业学习者,适合需要从原理图参数走向实际方案参考的中级读者,重点解决57电机及部分86电机驱动电路的成本、集成度与可靠性问题。文件以单篇doc呈现,压缩包241KB、共1个文件,便于快速查阅和本地保存。内容覆盖驱动主电路与逻辑控制电路设计、28V驱动电源及4.5~40V电压选择、内部续流二极管带来的布线简化、5V逻辑电源去耦、OSC斩波频率与M2/M1细分设置,并讨论整步、半步、1/8及1/16细分下的电流控制、自动半流与脱机功能,以及最大细分时0~300rpm的转速范围。对失步、越步和共振成因也给出降低驱动电流、合理加速、细分驱动等排查思路,并附雕刻机X、Y、Z三轴驱动试验结果。已有1073人学习,适合需要参考成熟电路参数与排错经验的读者。
1. 反直觉的结论:57 步进驱动器的成本,败在“外围”而不是“功率”
拆开一台老式 57 步进驱动器,多数人第一眼盯着的是那颗直插封装、背面焊着一块金属片的芯片,觉得成本都在这块硅上。真正吃掉成本的是它周围少掉的那一圈东西:八只外接续流二极管、独立的电流比较器、斩波时序逻辑、细分译码、电流衰减档位切换,以及为这些东西留出的布板面积和调试工时。TB6560 步进电机驱动器设计的核心命题,就是把这堆分立功能一次收进芯片,让一台 28V、峰值 3.5A 的两相双极驱动器外围只剩拨码开关和几个电容电阻。省下来的不是硅片钱,是面积、装配工序和“每换一种电机就要重调一次”的试错成本。搞懂它怎么把这些环节塞进去,也就搞懂了恒流斩波、细分、半流这三件事在硬件层到底长什么样。
2. 斩波恒流:TB6560 凭什么用“开关”喂出正弦电流
2.1 电压驱动在高频段必然掉力矩,这不是电机的问题
两相混合式步进电机的绕组是个典型的 RL 负载,通电瞬间电流按 i(t) = (U/R)·(1 − e^(−t/τ)) 上升,时间常数 τ = L/R。绕组电感常在几毫亨量级,相电阻一两欧,τ 落在 1~3 ms 这个区间。这意味着,如果只给一个固定电压、不做任何电流控制,电流爬到额定值需要的时间是可观的。转速一高,两个换相脉冲之间的间隔比这段上升时间还短,电流根本来不及到额定值就被切走了,平均电流下降,输出转矩随之塌下去。
这条链路能解释原文里那句“提高驱动电压可增大电机在高频范围转矩的输出”。同样是把电流顶到 2.5A,28V 比 12V 快得多。用一段估算就能看出差距有多大:
import math def rise_time(u, i_set, r, l): """RL 负载下,电流从 0 爬到 i_set 所需时间(秒)""" tau = l / r # 绕组时间常数 ratio = 1 - (i_set * r) / u # 剩余未完成的电流比例 if ratio <= 0: return float('inf') # 电压不够,永远到不了设定电流 return -tau * math.log(ratio) r, l, i_set = 1.2, 3e-3, 2.5 # 相电阻 1.2Ω、相电感 3mH、目标 2.5A for u in (12, 24, 28, 36): t = rise_time(u, i_set, r, l) print(f"驱动电压 {u:>2}V -> 电流爬升到 2.5A 用时 {t*1000:6.3f} ms")参数含义很直白:u是 VMA/VMB 上的驱动电压,i_set由检流电阻决定,r、l是电机铭牌上的相电阻和相电感。跑出来的量级大致是:12V 要 0.7 ms 上下,28V 只要 0.2 ms 出头。也就是说在 12V 下,脉冲间隔一旦压到 0.7 ms 以内(折算成整步也就 800 多转/分的量级),电流就已经喂不饱了。这就是“低频靠电流、高频靠电压”这句老话的物理来源。
但光提高电压不行。28V 直接怼在一个 1.2Ω 的绕组上,稳态电流会到 20A 以上,绕组当场冒烟。所以必须有一个环,在电流到达设定值的那一刻把电源切开——这就是斩波恒流的全部动机。
2.2 检流电阻:0.5V 基准决定了整台驱动器的电流档位
TB6560 的做法是把采样电阻串在绕组电流回路上,NFA、NFB 两个引脚分别接 A 相和 B 相的检流电阻到地。芯片内部拿这个电阻上的压降和一个固定的 0.5V 基准比较:超过就关断输出,绕组电流经内部续流回路缓慢衰减;低于某个下限再重新开通。如此反复,绕组里流的是一个三角纹波,平均值就锁在 0.5/RNF 附近。
原厂给的公式是 IOUT(A) = 0.5(V) / RNF(Ω),反过来说,你想要多大电流,就得配多大的电阻,而这个电阻同时还要扛住 I²R 的功耗。这一步是很多人翻车的地方,算电流谁都算得对,算功耗经常忘:
V_REF = 0.5 # 内部电流比较基准,单位 V targets = [0.5, 1.0, 1.5, 2.0, 2.5, 3.0] for i_out in targets: rnf = V_REF / i_out # 需要的检流电阻阻值 p_real = i_out ** 2 * rnf # 电阻上的真实热耗 print(f"相电流 {i_out:>4.1f}A | RNF = {rnf*1000:6.1f} mΩ | " f"热耗 {p_real:4.2f}W | 建议额定 ≥ {p_real*2:4.1f}W")这里的0.5就是原厂公式里的基准电压,p_real是长期工作时电阻自身要散掉的热量,乘 2 是留一倍的功率余量。结果整理成表更方便对照选型:
| 目标相电流 | 检流电阻 RNF | 电阻热耗 I²R | 建议额定功率 |
|---|---|---|---|
| 0.5 A | 1.0 Ω | 0.25 W | ≥ 1 W |
| 1.0 A | 0.5 Ω | 0.50 W | ≥ 2 W |
| 1.5 A | 0.33 Ω | 0.75 W | ≥ 2 W |
| 2.0 A | 0.25 Ω | 1.00 W | ≥ 2 W |
| 2.5 A | 0.20 Ω | 1.25 W | ≥ 2 W |
| 3.0 A | 0.167 Ω | 1.50 W | ≥ 3 W |
原文的做法是 2.5A 配 0.2Ω,并且明确要求用功率不小于 2W 的无感电阻。后面这个限定词比前面那个数字更重要。普通绕线电阻自身有电感,斩波沿是陡峭的方波,几微亨的寄生电感足以在电流跳变时叠出一个尖峰,比较器把这个尖峰当成“电流超了”提前关断,实际电流就永远上不到设定值,表现出来就是“明明算好了 2.5A,实测只有 2A 出头”。这类问题不带示波器看波形,很难靠猜定位。
注意:检流电阻的功率余量要按连续工作的温升来留,不能按峰值电流算,也不能用贴片厚膜电阻硬顶大电流档位。
2.3 细分的本质是让合成磁场匀速转,不是把脉冲切碎
很多人对细分的理解停在“把一步切成 16 份”,这是结果不是机制。两相步进电机里,A、B 两相绕组在空间上差 90 度电角度,转子跟随的是两相电流产生的合成磁场。整步运行时,A、B 电流只能是“满正向、零、满反向”这几种组合,合成矢量每次跳 90 度电角度,对应机械角 1.8 度,转子是被硬拽过去的,振动和噪声都从这里来。
细分要做的事情,是让 A 相电流按 cosθ 变化、B 相按 sinθ 变化,θ 连续推进。合成矢量的幅值恒定在 I,方向随 θ 均匀旋转,每走一个小角度就是一次“细分步”。原文那句“合成磁场矢量的幅值决定了旋转力矩的大小,相邻两合成磁场矢量之间的夹角决定了步距角的大小”,说的正是这个几何关系——幅值管力矩,夹角管分辨率,两者可以独立调节。
base_angle = 1.8 # 两相混合式电机整步步距角 micro_modes = {"整步": 1, "半步": 2, "1/8 细分": 8, "1/16 细分": 16} steps_per_rev = 200 # 整步时每转 200 步 for name, m in micro_modes.items(): angle = base_angle / m # 以 120 rpm 为例,算所需脉冲频率 f_pulse = 120 / 60 * steps_per_rev * m print(f"{name:<10} 步距角 {angle:6.4f}° 每转 {200*m:>4} 脉冲 120rpm 需 {f_pulse:>7.0f} Hz")这段代码里的m就是 M1、M2 两个拨码引脚组合出来的细分数,f_pulse是上位机或控制器必须发出的脉冲频率。整步跑 120 rpm 只要 400 Hz,切到 1/16 细分就变成 6400 Hz——细分提高了分辨率和平顺性,代价是把对控制器的脉冲输出能力要求提高了十几倍。
提示:细分精度最终取决于电流环能否准确复现正弦波,而电流环的准确度受检流电阻精度、斩波频率、衰减模式共同影响。所以 1/16 细分下低速仍有一点抖动是正常的,别指望只改拨码就能彻底消掉。
3. 引脚级的分工:28V 主电路和 5V 逻辑之间那条线
3.1 双电源与三种地:上电时序没排对,芯片直接不干活
TB6560 是双电源器件。VMA、VMB 是驱动电源,接步进电机的功率绕组,允许 4.5~40V,工程上常取 24V 或 28V;VDD 是逻辑电源,5V,供内部译码、比较器、保护逻辑使用。原文里有一句很容易被跳过的硬约束:逻辑电压必须低于驱动电压,否则芯片不能正常工作。这句话背后是典型的 CMOS 上电时序问题——如果 VDD 先建立而 VMA 还是 0,内部某些节点会处于一个非预期的偏置状态,输出级可能被误触发,甚至通过衬底形成倒灌通路。落地的做法要么用带时序的电源,要么在 VDD 上做钳位,保证任何时刻它不高于驱动电压。
电源引脚的去耦不是“加个电容意思一下”。VMA、VMB 上要同时放瓷片电容和电解电容:瓷片负责吸收斩波沿产生的高频电流尖峰,电解负责在斩波瞬间补上电感续流所需的低频电荷。VDD 侧同样要去耦加旁路,因为逻辑地和功率地共用同一块板子,驱动级的 dv/dt 很容易顺着地平面耦合进逻辑侧。
地分成了 PGNDA、PGNDB 和 SGND 三类:两相功率地各自独立回流出线,逻辑地单独走,最后在电源入口处单点汇合。这么做的原因很实际,功率回路上流过的是 2~3A 的斩波电流,边沿陡,如果和逻辑地共用一段走线,这段走线上的压降会直接叠在比较器基准和译码输入上,表现出来的症状就是“电机一转,细分就不准了”。
3.2 内置续流二极管省下的不只是八只器件
H 桥关断的瞬间,绕组是个大电感,di/dt 很大,如果不给电流一条回路,绕组两端会感应出一个足以击穿开关管的电压。传统做法是在每只开关管旁反并一只快恢复二极管,两相四个半桥,就是八只。上一代 8435 这类芯片需要外部补齐这一圈二极管,PCB 上要留出位置、留出走线,更要命的是二极管到芯片的这段引线本身带寄生电感,续流回路面积一大,关断尖峰就压不住。
TB6560 把续流二极管集成在芯片内部,OUT_AP、OUT_AM、OUT_BP、OUT_BM 四个引脚直接接电机两相,中间不需要任何外挂器件,原文特别强调了这一点“极大地减小电路板的布线空间”。省掉的不只是器件成本:续流回路被压缩到封装内部,环路面积小、寄生电感低,关断尖峰天然就小,这属于用集成度换电磁兼容性能的做法。
代价也很清楚——所有续流损耗都变成了芯片内部的热。这就是为什么这颗芯片背面必须有一块金属散热片,也是为什么小电流下靠本体散热就够、超过 1.5A 就必须扩散热面积。
3.3 逻辑侧的四个开关量:复位、指示、斩波频率、细分档位
逻辑侧有一组功能非常集中的引脚,值得单独捋一遍。复位脚低电平有效,用于异常后重新同步内部逻辑;MO 和 PROTECT 各驱动一只指示灯,前者反映工作状态,后者在过流保护动作时点亮——这两只灯在现场排查时的价值远超它们的外观,很多“电机不动”的问题看一眼 PROTECT 是常亮还是闪就能砍掉一半排查路径。
OSC 引脚外接的电容决定斩波频率,原文给的推荐区间是 100~1000 pF,对应 400 Hz 到 44 kHz 这个范围。频率和容值大致是反比关系,容值越大频率越低:
def chop_freq(c_pf, f_at_100pf=44e3): """按反比粗略估算斩波频率,仅用于量级判断,精确值以手册曲线为准""" return f_at_100pf * (100.0 / c_pf) for c in (100, 220, 470, 1000): f = chop_freq(c) # 纹波峰峰值与斩波周期近似成正比,这里只看相对量级 print(f"OSC 电容 {c:>4} pF -> 斩波频率约 {f/1000:6.2f} kHz")参数c_pf就是接在 OSC 与地之间的那只瓷片电容。斩波频率低,开关损耗小、芯片发热少,但电流纹波大,电机低速时能听到明显的啸叫;频率高,纹波小、电流波形更接近正弦,但开关损耗上升,芯片更容易烫。这是整台驱动器里最典型的一处折中,没有普适最优值,只能按电机的电感和实际噪声表现去调。M1、M2 两个引脚则通过外接拨码开关设定整步、半步、1/8 细分、1/16 细分四档,这是用户侧唯一需要经常动的地方。
4. 自动半流:用一颗单稳态把“没有脉冲”翻译成“电流减半”
4.1 TQ1/TQ2 真值表:扭矩是可以主动降档的
步进电机的发热主要来自铜损和铁损。铜损是绕组电阻上的 I²R,和电流平方成正比;铁损跟驱动电压、斩波频率相关。电机选定之后,电阻改不了,能动的只有电流。而大部分雕刻机、点胶机这类应用里,电机真正出力的时间占比并不高——大量时间是在等指令、停在某个位置保持。让它在静止时还吃着 100% 电流,纯粹是在给自己加热。
TB6560 用 TQ1、TQ2 两个引脚把输出电流分成四档,对应最大电流的 100%、75%、50%、25%:
| TQ2 | TQ1 | 输出电流比例 | 典型用途 |
|---|---|---|---|
| 0 | 0 | 100% | 高速运行、重载切削 |
| 0 | 1 | 75% | 中速运行 |
| 1 | 0 | 50% | 低速轻载、待机保持 |
| 1 | 1 | 25% | 长时间静止定位 |
改变电流就是改变输出扭矩,这个关系是线性的,所以在不需要大扭矩的场合主动降档,既压住温升,也顺带降低了低速共振的幅度——原文在讲失步时提到的“减小驱动电流”抑制共振,用的就是这个机制。
4.2 74HC123 可重复触发单稳态:把“脉冲还在来”编码成“电机在工作”
半流要自动化,就得让电路自己判断电机是不是还在动。判据其实只有一个:控制脉冲 CLK 还在不在来。原文的做法是用一颗可重复触发的单稳态芯片 74HC123,把 CLK 作为触发输入,反向输出接 TQ2。
可重复触发的意思是:每个输入边沿都会把定时器重新拉回暂态并重新计时。只要 CLK 的脉冲间隔小于单稳态的定时宽度 Tw,输出就永远回不到稳态,Q̄ 一直保持低电平,TQ2 = 0,电流维持高档;一旦脉冲停止超过 Tw,定时器到期,Q̄ 翻高,TQ2 = 1,进入半流。定时宽度由外接的 R、C 决定,74HC123 在 5V 供电下的关系近似 Tw = K·R·C,K 取 1 左右。
def tw_seconds(r_ohm, c_farad, k=1.0): """74HC123 单稳态定时宽度估算,5V 供电下 K 约取 1""" return k * r_ohm * c_farad steps_per_rev, micro, rpm_min = 200, 16, 5 # 最低工作转速 5 rpm,1/16 细分 f_min = rpm_min / 60 * steps_per_rev * micro # 最低转速下的脉冲频率 period_min = 1.0 / f_min # 最长的脉冲间隔 for r, c in ((1e6, 100e-9), (1e6, 220e-9), (2.2e6, 220e-9)): tw = tw_seconds(r, c) print(f"R={r/1e6:.1f}MΩ C={c*1e9:.0f}nF -> Tw={tw*1000:.1f}ms " f"{'满足' if tw > period_min else '不满足'} 最低转速判据")这段代码算的是选型边界:period_min是最低工作转速下相邻脉冲的间隔,Tw必须比它略大,否则低速运行时单稳态会在两个脉冲之间提前超时,电流在 100% 和 50% 之间来回跳,表现出来就是低速扭矩一阵一阵的、听得见电流的“呼吸声”。这是自动半流设计里最常见也最隐蔽的一个坑——参数算反了,功能看起来是有的,只是在低速段失效。
原文的电路里,TQ1 通过三个跳线帽选择接法,配合被单稳态驱动的 TQ2,得到三种切换区间:跳线 1 让 TQ2 与 TQ1 同电平,工作时是 (0,0)=100%,停机后是 (1,1)=25%,在 25%~100% 之间切换;跳线 2 把 TQ1 固定为低,工作时 100%、停机后 50%,范围是 50%~100%;跳线 3 把 TQ1 固定为高,工作时 75%、停机后 25%,范围是 25%~75%。三种接法本质上是给“工作电流”和“保持电流”各选一个档位,用户按电机的实际负载挑一组即可。
4.3 电流衰减模式:DCY 拨码解决的是高频噪声
绕组电流被关断之后怎么衰减,直接决定纹波的形状。慢衰减是让电流在两个下管之间低速循环,靠绕组自身电阻慢慢耗掉,纹波小、效率高,但电流下降慢,高频时跟不上换相节奏;快衰减是给绕组反向加压,强制电流快速归零,跟随性好但纹波大、噪声大、损耗高。原文用 DCY1、DCY2 两个引脚配合拨码开关,提供 0、25%、50%、100% 四档衰减模式,本质是在这两者之间按比例混合。
原文给了一个很关键的观察:衰减模式设成 0 和 50% 时对比线圈电流波形,后者有明显改善。改善的原因是混合衰减把关断初期的快速下降和后续的缓慢下降拼在一起,既保证了换相跟随性,又削掉了电流波形上那些陡峭的毛刺。这些毛刺正是高频噪声的直接来源——电流变化率激励绕组和引线的寄生参数,最终变成听得见的啸叫。所以 DCY 拨码不是“调音色”的玄学旋钮,它调的是电流环的动态响应。
注意:衰减模式和斩波频率是耦合的。把 OSC 电容改大降低斩波频率之后,往往需要重新试一遍 DCY 档位,否则原本调好的噪声表现会退化。
5. 失步、越步与烧板:现场排查的几条硬经验
5.1 失步有三条独立路径,千万别混着调
失步的表象都一样——该走 1000 步结果少走了几十步,但成因至少分三类,调错方向会越调越糟。
第一类是转矩不足。电机拖不动负载,脉冲频率一到某个临界值就开始丢步。判据是:失步总是在某个固定频率之上出现,降频就恢复正常。处理方向是加大驱动电流(在额定范围内)、提高驱动电压以改善高频出力,或者换转矩更大的电机;反过来也可以降低运行频率,让电机工作在它擅长的区间。
第二类是起动失步。电机和负载都有惯性,加速时间给得太短,转子跟不上定子磁场的加速曲线。判据是:只在启动瞬间丢步,匀速段正常。处理办法只有一个——把加速时间设长,让速度从低到高平滑爬升。
第三类是共振。连续运行时,控制脉冲频率正好落在电机的固有频率附近,一个脉冲周期内上一次振动还没衰减完,下一个脉冲就来了,动态误差在共振点附近被放大。判据是:只在某个特定转速区间有问题,快一点慢一点都正常,而且往往伴随明显的机身嗡鸣。处理方向是减小驱动电流、启用细分驱动(细分把每次跳变的角度变小,激励能量分散)、或者加机械阻尼。
5.2 越步是能量过剩,和失步是反着来的
越步的现象很容易和失步搞混:位置偏了,但偏的方向不固定,有时多走有时少走。机制上它是转子在步进过程中获得了过多能量,平均转速反而超过了定子磁场的平均旋转速度。典型诱因是减速时间给得太短——高速运转的转子带着惯性冲过了头,或者驱动电流远超实际需要,电磁转矩把转子“甩”了出去。
处理思路和失步正好相反:减小驱动电流,降低输出转矩;或者把减速时间放长,让惯性有地方消化。这里能看出自动半流电路的另一层价值——静态时电流降下来,能量的“蓄水池”水位本来就低,过渡过程更容易控制。
5.3 五条踩坑记录,都是现象、原因、解决三件套
现象一:低速运行振动大、噪声大,整机嗡鸣。原因通常是还用着整步或半步模式,每次换相都是一次大角度跳变。解决是把 M1、M2 拨到 1/8 或 1/16 细分,让合成磁场连续旋转,同时配合 DCY 把衰减模式从 0 调到 50%,把电流波形上陡峭的那部分削掉。
现象二:电机静止时也烫手,长时间待机后外壳温度明显偏高。原因是 TQ1、TQ2 一直固定在 00,静止时照样吃 100% 电流,铜损全额发热。解决是补上自动半流电路,或者至少把 TQ 引脚在空闲时切到 50% 档;如果长时间不动作,还可以用脱机功能直接切断输出电流。
现象三:高速段丢步,怎么加电流都没用。常见原因是驱动电压给低了,比如整机只配了 12V 电源。RL 负载的电流上升时间限制死了高频出力,加电流只能在能爬到的范围内加,爬不到就是爬不到。解决是把驱动电压提到 24V 或 28V(不超过芯片 40V 上限),同时确认 VMA、VMB 上的去耦电容没有因为耐压不足被击穿。
现象四:电机一转就复位,PROTECT 指示灯闪。这类问题往往不是芯片坏了,而是上电时序或者地噪声。检查 VDD 是否在任意时刻高于 VMA,检查 PGNDA/PGNDB 与 SGND 是否单点汇合,检查逻辑地去耦是否到位。原文特意点出“逻辑电压必须低于驱动电压,否则芯片不能正常工作”,这条约束在现场被违反的概率远高于想象。
现象五:大电流档位下检流电阻发热严重、阻值漂移。原因是用了一颗 1/4W 的普通贴片电阻,或者用在 2.5A 档位却只按 1W 选型。解决是按 I²R 算出的实际热耗留一倍余量,选用无感(低感)功率电阻,并把它从芯片正下方挪开,避免烤着芯片的过流保护逻辑。
提示:驱动电源入口务必加熔断器保护。功率级一旦出现直通,几安培的电流足以在几秒内把板子烧穿,一颗保险丝的价格远低于重新打板。
6. 集成度的代价:这套方案适合谁,不适合谁
把外围一路砍下来之后,这套设计的能力边界也就被固定住了。值得摊开来看:
| 维度 | TB6560 集成方案 | 分立元件方案 |
|---|---|---|
| 外围器件 | 少量电容电阻 + 拨码 | 8 只续流二极管、比较器、逻辑器件 |
| 布板面积 | 小,续流回路在封装内 | 大,续流回路面积受限 |
| 散热 | 全部集中在一颗芯片上 | 损耗分散在多只器件 |
| 细分档位 | 固定四档(整/半/1-8/1-16) | 可自由做到 1/32、1/64 |
| 峰值电流 | 受封装与内部走线限制 | 可随器件规格扩展 |
| 调试自由度 | 斩波频率、衰减档位可调,范围有限 | 全参数可改 |
这张表说明,它是一颗为“低成本、中低转速、批量一致性”设计的芯片。转速范围从 0 到 300 rpm(最大细分时)、能带 57 电机和部分 86 机型,这个定位本身就决定了它不去追高动态性能。像雕刻机 X、Y、Z 三轴这种场合——负载稳定、转速不高、要求重复定位精度——它的性价比几乎是压倒性的;但要做高速主轴、要 1/32 细分、要 5A 以上的相电流,就别在这颗芯片上使劲了,硬上只会把散热和细分精度两个短板同时放大。
集成度换来的确定性也是真实的:外围器件少,批次间的一致性就好,量产时不用为每一台驱动器单独调匹配,这是分立方案做不到的。但要清楚,这份确定性是用“参数不可编程”换的——你在细分档位、电流衰减模式、峰值电流上都只有一个有限的档位集合,而不是连续可调。
从那以后我每次评估这类高集成驱动芯片,都强制走一遍同样的流程:先算检流电阻的功耗余量,再核对驱动电压与逻辑电压的上电时序,然后按最低工作转速倒推单稳态的 RC,最后拿示波器看一遍 DCY 在 0 和 50% 下的绕组电流波形。这四步里任何一步跳过,后面的调试都会变成靠猜。希望帮到你。
本文还有配套的精品资源,点击获取