4、电流采样电路设计:采样电阻选型、运放电路设计、ADC接口设计、滤波电路

好,咱们进入第四讲。电流采样,说白了就是给电机“号脉”。牙刷电机堵不堵,转得快不快,全靠电流波形说话。我见过不少工程师,算法写得天花乱坠,结果采样电路一塌糊涂,最后全白搭。这一节,咱们就把采样电路这摊事儿,掰开了揉碎了讲清楚。

4.1 采样电阻选型:别小看这颗“小芝麻”

采样电阻,就是串联在电机回路里的一颗精密电阻。电流流过它,产生压降,我们测这个压降就知道电流了。听起来简单,但选型坑很多。

阻值怎么定?

阻值太小,信号微弱,信噪比差。阻值太大,发热严重,还白白消耗功率。我一般遵循一个原则:满载时采样电阻上的压降控制在 50mV ~ 150mV 之间

举个例子,牙刷电机堵转电流假设是 1A,我选 0.1Ω 的电阻,压降就是 100mV。这个值,运放好处理,ADC 也能分辨。如果选 0.01Ω,压降才 10mV,噪声稍微大点就淹没了。

核心公式: R = V_sense / I_max
其中 V_sense 取 0.05V ~ 0.15V,I_max 为最大堵转电流。

功率怎么算?

这个很多人会忽略。堵转时电流最大,功率也最大。P = I² × R。1A 电流流过 0.1Ω,功率就是 0.1W。但别卡着极限选,我习惯留 2~3 倍余量。选 0.25W 或 0.5W 的封装,心里踏实。

材质选什么?

我推荐 金属膜电阻合金电阻。温漂要低,最好在 ±50ppm/℃ 以内。普通碳膜电阻温度系数太大,电流一上去,阻值飘了,采样就不准了。嗯,这里要注意,千万别为了省几分钱用碳膜,我吃过这个亏。

参数 推荐值 说明
阻值 0.01Ω ~ 0.1Ω 根据最大电流调整
功率 ≥ 3 × I²R 留足余量
温漂 ≤ ±50ppm/℃ 保证温度稳定性
封装 0805 / 1206 / 2512 功率越大,封装越大

4.2 运放电路设计:把微弱的信号“放大”

采样电阻上的电压通常只有几十毫伏,ADC 直接采,精度不够。所以需要运放做一级放大。我常用的拓扑是 差分放大电路

为什么用差分?

电机是感性负载,PWM 开关时,地线上会有很大的共模噪声。差分放大可以抑制共模信号,只放大差模信号(也就是我们想要的电流信号)。

电路长什么样?

看下面这个典型电路:

// 典型差分放大电路
// 假设采样电阻 Rs = 0.05Ω
// 目标放大倍数 Av = 50
// 则输出电压 Vout = I_load * Rs * Av

// 电阻取值:
// R1 = R3 = 1kΩ
// R2 = R4 = 50kΩ
// 放大倍数 = R2 / R1 = 50

// 运放选型建议:
// 1. 轨到轨输入输出(RRIO)
// 2. 低失调电压(< 1mV)
// 3. 高共模抑制比(CMRR > 80dB)
// 4. 带宽足够(GBW > 1MHz)

我个人习惯用 单电源运放,比如 MCP6001、LMV321 这类。牙刷是电池供电,单电源省事。注意要选轨到轨输出的,不然输出摆幅受限,ADC 采不到满量程。

小技巧: 运放输入端加两个对地二极管(BAV99),做钳位保护。万一电机反电动势打过来,不至于烧了运放。我曾在一次测试中忘了加,结果一个浪涌就把运放干掉了,教训深刻。

4.3 ADC接口设计:让单片机“看懂”电流

运放输出的是模拟电压,要进单片机,得通过 ADC 转换成数字量。这里有几个关键点。

ADC 分辨率怎么选?

牙刷电机堵转检测,8 位 ADC 勉强够用,但我不推荐。10 位或 12 位是主流。12 位 ADC,参考电压 3.3V,分辨率是 3.3V / 4096 ≈ 0.8mV。配合 50 倍放大,相当于能分辨 0.8mV / 50 / 0.05Ω ≈ 0.32mA 的电流变化。这个精度,堵转检测绰绰有余。

输入阻抗匹配

ADC 采样时,会有一个瞬间的电流冲击。如果运放输出阻抗太高,电压会被拉低,导致采样不准。我一般会在运放输出和 ADC 输入之间,加一个 电压跟随器 或者 RC 低通滤波

参考电压要稳

ADC 的参考电压(Vref)直接影响转换精度。如果直接用电池电压做 Vref,电池电量下降时,同样的电流值,ADC 读数会变。我建议用 内部基准外部基准芯片(比如 TL431)。

避坑指南: 我曾经在一个项目里,直接用 3.3V LDO 输出做 Vref。结果 LDO 负载调整率不好,电机一转,3.3V 掉到 3.2V,ADC 读数直接漂了 3%。后来换成独立基准,问题才解决。

4.4 滤波电路:把噪声“滤”干净

电机 PWM 开关频率通常在 20kHz 以上,会产生大量高频噪声。这些噪声会叠加在电流信号上,让 ADC 读数跳来跳去。所以,滤波是必须的。

硬件滤波:RC 低通

最简单的办法,在运放输出端加一个 RC 低通滤波器。截止频率 f_c = 1 / (2πRC)。我一般把截止频率设在 1kHz ~ 5kHz 之间。

举个例子:R = 10kΩ,C = 10nF,f_c ≈ 1.6kHz。这个频率能滤掉 PWM 噪声,又不会把电流变化的低频成分滤掉(堵转时电流变化频率很低)。

// RC 低通滤波器设计示例
// 目标截止频率:2kHz
// 选择 R = 10kΩ
// 计算 C = 1 / (2π * R * f_c)
//        = 1 / (2 * 3.14 * 10000 * 2000)
//        ≈ 7.96nF
// 取标称值 10nF,实际截止频率约 1.6kHz

// 注意:电容用 C0G 或 NPO 材质,温度特性好
// 不要用 X7R,容值会随电压变化

软件滤波:均值或中值

硬件滤波之后,软件上再做一次滤波,效果更好。我常用的方法是 滑动平均滤波。取最近 8 次或 16 次 ADC 采样值,求平均。这样既能平滑噪声,又能快速响应电流变化。

我的经验: 硬件滤波 + 软件滤波,双管齐下。硬件滤掉高频,软件平滑低频抖动。别指望单靠软件滤波,那是在给硬件设计补窟窿。

PCB 布局注意事项

最后说一句布局。采样电阻要靠近电机回路,走线要短而粗。运放和 ADC 要远离 PWM 走线和电感。模拟地和功率地要单点连接,别让大电流回流干扰小信号。

嗯,这一节内容不少。采样电阻、运放、ADC、滤波,环环相扣。哪个环节出问题,堵转检测都会失灵。你想想看,如果采样不准,算法再牛也是白搭。下一节,咱们就讲怎么用软件把这些信号处理成堵转判据。