4. GD32硬件平台

电流采样是FOC控制里最关键的环节之一。说白了,你算出来的电流环PID再漂亮,采回来的电流不准,那全是白搭。我这些年调试过的电机驱动板,十块里有七八块的问题都出在采样电路上。

今天咱们就把单电阻、双电阻、三电阻这三种方案掰开揉碎了讲清楚。我会结合GD32的ADC触发机制和PWM时序,把采样电阻选型、布局、运放电路设计一次性说透。

4.1 三种采样方案的核心差异

先看一张对比表,心里有个底:

方案 采样电阻数量 采样时刻 重构方式 最低成本 最低噪声
单电阻 1个(下桥臂公共端) PWM周期内两个不同时刻 两次采样重构三相电流 ★★★★★ ★★☆☆☆
双电阻 2个(两相下桥臂) PWM周期内同一时刻 两相采样+基尔霍夫计算第三相 ★★★★☆ ★★★★☆
三电阻 3个(三相下桥臂) PWM周期内同一时刻 三相直接采样 ★★★☆☆ ★★★★★

4.2 单电阻采样——省钱但费心

单电阻采样只用一个采样电阻,放在三相下桥臂的公共端。它的原理是利用PWM开关状态,在不同时刻采集母线电流,然后反推出三相电流。

采样原理:

  • 当某一相下桥臂导通时,母线电流等于该相电流
  • 在PWM周期的两个不同时刻采样,得到两相电流
  • 第三相电流通过基尔霍夫电流定律计算:Iu + Iv + Iw = 0
我曾经踩过的坑:单电阻采样在PWM占空比接近50%或接近0%时,采样窗口会变得非常窄。GD32的ADC采样保持时间如果设置不当,采到的值完全是乱的。我建议采样窗口至少保留1μs,否则别指望电流环能跑起来。

适用场景:低成本风机、水泵等对电流环带宽要求不高的应用。如果你要做伺服或机器人关节,我劝你直接跳过单电阻。

4.3 双电阻采样——性价比之选

双电阻采样是我个人最常用的方案。它在两相下桥臂各放一个采样电阻,同一时刻采样两相电流,第三相用基尔霍夫定律算出来。

采样原理:

  • 在PWM周期中间点(所有相都处于有效状态时)触发ADC
  • 同时采样两相下桥臂电流
  • 第三相电流 = -(Iu + Iv)

这里有个细节:采样时刻必须避开开关管导通和关断的瞬间,否则会有严重的开关噪声。我一般会在PWM定时器更新事件后延迟1-2μs再触发ADC。

我的经验:双电阻采样时,采样电阻的布局要尽量靠近MOS管源极。我见过有人把采样电阻放在离MOS管5cm远的地方,结果采回来的电流波形全是毛刺。记住:采样回路越小,噪声越低。

4.4 三电阻采样——性能天花板

三电阻采样是性能最好的方案,三相各用一个采样电阻,直接测量三相电流。没有重构误差,没有计算延迟,电流环带宽可以做到最高。

采样原理:

  • 三相下桥臂各串联一个采样电阻
  • 在PWM周期中间点同时触发三路ADC
  • 直接得到三相电流值

GD32的ADC支持多通道同步采样,三电阻方案正好能发挥这个优势。我做过一个项目,用三电阻采样配合GD32的DMA,电流环带宽跑到了2kHz,效果非常理想。

关键点:三电阻方案虽然性能最好,但成本也最高。三个采样电阻加上三路运放,BOM成本比双电阻方案高出30%-50%。如果你的产品对成本敏感,双电阻方案是更务实的选择。

4.5 采样电阻选型与布局

采样电阻选型有几个关键参数:阻值、功率、温漂、电感。我列个表方便你对照:

参数 推荐值 选型依据
阻值 5mΩ ~ 20mΩ 阻值太小信号弱,太大发热严重
功率 ≥ 2倍实际功耗 留余量防止温漂过大
温漂 ≤ 50ppm/℃ 温漂太大会导致电流采样偏移
电感 ≤ 5nH 电感大会引入高频噪声

布局要点:

  • 采样电阻必须紧贴MOS管源极,走线越短越好
  • 采样信号走差分线,远离PWM信号和功率走线
  • 采样电阻下方不要铺铜,避免寄生电容影响高频响应
  • 我习惯在采样电阻两端各放一个100pF的滤波电容,滤除高频噪声
我曾经犯过的错:有一块板子采样波形一直有振荡,查了两天才发现是采样电阻的焊盘太大,寄生电容和走线电感形成了LC谐振。后来把焊盘改小,问题就解决了。布局这东西,细节决定成败。

4.6 运放电路设计——偏置与增益

采样电阻上的信号是mV级别的,必须经过运放放大后才能送入GD32的ADC。运放电路的核心是两个参数:偏置电压和增益。

偏置电压:

  • 电机电流是双向的(正转和反转),采样电阻上的电压有正有负
  • GD32的ADC只能采集0~3.3V的电压
  • 所以需要把双极性信号偏置到1.65V(ADC参考电压的一半)

增益计算:

  • 假设采样电阻10mΩ,最大电流±10A,则采样电压±100mV
  • ADC满量程3.3V,偏置1.65V,可用范围±1.65V
  • 增益 = 1.65V / 100mV = 16.5倍

我常用的运放电路是差分放大+偏置的结构:

// 运放电路参数计算示例
// 采样电阻:Rshunt = 10mΩ
// 最大电流:Imax = ±10A
// 采样电压:Vshunt = ±100mV
// ADC参考:Vref = 3.3V
// 偏置电压:Vbias = 1.65V
// 目标增益:G = 1.65V / 0.1V = 16.5

// 实际电路:差分放大 + 加法器
// 增益电阻:Rf = 16.5kΩ, Rg = 1kΩ
// 偏置电阻:R1 = R2 = 10kΩ
// 输出:Vout = Vbias + G * (V+ - V-)
我的习惯:运放选型时重点关注失调电压和共模抑制比。我常用的运放是TI的OPA2376或ADI的AD8606,失调电压都在50μV以内,CMRR在100dB以上。便宜点的可以用LMV358,但性能会差一些。

4.7 三种方案的SVG对比图

下面这张图把三种采样方案的结构和采样时刻画清楚了,你可以对照着理解:

三种电流采样方案对比 三种电流采样方案结构对比 单电阻采样 • 1个采样电阻 • 公共端下桥臂 • 两次采样重构 • 成本最低 • 噪声最大 双电阻采样 • 2个采样电阻 • 两相下桥臂 • 同时采样两相 • 性价比之选 • 中等噪声 三电阻采样 • 3个采样电阻 • 三相下桥臂 • 直接采样三相 • 性能最好 • 成本最高 采样时刻对比 单电阻:PWM周期内两个不同时刻采样 双电阻/三电阻:PWM周期中间点同时采样 采样窗口必须避开开关管导通/关断瞬间 方案选择:低成本选单电阻,高性能选三电阻,双电阻是折中方案 推荐:双电阻

4.8 方案选择建议

最后给个总结性的建议,方便你根据项目需求做选择:

  • 成本敏感、性能要求低:单电阻采样。但要做好PWM时序优化,否则电流环带宽上不去
  • 性能与成本平衡:双电阻采样。我个人最推荐,适合大多数FOC应用
  • 高性能伺服、机器人:三电阻采样。电流环带宽可以做到最高,但BOM成本也最高
我的最终建议:如果你刚开始做FOC,先从双电阻方案入手。等把电流环调顺了,再根据产品定位决定是否降成本用单电阻,或者提性能用三电阻。一口吃不成胖子,电机控制这行,稳扎稳打才是正道。