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,电机运行时会听到明显的“滋滋”声,那就是电源在抗议了。
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
4.3.4 隔离电源
光耦隔离了信号,但电源也得隔离。如果控制侧和功率侧共地,那光耦就白装了。我一般用隔离 DC-DC 模块,比如 B0505S,把 5V 转成隔离的 5V,给驱动芯片供电。
或者你也可以用单独的电源绕组,比如变压器多绕一组副边。总之原则就一条:控制侧的地和功率侧的地,绝对不能直接连通。
好了,电源、电平转换、隔离,这三块是步进电机驱动电路的基石。你把这些搞扎实了,后面的电路设计才能站得住脚。下一节咱们聊聊驱动芯片的选型和外围电路配置,到时候再细说。