2. PWM 控制原理:频率、占空比与驱动核心
做镜头驱动,绕不开 PWM。说白了,PWM 就是通过快速开关电压,让电机“感觉”到一个平均电压。你想想看,电机是个惯性系统,它不会跟着每一个脉冲剧烈抖动,而是平滑地响应平均值。这个平均值的大小,就由占空比决定。
我个人习惯把 PWM 比作水龙头。频率是开关龙头的快慢,占空比是每次打开的大小。频率太低,水流会一抖一抖的;频率太高,水龙头本身可能扛不住。镜头驱动里,我们既要让电机转得稳,又要让对焦速度快,这里面的门道不少。
2.1 PWM 频率与占空比
先看两个核心参数:
- 频率:每秒开关的次数,单位 Hz。频率越高,电机运行越平滑,但开关损耗也越大。
- 占空比:高电平时间占整个周期的比例,单位 %。占空比 50% 意味着一半时间开、一半时间关,平均电压就是电源电压的一半。
举个例子,电源电压 3.3V,占空比 60%,电机得到的平均电压就是 3.3V × 60% = 1.98V。这个电压直接决定了电机的转速和力矩。
关键公式:
平均电压 = 电源电压 × 占空比
纹波电流 ≈ (电源电压 × 占空比 × (1 - 占空比)) / (电感 × 频率)
我在项目中遇到过一个问题:频率选低了,电机在低速时“咔咔”响,像在打嗝。后来把频率从 1kHz 提到 20kHz,声音没了,但驱动芯片烫得厉害。这就是频率的取舍——太低有噪声,太高有热损。
| 参数 | 频率过低 | 频率过高 |
|---|---|---|
| 电机噪声 | 明显,可闻 | 几乎无 |
| 电流纹波 | 大 | 小 |
| 开关损耗 | 小 | 大 |
| 驱动芯片温度 | 低 | 高 |
| 对焦平滑度 | 差 | 好 |
镜头驱动常用的 PWM 频率范围是 10kHz ~ 50kHz。低于 10kHz,人耳能听到啸叫;高于 50kHz,驱动芯片的开关损耗会明显上升。我一般从 20kHz 起步调试,再根据实际纹波和温升微调。
2.2 H 桥驱动电路
电机要正转、反转、刹车、滑行,靠什么?H 桥。名字很形象,四个开关管组成一个“H”形,电机在中间横杠上。
H 桥有四种基本状态:
- 正转:左上 + 右下导通,电流从左向右流过电机。
- 反转:右上 + 左下导通,电流从右向左流过电机。
- 刹车:下管全通或上管全通,电机两端短路,快速制动。
- 滑行:所有管断开,电机自由旋转。
嗯,这里要注意:刹车和滑行是两码事。刹车时电机会瞬间停住,但会产生很大的反向电动势;滑行时电机慢慢停,适合惯性走位的场景。
我的经验:镜头对焦时,从高速到低速切换,我习惯先滑行一段再刹车,避免镜头“撞停”产生抖动。这个策略在变焦镜头里特别管用。
下面这张图是 H 桥的基本结构和工作流程,我画出来方便你理解:
2.3 电流纹波抑制
电流纹波是 PWM 驱动的“副产品”。每次开关管导通或关断,电流都会上下波动。纹波大了,电机会抖动,对焦就不准。
纹波大小主要受三个因素影响:
- 电感:电机线圈的电感越大,纹波越小。但电感大了,电流响应变慢。
- 频率:频率越高,纹波越小。但频率高了,开关损耗增加。
- 占空比:50% 占空比时纹波最大,两端(0% 或 100%)纹波最小。
我曾经踩过的坑:有一款镜头在低温环境下对焦抖动,查了半天发现是电机电感随温度下降而减小,纹波变大。后来在电路里并联了一个小电容,把高频纹波滤掉了。记住,温度会影响电感值,设计时要留余量。
抑制纹波的常用方法:
- 增加 PWM 频率:最简单,但注意热损。
- 串联电感:在电机前端加一个额外的电感,成本低效果好。
- 使用同步整流:用 MOSFET 代替二极管续流,降低压降和纹波。
- 软件滤波:在 ADC 采样时做多次平均,但治标不治本。
2.4 死区时间设置
H 桥里,上下两个管子不能同时导通。如果 Q1 和 Q2 同时打开,电源直接对地短路,瞬间大电流会烧毁芯片。为了防止这种情况,我们需要在切换时插入一段“死区时间”——两个管子都关断的短暂间隔。
死区时间怎么设?
- 太短:有直通风险,芯片可能冒烟。
- 太长:电机在死区里没有驱动力,电流断续,对焦会卡顿。
我一般从 50ns 开始试,用示波器看上下管的栅极波形,确保一个完全关断后另一个才开启。不同驱动芯片的死区时间不同,有的芯片内部已经集成了死区控制,外部只需要配个电阻。
| 驱动芯片类型 | 典型死区时间 | 调节方式 |
|---|---|---|
| DRV8837 | 100ns | 固定内部 |
| L298N | 1μs | 外部 RC |
| 分立 MOSFET | 50~200ns | 软件配置 |
我的调试习惯:先用示波器抓取死区时间,确保有 20% 的余量。比如芯片要求最小 50ns,我设到 60~70ns。余量太小,温度一高就可能出问题。
死区时间设置不当的后果:
- 死区过短 → 直通短路 → 芯片过热保护或烧毁
- 死区过长 → 电流断续 → 电机抖动、对焦不准
- 死区不对称 → 正反转性能不一致 → 镜头来回对焦位置偏移
嗯,这里要特别提醒:死区时间不是越大越好。有些工程师为了保险,把死区设到 1μs,结果电机在低速时一顿一顿的。你想想看,20kHz 的 PWM 周期才 50μs,死区占了 1μs,占空比精度就损失了 2%。
总结一下,PWM 控制的核心就是平衡。频率、占空比、纹波、死区,每个参数都牵一发动全身。做镜头驱动,没有万能参数,只有针对具体电机和负载的调优过程。