把整步电流切成正弦台阶,用DAC+PWM+H桥把步进电机的定位精度与运行平稳性提升数倍
步进电机整步驱动时每步电流突变,转矩波动大、振动噪声明显、低速易共振,而细分驱动把每一步的相电流按正弦规律切成多级台阶,让转子平滑过渡到目标位置,可把定位精度与运行平稳性提升数倍。本文基于《二相步进电机细分驱动的设计与实现》一文(北京交通大学,2007)整理,详解细分驱动的核心原理(相电流 iA=I0·cosθ、iB=I0·sinθ)、8 细分实现、用 TLC5620 八位四路 DAC 生成正弦电流基准、用 TL494 在 15kHz 载频下做 PWM 斩波、H 桥功率级与电流反馈闭环、方向控制 DIR 与死区 DTC 的设置,并给出 77E58 单片机查表输出细分电流的代码,适用于步进定位平台、3D 打印机、物联网云台与自动化设备驱动设计。
步进电机靠定子绕组通电顺序改变磁场方向来驱动转子转动,每一步转子都要"跳"过一个步距角。以常见的 1.8° 两相混合式步进电机为例,整步驱动时每 1.8° 电流方向突变一次,转矩在相邻位置间剧烈波动,转子在目标位置附近来回振荡,宏观表现就是低速时的"咔哒"声、振动与噪声,高速时则容易失步。细分驱动(微步进)的思路是:不再让相电流在整步间突变,而是让两相电流按正弦规律连续变化,使合成磁动势矢量平滑旋转,转子在每个微步之间只前进一个很小的角度(如 1.8°/8=0.225°),从而显著降低转矩波动与振动。
二相步进电机的转矩由两相电流共同产生。若令 A 相电流与 B 相电流分别按余弦与正弦规律变化,则合成转矩矢量方向连续旋转。设每相电流幅值为 I0,电角度为 θ,则两相电流为:
iA = I0 · cosθ (A 相电流)
iB = I0 · sinθ (B 相电流)
对应转矩:
TA = K0 · I0 · cosθ
TB = K0 · I0 · sinθ
其中 K0 为转矩常数,θ 为电角度(0~2π 对应一个整步周期)
当 θ 从 0 连续变化到 2π 时,合成转矩矢量 T=√(TA²+TB²)=K0·I0 保持恒定,方向连续旋转。整步驱动只取 θ=0、90°、180°、270° 四个点(四拍),而细分驱动在每两个整步之间再插入若干中间角度。插入的份数就是细分数:8 细分即在每个整步内再走 8 个微步,等效步距角缩小为原来的 1/8,定位精度与分辨率随之提高。
| 驱动方式 | 每整步微步数 | 等效步距角(1.8° 电机) | 转矩波动 | 低速振动/噪声 | 实现复杂度 |
|---|---|---|---|---|---|
| 整步(四拍) | 1 | 1.8° | 大(每步转矩突变) | 明显,易共振 | 最低(开关管通断) |
| 半步(八拍) | 2 | 0.9° | 中等(单/双相交替) | 有所改善 | 低(固定时序) |
| 8 细分 | 8 | 0.225° | 小(电流连续正弦) | 明显降低 | 中(DAC+PWM) |
| 16/32 细分 | 16/32 | 0.1125°/0.05625° | 很小 | 接近静音 | 较高(需高分辨率 DAC/专用驱动IC) |
细分数的选择要权衡:细分数越高,电流台阶越平滑、振动越小,但对 DAC 分辨率、PWM 载频与电流反馈精度要求也越高;8 细分在成本与效果之间取得较好平衡,是许多工业驱动器的常用档位(数据来源:二相步进电机细分驱动的设计与实现,北京交通大学,2007)。
细分驱动器整体由三部分组成:控制单元负责计算细分电流并输出数字量,PWM 单元把数字量转换成可驱动功率级的斩波信号,驱动单元(H 桥)负责把电流送到电机绕组。典型架构如下:
┌─────────────┐ 8位并行 ┌─────────────┐ PWM_A ──┐ ┌──────────────┐
│ 77E58 单片机 │ ──────────→ │ TLC5620 │ ─────────┤ │ H桥功率级 │
│ 控制单元 │ DAC数据 │ 8位4路DAC │ PWM_B ──┤→ │ A/B相绕组 │
│ (查表/方向) │ │ 电流基准 │ DIR_A ──┤ │ +电流反馈 │
└─────────────┘ └─────────────┘ DIR_B ──┘ └──────┬───────┘
▲ │ FEEDBACK
└──────── TL494 PWM 斩波 ──┘
控制单元选用 Winbond 77E58 单片机(40MHz 主频、8051 兼容内核),它按细分表把当前电角度对应的正弦值查出来,通过并行口送给 TLC5620 DAC;TLC5620 是 8 位四路 DAC,可同时输出 A、B 两相的电流基准电压;基准电压与电流反馈信号在 TL494 内部比较,产生占空比受控的 PWM 斩波信号,再经 H 桥功率级放大后驱动电机绕组(数据来源:同上)。
细分电流的生成分两步:第一步由 DAC 输出正弦基准,第二步由 PWM 斩波把基准"翻译"成绕组上的平均电流。TLC5620 的 8 位分辨率把正弦半周期量化成 256 级,配合 8 细分(每个整步 8 个微步),每个微步对应一个固定的 DAC 码值,单片机把这些码值预存成表,运行时按电角度查表输出即可。
TL494 是双端 PWM 控制芯片,其内部误差放大器把 DAC 基准与绕组电流反馈(FEEDBACK)比较,输出占空比随电流误差自动调节,形成电流闭环。PWM 载频由 RT、CT 决定:取 RT=20kΩ、CT=0.01μF 时,振荡频率约 15kHz(f≈1.1/(RT·CT)),该载频高于电机绕组电气时间常数的截止频率,保证电流纹波可控且噪声在可接受范围(数据来源:同上)。方向控制由 DIR 引脚实现:DIR=0 时按 A、B 相顺序通电正转,DIR=1 时交换通电顺序反转;TL494 的 DTC(死区控制)引脚设为约 4% 死区,避免 H 桥上下管直通。
/* 77E58 单片机:8细分正弦电流查表输出(示意)
SIN_TAB[9] 存 0°~90° 的 8 位 DAC 码值(0~255),其余象限对称取反 */
unsigned char code SIN_TAB[9] = {
128, 178, 224, 250, 255, 250, 224, 178, 128 /* 0°~180° 半周期 */
};
void set_microstep(unsigned char step) {
unsigned char idx = step & 0x07; /* 每整步 8 个微步 */
unsigned char quad = (step >> 3) & 0x03; /* 象限 */
unsigned char a, b;
/* A 相余弦、B 相正弦,按象限取对称值 */
a = sin_lookup(idx, quad); /* 查表+象限变换 */
b = sin_lookup((idx + 2) & 0x07, quad); /* B 相滞后 90° */
dac_write_ch(0, a); /* TLC5620 CH0 → A 相基准 */
dac_write_ch(1, b); /* TLC5620 CH1 → B 相基准 */
}
二相步进电机每相绕组需要双向电流,因此每相用一只 H 桥(4 只功率管)驱动,两相共 8 只功率管。H 桥采用大电流驱动能力,可保证电机在带载运行时可靠换向。绕组电流经取样电阻转换为反馈电压(FEEDBACK),送回 TL494 与 DAC 基准比较,形成闭环:当绕组电流低于基准时 PWM 占空比增大,高于基准时减小,从而把绕组电流精确"钉"在正弦基准上。这种电流闭环是细分驱动精度的重要保证——开环时绕组电感会使电流波形畸变,细分效果大打折扣。
以典型两相步进电机为例(绕组电阻 0~8Ω、额定功率约 5W),H 桥供电电压需按绕组压降与电流上升率综合选取:电压越高电流上升越快、高速性能越好,但功率管与续流损耗也越大。功率管选型与续流二极管、死区设置是 H 桥设计的三个关键点,死区过小会直通烧管,过大则电流波形畸变。
| 设计项 | 整步驱动 | 8 细分驱动(本文方案) | 说明 |
|---|---|---|---|
| 电流基准 | 固定两态(0/满幅) | 8 级正弦台阶 | TLC5620 8位DAC 输出 |
| PWM 斩波 | 无(直接通断) | TL494,15kHz | RT=20kΩ、CT=0.01μF |
| 电流闭环 | 无 | FEEDBACK 反馈比较 | 绕组电流跟踪正弦基准 |
| 方向控制 | 换相时序 | DIR 引脚 + 换相时序 | DIR=0 正转、DIR=1 反转 |
| 死区 | — | DTC≈4% | 防止 H 桥直通 |
| 功率级 | 单管/达林顿 | H 桥(每相4管) | 支持双向电流 |
细分驱动对运行品质的提升在低速段最为明显。整步驱动在 1~5 r/s 低速段转矩波动大、振动噪声明显,且存在共振点;改为 8 细分后,每步电流台阶平滑过渡,转矩波动显著减小,振动与噪声明显降低,定位分辨率提高 8 倍。细分数继续增大到 16、32 时改善趋于饱和,但成本与复杂度上升,因此工业驱动器的常用档位多为 8~32 细分。
实现方式上,除"单片机+DAC+TL494+H桥"的分立方案外,也可选用集成细分驱动芯片(如 A4988、DRV8825、TB6600 等),后者把细分逻辑、PWM 斩波与 H 桥集成在一颗芯片内,通过 MS1/MS2 引脚选择细分数,开发周期短、体积小,适合物联网设备与消费级产品;分立方案则适合对成本、功率或定制化要求高的工业场景。两种方案的对比见表 3。
| 对比维度 | 分立方案(DAC+TL494+H桥) | 集成细分驱动芯片 |
|---|---|---|
| 典型器件 | 77E58 + TLC5620 + TL494 + 8×MOSFET | A4988 / DRV8825 / TB6600 |
| 细分数 | 软件可调(本文 8 细分) | 硬件引脚选择(1~32 细分) |
| 电流闭环 | 外部 TL494 反馈实现 | 芯片内部集成 |
| 开发周期 | 长(需调 DAC/PWM/反馈) | 短(外围简单) |
| 成本 | 中低(器件通用) | 低(单芯片) |
| 适用场景 | 工业定制、大功率、教学实验 | 3D打印、云台、消费电子 |
二相步进电机细分驱动设计清单
- ① 相电流按 iA=I0·cosθ、iB=I0·sinθ 生成,合成转矩矢量恒定、方向连续旋转;
- ② 8 细分即每整步 8 个微步,等效步距角缩小 8 倍(1.8°→0.225°);
- ③ 用 TLC5620 8位DAC 输出正弦电流基准,码值预存查表;
- ④ TL494 做 15kHz PWM 斩波(RT=20kΩ、CT=0.01μF),DTC 死区约 4%;
- ⑤ 每相 H 桥 4 管驱动,绕组电流经 FEEDBACK 闭环跟踪正弦基准;
- ⑥ DIR 引脚控制方向,DIR=0 正转、DIR=1 反转;
- ⑦ 消费级产品可直接用集成细分驱动芯片,缩短开发周期。
总结:细分驱动通过把整步电流切成正弦台阶,让合成转矩矢量平滑旋转,从根本上缓解了步进电机低速振动、噪声与转矩波动问题;"单片机查表+DAC 正弦基准+TL494 斩波+H 桥功率级+电流反馈闭环"是经典分立实现,8 细分即可把等效步距角从 1.8° 降到 0.225°、定位精度提升 8 倍,是兼顾成本与效果的优选档位;量产产品可直接选用集成细分驱动芯片以缩短开发周期。
本文基于《二相步进电机细分驱动的设计与实现》(北京交通大学,2007)等资料整理优化。
沧州艾诺威电子 — 国家高新技术企业,20+项国家专利
嵌入式系统开发 · 物联网方案 · AI智能硬件 · 一站式交付
电话:13930711029 | 邮箱:tech@czinv.com | 24小时内响应