4、电路设计基础:电源电路设计(滤波、去耦)、逻辑电平转换电路、光耦隔离电路

做步进电机驱动,说白了就是跟电打交道。电搞不好,后面固件写得再漂亮也是白搭。我见过太多工程师,上来就调时序、调电流环,结果板子一上电就冒烟,查了半天发现是电源纹波把芯片搞死了。所以这一节,咱们老老实实把电源、电平转换、隔离这几个基本功打扎实。

4.1 电源电路设计:滤波与去耦

步进电机驱动对电源的要求其实挺苛刻的。电机一转,母线电流会剧烈波动,你想想看,如果电源不稳,驱动芯片内部的比较器、运放都会跟着抖,那电流环控制就别想准了。

4.1.1 输入滤波电容

我个人习惯,在电源入口先放一个大电解电容。这个电容的作用是储能,说白了就是当电机突然要一大口电流时,它能先顶上,而不是让电源适配器去硬扛。

  • 容值选择:一般按每安培电流 100μF ~ 470μF 来估算。比如驱动额定电流 2A,我就放个 470μF 的电解电容。
  • 耐压:留 1.5 倍余量。24V 系统用 35V 或 50V 的电容,别省这个钱。
  • 位置:尽量靠近电源输入端,走线要短粗。
注意:电解电容有极性,焊反了会炸。我曾经有一次赶项目,把电容装反了,上电瞬间“嘭”的一声,电容顶盖直接飞了,还好人没事。从那以后,我每次焊电解电容都要用万用表确认一遍极性。

4.1.2 去耦电容

电解电容虽然能储大能量,但它高频特性不好。你想想看,电机 PWM 开关频率通常是 20kHz 到 100kHz,开关瞬间产生的尖峰电流,电解电容根本反应不过来。这时候就需要小容量的陶瓷电容来去耦。

我的标准配置是这样的:

电容类型 容值 作用 放置位置
电解电容 100μF ~ 470μF 储能、滤低频 电源入口
陶瓷电容 0.1μF (104) 滤高频噪声 每个芯片电源引脚旁
陶瓷电容 10μF ~ 22μF 中频去耦 每 2-3 个芯片共用一组

嗯,这里要注意:0.1μF 的陶瓷电容一定要紧贴着芯片的电源引脚放,走线越短越好。我见过有人把去耦电容放在芯片 2 厘米远的地方,那基本等于没放。

4.1.3 电源纹波实测

光说不练假把式。我建议你板子打样回来后,用示波器测一下电源纹波。正常情况,纹波峰峰值应该控制在 50mV 以内。如果超过 100mV,电机运行时会听到明显的“滋滋”声,那就是电源在抗议了。

小技巧:测纹波时,示波器探头要打到 20MHz 带宽限制,用接地弹簧而不是长地线夹。不然你测到的全是空间辐射噪声,不是真正的纹波。

4.2 逻辑电平转换电路

做步进电机驱动,经常要跟不同电压的芯片打交道。比如主控 MCU 是 3.3V 的,但驱动芯片是 5V 的,或者反过来。电平不匹配,轻则逻辑混乱,重则烧芯片。

4.2.1 常见电平标准

电平标准 VOH (输出高) VOL (输出低) VIH (输入高) VIL (输入低)
3.3V CMOS ≥ 2.4V ≤ 0.4V ≥ 2.0V ≤ 0.8V
5V TTL ≥ 2.4V ≤ 0.4V ≥ 2.0V ≤ 0.8V
5V CMOS ≥ 4.4V ≤ 0.5V ≥ 3.5V ≤ 1.5V

你看这个表,3.3V CMOS 和 5V TTL 其实是可以直接连的,因为它们的阈值电压差不多。但 3.3V 驱动 5V CMOS 就不行,3.3V 输出的高电平才 2.4V,而 5V CMOS 要求输入高电平至少 3.5V,这肯定翻车。

4.2.2 电平转换方案

我常用的方案有这么几种:

  • 电阻分压:5V 转 3.3V 时,用两个电阻分压。简单便宜,但只适合单向信号,而且速度不能太快。
  • MOSFET 双向电平转换:用 N 沟道 MOSFET 加两个上拉电阻,适合 I2C 这种双向总线。我项目里经常用 BSS138 来做。
  • 专用电平转换芯片:比如 TXS0108、SN74LVC4245。省心,速度快,适合多路信号。就是贵一点。

我的建议:如果只是 STEP/DIR 这种低速信号(几十 kHz),用电阻分压或者 MOSFET 方案完全够用。如果是 SPI 通信(几 MHz 以上),老老实实上专用芯片,别省那几毛钱。

4.3 光耦隔离电路

步进电机驱动是个强电和弱电混在一起的东西。电机母线电压可能是 24V、48V 甚至更高,电流几安培。如果控制信号和功率部分不隔离,一旦功率管炸了,高压直接窜到 MCU 那边,整个系统就完蛋了。

4.3.1 为什么需要隔离?

说白了,隔离就是为了保命——保 MCU 的命,也保你的命。我在一个工业项目里遇到过,电机线缆被机器压破了,24V 直接搭到了信号线上,幸好有光耦隔离,MCU 那边安然无恙。要是没隔离,那板子上的 STM32 估计当场就挂了。

4.3.2 光耦选型要点

参数 说明 推荐值
隔离电压 光耦能承受的最高电压 ≥ 2500Vrms
传输速率 信号能跑多快 ≥ 1Mbps(步进信号够用)
电流传输比 (CTR) 输出电流与输入电流之比 50% ~ 600%

对于步进电机的 STEP/DIR 信号,速度一般不超过 200kHz,所以普通光耦如 PC817 就能用。但如果你要做高速斩波或者微步进,建议用 6N137 这种高速光耦,传输速率能到 10Mbps。

4.3.3 光耦外围电路设计

光耦不是直接焊上去就能用的,外围电阻要算好。我举个例子:

// 输入侧(MCU 侧)
// 假设 MCU 输出 3.3V,光耦 LED 压降 1.2V,要求 LED 电流 10mA
// 限流电阻 R1 = (3.3V - 1.2V) / 10mA = 210Ω,取 220Ω

// 输出侧(驱动侧)
// 假设驱动侧 VCC = 5V,上拉电阻 R2 取 4.7kΩ
// 这样输出高电平接近 5V,低电平接近 0V
避坑指南:我曾经把光耦输出侧的上拉电阻选得太小(比如 1kΩ),结果光耦导通时电流太大,光耦发热严重,时间长了 CTR 下降,信号就传不过去了。上拉电阻一般取 4.7kΩ ~ 10kΩ 比较稳妥。

4.3.4 隔离电源

光耦隔离了信号,但电源也得隔离。如果控制侧和功率侧共地,那光耦就白装了。我一般用隔离 DC-DC 模块,比如 B0505S,把 5V 转成隔离的 5V,给驱动芯片供电。

或者你也可以用单独的电源绕组,比如变压器多绕一组副边。总之原则就一条:控制侧的地和功率侧的地,绝对不能直接连通

经验之谈:隔离电源的输出端要加 10μF + 0.1μF 的去耦电容,不然纹波会很大。我见过有人不加电容,结果驱动芯片的参考电压一直在抖,电机运行噪声大得离谱。

好了,电源、电平转换、隔离,这三块是步进电机驱动电路的基石。你把这些搞扎实了,后面的电路设计才能站得住脚。下一节咱们聊聊驱动芯片的选型和外围电路配置,到时候再细说。