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 桥有四种基本状态:

  1. 正转:左上 + 右下导通,电流从左向右流过电机。
  2. 反转:右上 + 左下导通,电流从右向左流过电机。
  3. 刹车:下管全通或上管全通,电机两端短路,快速制动。
  4. 滑行:所有管断开,电机自由旋转。

嗯,这里要注意:刹车和滑行是两码事。刹车时电机会瞬间停住,但会产生很大的反向电动势;滑行时电机慢慢停,适合惯性走位的场景。

我的经验:镜头对焦时,从高速到低速切换,我习惯先滑行一段再刹车,避免镜头“撞停”产生抖动。这个策略在变焦镜头里特别管用。

下面这张图是 H 桥的基本结构和工作流程,我画出来方便你理解:

H 桥驱动电路结构图 Q1 (左上) Q3 (右上) Q2 (左下) Q4 (右下) 电机 M VCC (电源) GND (地) 正转电流路径 正转:Q1 + Q4 导通,电流从左向右流过电机 反转:Q2 + Q3 导通,电流从右向左流过电机

2.3 电流纹波抑制

电流纹波是 PWM 驱动的“副产品”。每次开关管导通或关断,电流都会上下波动。纹波大了,电机会抖动,对焦就不准。

纹波大小主要受三个因素影响:

  • 电感:电机线圈的电感越大,纹波越小。但电感大了,电流响应变慢。
  • 频率:频率越高,纹波越小。但频率高了,开关损耗增加。
  • 占空比:50% 占空比时纹波最大,两端(0% 或 100%)纹波最小。

我曾经踩过的坑:有一款镜头在低温环境下对焦抖动,查了半天发现是电机电感随温度下降而减小,纹波变大。后来在电路里并联了一个小电容,把高频纹波滤掉了。记住,温度会影响电感值,设计时要留余量。

抑制纹波的常用方法:

  1. 增加 PWM 频率:最简单,但注意热损。
  2. 串联电感:在电机前端加一个额外的电感,成本低效果好。
  3. 使用同步整流:用 MOSFET 代替二极管续流,降低压降和纹波。
  4. 软件滤波:在 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 控制的核心就是平衡。频率、占空比、纹波、死区,每个参数都牵一发动全身。做镜头驱动,没有万能参数,只有针对具体电机和负载的调优过程。