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%以上。你想想看,这时候你还想加点通信、做点保护逻辑?基本没戏。
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是必须的。
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(低压差线性稳压器)散热不好,芯片温度会很高。
散热的具体做法:
- PCB铜皮散热: 在芯片底部铺铜,打过孔到地平面。LQFP封装可以在芯片下方加散热焊盘。
- 风道设计: 如果机箱有风扇,把芯片放在风道入口处。
- 降频使用: 如果算力有余量,可以适当降低主频。比如H7跑400MHz而不是550MHz,功耗能降30%。
2.4 我的选型决策流程
最后,我分享一下自己的选型流程。你照着做,基本不会踩坑:
- 先定控制算法: 六步换相?FOC?还是直接转矩控制(DTC)?算法越复杂,对算力要求越高。
- 再算外设需求: 几个电机?几个编码器?要不要CAN?要不要以太网?列个清单。
- 然后看封装: 板子空间多大?手工焊接还是机器贴片?
- 最后看成本: F1最便宜,G4适中,H7最贵。别为了省几块钱选F1,结果后面花几百块改板子。
举个例子:你要做一个两轮平衡车,用两个无刷电机做FOC。我会选G431。为什么?两个HRTIM控制两个电机,内置运放做电流采样,CAN接口连上位机,Flash 256KB够用。完美。
好,这一章就到这里。下一章咱们聊聊电源电路设计——这可是电机驱动的「心脏」,搞不好会炸机的。