控制信号排查:PWM、使能、方向与刹车
电机解锁失败,十有八九是控制信号出了问题。我见过太多工程师抱着示波器满板子找硬件故障,最后发现只是某个信号没拉对。这一章,咱们就把四个关键信号——PWM、使能、方向、刹车——挨个捋一遍。
核心原则:控制信号是电机驱动器的“指令集”。指令错了,硬件再完美也转不起来。
1. PWM 信号完整性检查
PWM 是电机调速的核心。说白了,它就是通过快速开关 MOS 管,用占空比来模拟不同的电压。如果 PWM 信号本身有问题,电机要么不动,要么乱动。
我习惯用示波器先看三个参数:频率、占空比、电平。频率对不对?很多驱动器对 PWM 频率有严格要求,比如常见的 20kHz,你给个 1kHz 它可能根本不响应。占空比是不是在有效范围内?有些驱动器要求占空比不能低于 5%,低于这个值就认为是关闭信号。
我的习惯:上电后先用示波器抓一下 PWM 引脚,看波形是否干净。如果有毛刺或振铃,先查查驱动端的匹配电阻。
电平问题也很常见。3.3V 的 MCU 直接连 5V 的驱动器?逻辑电平不匹配,驱动器可能识别不到高电平。我遇到过好几次,换了个电平转换芯片就解决了。
| PWM 参数 | 典型值 | 异常表现 |
|---|---|---|
| 频率 | 10kHz - 50kHz | 电机啸叫、不转、发热 |
| 占空比范围 | 5% - 95% | 低于下限电机不启动 |
| 高电平电压 | 3.3V 或 5V | 电平不匹配导致无法识别 |
| 上升/下降沿 | < 100ns | 过慢导致 MOS 管发热 |
注意:PWM 频率不是越高越好。频率太高,MOS 管的开关损耗会急剧增加。我曾经在一个项目中把频率从 20kHz 提到 50kHz,结果驱动器直接过热保护了。
2. 使能信号(EN)逻辑检查
使能信号,就是电机的“总开关”。EN 没拉对,其他信号再完美也没用。但问题在于,不同驱动器的使能逻辑可能完全相反——有的高电平使能,有的低电平使能。
我建议你先查数据手册,确认 EN 的有效电平。然后上电后用万用表量一下 EN 引脚电压。如果是高电平使能,引脚电压应该接近 VCC;如果是低电平使能,应该接近 GND。
还有一个容易忽略的点:使能信号的时序。有些驱动器要求 EN 必须在 PWM 信号稳定之后才能拉高。如果先拉 EN 再给 PWM,驱动器可能进入错误状态。
避坑指南:我曾经在一个项目中,EN 引脚悬空了。结果电机时转时不转,查了两天才发现是引脚浮空导致逻辑不稳定。所以,EN 引脚一定要明确拉高或拉低,不要悬空。
3. 方向信号(DIR)检查
方向信号控制电机的正反转。听起来简单,但 DIR 信号出问题,电机可能只朝一个方向转,或者干脆不转。
DIR 信号最常见的问题是抖动。如果 MCU 在初始化阶段 DIR 引脚电平不稳定,驱动器可能误判方向。我习惯在代码里给 DIR 引脚加一个去抖延时,比如先拉高/拉低,等待 10ms 后再输出 PWM。
另一个问题是 DIR 信号的电平匹配。和 PWM 一样,3.3V 和 5V 之间需要转换。有些驱动器内部有上拉或下拉电阻,你得确认外部电路不会和内部电阻冲突。
- 检查电平:用万用表测 DIR 引脚电压,确认在有效范围内。
- 检查抖动:用示波器看 DIR 引脚在切换瞬间是否有毛刺。
- 检查时序:DIR 切换后,建议等待至少 1ms 再改变 PWM。
我的经验:如果电机只能朝一个方向转,先别怀疑硬件。用代码强制切换 DIR 电平,看电机是否反转。如果反转正常,说明是软件逻辑问题;如果不反转,再查硬件。
4. 刹车信号(BRAKE)检查
刹车信号,说白了就是让电机急停。但很多工程师会忽略它——以为刹车信号没用到就不用管。其实,刹车信号如果处于有效状态,电机是无论如何都不会转的。
刹车信号的有效电平同样因驱动器而异。有些是低电平刹车,有些是高电平刹车。我见过一个案例,客户说电机解锁失败,结果发现刹车引脚被一个下拉电阻拉低了,而他们的驱动器是低电平刹车——等于一直踩着刹车不放。
| 刹车信号状态 | 电机行为 | 排查方法 |
|---|---|---|
| 有效(刹车) | 电机不转,处于制动状态 | 测量 BRAKE 引脚电平 |
| 无效(释放) | 电机可正常转动 | 确认电平与数据手册一致 |
| 悬空 | 状态不确定 | 加上拉或下拉电阻 |
注意:刹车信号释放后,不要立即输出大占空比的 PWM。电机从刹车状态切换到运行状态,需要一个软启动过程。否则,冲击电流可能触发驱动器的过流保护。
嗯,到这里四个信号就都过了一遍。你想想看,是不是很多解锁失败的问题,其实都是这些基础信号没处理好?下次遇到电机不转,别急着换硬件,先拿示波器把 PWM、EN、DIR、BRAKE 四个引脚都抓一遍。八成能找到问题。