2、主控芯片选型:STM32系列选型策略(F1/F4/G4/H7)、资源需求评估、封装与散热

好,咱们进入正题。电机驱动板的核心大脑,就是主控芯片。选对了,后面顺风顺水;选错了,改板子改到想哭。我见过太多工程师,一开始随便选个F103,结果算力不够、外设不够,最后硬着头皮上RTOS或者换芯片,整个项目周期全乱套了。

所以这一章,我带你把STM32的选型逻辑彻底捋清楚。咱们不搞花架子,直接上干货。

2.1 STM32系列怎么挑?F1/F4/G4/H7的定位

STM32家族很大,但做电机驱动,你主要看这四个系列:F1、F4、G4、H7。它们各有各的脾气。

系列 内核 主频 典型应用场景 我的评价
F1 Cortex-M3 72MHz 简单直流电机、低速步进电机 经典入门,但资源偏紧
F4 Cortex-M4F 168-180MHz 通用伺服、无刷直流电机(BLDC) 性价比之王,带FPU
G4 Cortex-M4F 170MHz 高性能FOC、数字电源 电机专用,外设太香了
H7 Cortex-M7+M4 480-550MHz 多轴伺服、机器人、实时以太网 性能怪兽,但功耗和成本也高

说白了,选型就是做减法。你先别想用多好的,先想清楚你的电机要跑多快、控制精度要多高。

2.1.1 F1系列:老将出马,一个顶俩?

F1是STM32的常青树。我最早做电机驱动,用的就是STM32F103。那时候觉得72MHz挺快的,跑个六步换相法绰绰有余。

但说实话,现在做FOC(磁场定向控制),F1就有点吃力了。为什么?因为它没有硬件浮点运算单元(FPU)。算个SVPWM(空间矢量脉宽调制),全靠软件模拟,CPU占用率直接飙到80%以上。你想想看,这时候你还想加点通信、做点保护逻辑?基本没戏。

注意: 如果你只是做简单的有刷电机调速,或者低速步进电机,F1完全够用。但要做无刷电机的FOC控制,我建议你直接跳过F1。

2.1.2 F4系列:性价比之王

F4是我个人最常用的系列。它带了单精度FPU,算起三角函数、PID(比例积分微分)来,比F1快了好几倍。我记得有一次项目,客户要求电机在10000转/分钟下做闭环控制。用F103死活算不过来,换成F405,主频168MHz,瞬间搞定。

F4的缺点呢?它的高级定时器虽然不错,但跟G4比,还是差了点意思。比如做三电阻采样,F4需要额外搭运放电路,而G4直接集成了。

2.1.3 G4系列:电机驱动的「专属武器」

G4是ST专门为电机控制和数字电源推出的系列。我强烈建议,如果你做的是高性能FOC,比如无人机电调、机器人关节电机,直接上G4。

它有几个杀手锏:

  • HRTIM(高分辨率定时器): 分辨率能到几十皮秒级别,做高频PWM(脉宽调制)非常稳。
  • 内置运放和比较器: 三电阻采样、过流保护,片内搞定,省了外部运放的钱和PCB面积。
  • CORDIC和FMAC协处理器: 硬件算三角函数和滤波,CPU几乎零开销。

我曾经在一个项目中,用G431同时控制两个无刷电机做FOC,CPU占用率才40%左右。换做F4,早就跑满了。

2.1.4 H7系列:性能怪兽,但别乱用

H7是双核架构,一个M7跑主逻辑,一个M4跑外设或安全任务。主频最高550MHz,算力是F4的3倍以上。

但说实话,H7不是给普通电机驱动准备的。它适合什么场景?多轴伺服驱动器、带EtherCAT(实时以太网)的工业控制器、或者需要同时做电机控制和上位机算法的复杂系统。

我个人的建议是:除非你的项目对算力有变态要求,否则别轻易上H7。为什么?因为它的功耗高、PCB布局要求高、调试也复杂。杀鸡用牛刀,反而容易出问题。

2.2 资源需求评估:你到底需要多少「料」?

选芯片不能光看系列,还得看具体型号。你需要评估以下几个关键资源:

2.2.1 定时器资源

电机驱动的核心就是PWM生成和编码器捕获。你需要:

  • 高级定时器(TIM1/TIM8): 至少1个,用于产生互补PWM、带死区插入。做FOC的话,最好有2个(控制两个电机)。
  • 通用定时器: 用于编码器接口(Encoder Mode)或霍尔传感器捕获。每个电机至少需要1个。
  • HRTIM(可选): 如果你做高频PWM(比如100kHz以上),G4的HRTIM是必须的。
小技巧: 我习惯在选型时,把定时器数量乘以0.8来估算实际可用数量。因为有些定时器会被系统时钟、RTOS(实时操作系统)滴答占用。

2.2.2 ADC(模数转换器)资源

电流采样是FOC的关键。你需要:

  • 采样通道数: 至少3个(U、V、W三相电流),加上母线电压、温度等,建议预留5-6个通道。
  • 采样速率: 至少1Msps(每秒百万次采样)。G4的ADC能到5Msps,非常给力。
  • 同步采样: 做三电阻采样时,需要ADC能同时采样两相电流。F4和G4都支持注入式同步采样。

2.2.3 通信接口

现在电机驱动很少是孤立的。你需要考虑:

  • CAN/FD: 工业现场总线,几乎必备。
  • UART: 调试、固件升级。
  • SPI/I2C: 连接外部传感器(如磁编码器AS5047、温度传感器)。
  • USB: 如果需要上位机调试,USB CDC(通信设备类)很方便。

2.2.4 Flash和RAM

很多人忽略这个。我见过有人用64KB Flash的芯片,结果FOC算法库一加,直接超了。建议:

  • Flash: 至少128KB。如果要做OTA(空中升级)或存储参数,建议256KB以上。
  • RAM: 至少32KB。FOC算法需要大量数组存电流、角度、速度数据。如果跑RTOS,建议64KB以上。

2.3 封装与散热:别让芯片「发烧」

选好了芯片型号,还得看封装。封装直接影响散热和可制造性。

2.3.1 常见封装对比

封装 引脚数 散热能力 焊接难度 我的建议
LQFP 48-144 一般 样机和小批量首选
UFQFPN 32-48 较差 空间受限时用,注意散热
BGA 100-240 大批量、高性能场景

我个人习惯,样机阶段用LQFP封装。为什么?好焊接、好调试、好飞线。万一焊错了,热风枪一吹就下来。BGA虽然散热好,但一旦焊上去,想拆下来就难了。

2.3.2 散热设计要点

电机驱动的主控芯片,发热主要来自两个地方:

  • IO口驱动电流: 如果你直接用GPIO驱动光耦或隔离器,电流大了芯片会发热。建议加缓冲器(如74HC245)。
  • 内部核心电压: H7这种高频芯片,核心电压低但电流大。如果LDO(低压差线性稳压器)散热不好,芯片温度会很高。
避坑指南: 我曾经在一个项目中,用STM32F407直接驱动6个光耦,结果芯片温度飙到85°C。后来加了74HC245做缓冲,温度直接降到45°C。嗯,有时候问题就这么简单。

散热的具体做法:

  • PCB铜皮散热: 在芯片底部铺铜,打过孔到地平面。LQFP封装可以在芯片下方加散热焊盘。
  • 风道设计: 如果机箱有风扇,把芯片放在风道入口处。
  • 降频使用: 如果算力有余量,可以适当降低主频。比如H7跑400MHz而不是550MHz,功耗能降30%。

2.4 我的选型决策流程

最后,我分享一下自己的选型流程。你照着做,基本不会踩坑:

  1. 先定控制算法: 六步换相?FOC?还是直接转矩控制(DTC)?算法越复杂,对算力要求越高。
  2. 再算外设需求: 几个电机?几个编码器?要不要CAN?要不要以太网?列个清单。
  3. 然后看封装: 板子空间多大?手工焊接还是机器贴片?
  4. 最后看成本: F1最便宜,G4适中,H7最贵。别为了省几块钱选F1,结果后面花几百块改板子。

举个例子:你要做一个两轮平衡车,用两个无刷电机做FOC。我会选G431。为什么?两个HRTIM控制两个电机,内置运放做电流采样,CAN接口连上位机,Flash 256KB够用。完美。

好,这一章就到这里。下一章咱们聊聊电源电路设计——这可是电机驱动的「心脏」,搞不好会炸机的。