2. 电机基础
做电机控制,选对MCU是第一步。我见过不少项目,算法调得挺好,结果因为外设资源不够或者性能瓶颈,最后不得不换芯片重来。今天咱们就聊聊GD32的F303和F4系列,看看它们到底适合什么样的电机控制场景。
核心观点:F303系列是专为电机控制优化的性价比之选,F4系列则是面向高性能、复杂算法场景的旗舰方案。选型不是越贵越好,关键是匹配你的控制需求。
一、整体架构差异
先看一张对比图,把两个系列的核心差异理清楚。
二、定时器资源:电机控制的灵魂
电机控制的核心就是PWM生成和电流采样时序。定时器在这块扮演的角色,怎么说都不过分。
2.1 GD32F303的HRTIM
F303系列最大的亮点就是那个高分辨率定时器(HRTIM)。我最早用F303做FOC时,第一反应是「这玩意儿也太强了」。
- PWM分辨率:最高可达217ps,说白了就是你能把占空比调得极其精细
- 通道数:最多10个独立通道,支持三相六路PWM互补输出
- 死区插入:硬件自动插入,精度可编程,省去软件补偿的麻烦
- 刹车功能:紧急停止时硬件级关断PWM,安全性有保障
我的经验:用HRTIM做FOC时,PWM频率可以轻松跑到100kHz以上。我之前做过一个高速电机项目,转速要求12万转,普通定时器根本扛不住,HRTIM的217ps分辨率让电流纹波小了很多。
2.2 GD32F4的高级定时器
F4系列没有HRTIM,但它的高级定时器(如TIM1、TIM8)也足够强大。
- PWM分辨率:基于系统时钟,240MHz下约4.17ns
- 通道数:每个高级定时器有4个通道,支持三相PWM
- 互补输出:支持,带可编程死区
- 编码器接口:硬件支持正交编码器解码
| 对比项 | F303 HRTIM | F4 高级定时器 |
|---|---|---|
| PWM分辨率 | 217ps | 4.17ns (240MHz) |
| 独立通道数 | 10 | 4 × 2组 |
| 死区精度 | 可编程,ns级 | 可编程,ns级 |
| 刹车功能 | 硬件级 | 硬件级 |
| 编码器接口 | 需外设配合 | 内置 |
注意:如果你做的是低速电机或者对PWM分辨率要求不高,F4的高级定时器完全够用。但如果你要做高速电机(比如10万转以上),F303的HRTIM几乎是必须的。
三、ADC:电流采样的精度与速度
FOC控制里,电流采样是闭环的关键。ADC的性能直接影响控制精度。
3.1 F303的双ADC同步采样
F303系列内置了两个独立的ADC模块,支持同步采样模式。这一点在电机控制里特别实用。
- 分辨率:12位,最快1μs转换时间
- 同步采样:两个ADC可以同时采样两相电流,消除时间差
- 注入通道:支持,适合在PWM周期内插入采样
- 触发源:可由HRTIM硬件触发,实现PWM与ADC的精确同步
我习惯把ADC1和ADC2分别配置为采样U相和V相电流,用HRTIM的触发信号同时启动转换。这样采到的电流值就是同一时刻的,Clark变换算出来才准。
3.2 F4的多路ADC
F4系列通常有3个ADC模块,每个模块支持多个通道。
- 分辨率:12位,最快0.5μs转换时间
- 多路采样:3个ADC可以并行工作,但同步精度不如F303的硬件同步
- 注入通道:支持
- 触发源:可由定时器触发,但需要软件配合对齐
关键差异:F303的双ADC是硬件同步的,采样时间差可以忽略不计。F4虽然ADC数量多,但同步需要软件干预,在高频PWM下可能会有几个μs的偏差。这个偏差在低速时影响不大,但高速电机控制里会引入相位误差。
四、DAC:模拟输出的应用场景
DAC在电机控制里用得不多,但某些场景下很关键。
4.1 F303的DAC
F303系列通常有2个12位DAC通道。
- 输出范围:0~3.3V
- 更新速率:最快1MHz
- 应用场景:模拟量输出、参考电压生成、示波器调试
4.2 F4的DAC
F4系列同样有DAC,但部分型号支持更高精度或更多通道。
- 输出范围:0~3.3V
- 更新速率:最快2MHz
- 应用场景:模拟量输出、波形生成、音频输出
说实话,做电机控制时DAC用得不多。我一般用它来输出调试信号,比如把电流环的给定值用DAC输出,接到示波器上看波形。F303的DAC够用,F4的DAC更快一些。
五、CAN通信:多电机协同的关键
现在很多项目都是多电机协同控制,CAN总线几乎是标配。
5.1 F303的CAN
F303系列支持CAN 2.0B,速率最高1Mbps。
- 邮箱数量:3个发送邮箱,2个接收FIFO
- 滤波器:28个可配置的标识符滤波器
- 应用场景:工业现场总线、多电机同步
5.2 F4的CAN-FD
F4系列部分型号支持CAN-FD(灵活数据速率)。
- 速率:数据段最高8Mbps
- 数据长度:单帧最多64字节(CAN 2.0只有8字节)
- 邮箱数量:更多,支持更复杂的通信协议
- 应用场景:高速数据交换、固件升级、复杂网络
| 对比项 | F303 CAN 2.0 | F4 CAN-FD |
|---|---|---|
| 最高速率 | 1Mbps | 8Mbps |
| 单帧数据 | 8字节 | 64字节 |
| 邮箱数量 | 3发送+2接收 | 更多 |
| 滤波器 | 28个 | 更多 |
我的建议:如果只是做单电机控制或者简单的多电机同步,F303的CAN 2.0完全够用。但如果你要做机器人关节控制,需要频繁交换大量数据,F4的CAN-FD会省心很多。
六、选型决策矩阵
最后给一个选型决策表,帮你快速判断该用哪个系列。
| 应用场景 | 推荐系列 | 理由 |
|---|---|---|
| 低速电机(<3000rpm) | F303 或 F4 | 对PWM分辨率要求不高,两者均可 |
| 高速电机(>10000rpm) | F303 | HRTIM的高分辨率PWM是关键 |
| 多电机协同 | F4 | CAN-FD通信效率更高 |
| 复杂算法(如无传感器FOC) | F4 | 更高主频+FPU,浮点运算更快 |
| 成本敏感型产品 | F303 | 性价比高,外设够用 |
| 需要模拟输出调试 | 两者均可 | DAC功能相似 |
避坑提醒:我曾经在一个项目里选了F4做电机控制,结果发现PWM分辨率不够,导致电机在低速时抖动明显。后来换成F303,问题就解决了。所以选型时一定要先算清楚你的PWM分辨率需求,别光看主频。