先理清整体链路:STM32 控制器 → PUL/DIR 脉冲信号 → 步进驱动器 → 两相步进电机 (A/B 绕组)
重点:细分是【驱动器内部实现】,电机本身不知道细分!电机永远只认识 1.8° 机械整步。
一、两相步进电机基础回顾(前提)
两相双极步进电机内部有两组线圈:A 相、B 相。 转子是永磁磁铁,转子会被线圈产生的合成磁场吸引,磁场转到哪,转子跟到哪。
整步模式:磁场只有 4 个离散位置,磁场跳跃式切换,转子一跳 1.8°。
二、驱动器怎么实现细分(核心重点)
1.整步模式怎么做
驱动器只有两种状态:线圈全开电流 / 完全断电4 种通电组合:A 通、AB 通、B 通、都不通;磁场只有 4 个点位,大步跳跃。
2. 细分(微步)核心原理
驱动器不再简单开关线圈电源!使用PWM 恒流斩波,连续、平滑调节 A 相、B 相绕组内部电流大小。 把 A 电流、B 电流组合成矢量磁场:
\(I_{合}=\sqrt{I_A^2+I_B^2}\) 驱动器按照正弦规律,连续改变 \(I_A\) 和 \(I_B\) 的比值,让合成磁场缓慢连续旋转,而不是跳变。
举例:16 细分把原本 1 整步(1.8°)对应的磁场跳转,拆成 16 个微小磁场位置。 外部每收到1 个 PUL 脉冲,磁场向前挪动 1/16 整步的角度。
✅直观比喻:
整步:上楼梯,一格一格大跳跃;
细分:斜坡缓坡,把一层楼梯拆成十几级微小台阶,平滑爬升。
关键误区(之前持续讨论的知识点)
- 电机机械结构没有变化,细分只是驱动器电气算法,不改变电机硬件;
- 细分提升角度分辨率,不能提高电机最大扭矩;
- 电机物理极限转速不变;想要同等转速,提高细分后必须提高 PUL 脉冲频率。
三、标准控制接口信号(脉冲 / 方向模式,工业最通用)
控制器 → 驱动器 信号线:
- PUL (CP 脉冲信号):位置指令 脉冲边沿触发(大多默认上升沿),1 个脉冲 = 走 1 个微步
- DIR (方向信号):旋转方向 电平高低决定磁场旋转方向,提前建立稳定电平,再发送脉冲
- ENA (使能,可选):高 / 低电平解锁电机,断电释放力矩
注意:电机 A+ A- B+ B- 只是功率供电线,没有脉冲信号!
四、接口信号时序要求(实操非常重要)
时序硬性规则(几乎所有两相驱动器通用)
DIR 方向信号,必须提前于 PUL 脉冲建立稳定电平建议:DIR 电平稳定保持 ≥ 5μs 之后,再输出 PUL 脉冲。 ❌ 如果脉冲和方向同时变化,驱动器识别错乱,电机偶尔反转、丢步。
PUL 脉冲要求
- 脉冲高电平宽度、低电平宽度 ≥ 2~5μs(不同驱动器略有差异)
- 脉冲频率上限:受驱动器芯片限制,同时受电机反电动势约束
时序文字简图:
plaintext
DIR : ───────████████████──────(方向电平先稳定) WAIT: ≥5us PUL : ────████──████──████────(之后持续输出脉冲)时序通俗解释
先告诉驱动器:往哪边转(DIR),等待信号稳定; 然后持续发送脉冲,每来一个脉冲,驱动器挪动一次磁场(1 微步)。
五、完整工作流程(从头到尾串联)
- STM32 设置 DIR 电平,指定正转 / 反转,等待电平稳定;
- STM32 定时器输出 PUL 脉冲;
- 驱动器捕捉每一个 PUL 脉冲边沿;
- 驱动器内部累加脉冲计数,根据细分档位计算当前 A、B 两相目标电流;
- 驱动器内部 H 桥 + 恒流斩波,调节 A/B 绕组电流,生成对应的合成磁场;
- 电机永磁转子跟随合成磁场转动;
- 持续发脉冲 → 磁场持续旋转 → 电机持续转动;停止发脉冲,磁场固定,电机锁止。
举个实例(1.8° 电机,16 细分)
- 机械整步:1 脉冲 = 1.8°,一圈 200 脉冲
- 开启 16 细分:驱动器内部把 1.8° 拆成 16 份 外部接收 1 个 PUL 脉冲 → 磁场移动 0.1125° 电机转完整一圈,需要 200×16=3200 个脉冲
六、细分场景下的转速关系
七、结合设备【PKP213D05B + 蜗轮蜗杆光学旋转台】工程提示
- 光学平台追求平稳、低震动,一般开启 8/16 细分;
- 切换细分档位时,STM32 程序必须同步修改脉冲频率,否则台面速度变化;
- DIR 和 PUL 严格遵守时序,否则光学角度定位出现随机偏差;
- 蜗轮蜗杆存在回程间隙,细分只能提升指令分辨率,不能消除机械间隙误差。