2. STM32硬件平台搭建:主控选型、电机驱动与传感器设计
硬件平台是机器人运动学标定的地基。地基没打好,后面算法调得再好也白搭。我个人习惯是先确定控制周期和精度需求,再反推主控和驱动方案。这一章咱们就把STM32机器人控制器的硬件选型与接口设计讲透。
2.1 主控选型:H7还是F4?
选主控说白了就是算一笔账——你的控制周期要多快?算法有多重?
| 对比项 | STM32H743 | STM32F407 |
|---|---|---|
| 内核 | Cortex-M7 @ 480MHz | Cortex-M4 @ 168MHz |
| FPU | 双精度硬件浮点 | 单精度硬件浮点 |
| SRAM | 1MB (含DTCM 128KB) | 192KB |
| 定时器分辨率 | 16位/32位,最高240MHz | 16位/32位,最高84MHz |
| ADC | 3个12位,最高3.6Msps | 3个12位,最高2.4Msps |
| 典型价格(批量) | ¥45-60 | ¥18-25 |
我的建议:如果你做六轴机器人标定,需要同时处理6路编码器、6路电流采样、运动学正逆解和参数辨识——直接上H7。F4在168MHz下跑完一次完整标定迭代可能要2ms,而H7能压到500μs以内。
2.2 电机驱动接口设计
驱动接口设计有三个关键点:PWM分辨率、死区时间、电流采样同步。咱们一个一个说。
2.2.1 PWM与定时器配置
我习惯用高级定时器TIM1/TIM8来驱动三相逆变桥。H7的TIM1可以输出6路互补PWM,带硬件死区插入。
// H7定时器配置示例:20kHz PWM,中心对齐模式
TIM1->PSC = 0; // 不分频,240MHz计数
TIM1->ARR = 6000 - 1; // 20kHz (240MHz/6000/2)
TIM1->CCR1 = 3000; // 50%占空比
TIM1->BDTR = 72; // 死区时间 = 72/240MHz = 300ns
TIM1->CR1 |= TIM_CR1_CMS_1; // 中心对齐模式2
2.2.2 电流采样接口
电流采样有两种主流方案:
- 低侧采样:成本低,但无法在PWM开关瞬间采样
- 高侧/相电流采样:精度高,需要隔离运放
我做机器人标定项目时,要求电流精度在±1%以内,所以选了INA240高侧电流检测放大器,配合STM32的ADC注入组同步采样。
// ADC注入组配置:与PWM中心对齐触发同步
ADC1->JSQR = (1 << 20) | // 1个转换
(ADC_SAMPLETIME_8CYCLES << 0);
TIM1->CR2 |= TIM_CR2_CCDS; // CC事件触发ADC
TIM1->CCR1 = 3000 - 100; // 在PWM中心点前100个时钟采样
2.3 编码器与电流传感器选型
编码器是机器人的眼睛,电流传感器是肌肉力量计。选型不对,标定结果全是错的。
2.3.1 编码器选型对比
| 类型 | 分辨率 | 接口 | 适用场景 | 典型型号 |
|---|---|---|---|---|
| 增量式光电 | 1000-5000线 | A/B/Z + 正交解码 | 低成本关节 | HEDS-5540 |
| 绝对式磁性 | 12-14位 | SSI/BiSS-C | 中精度关节 | AS5048A |
| 绝对式光学 | 17-23位 | BiSS-C/EnDat | 高精度标定 | Heidenhain ECI1319 |
我的选择:对于运动学标定,我强烈建议用绝对式编码器。为什么?因为增量式每次上电都要回零,而回零误差会直接污染标定数据。我在一个项目里吃过这个亏——增量式编码器回零重复性只有±5个脉冲,换算到关节角度就是0.02°,标定出来的DH参数偏差大到没法用。
2.3.2 电流传感器选型
电流传感器直接影响力矩估算精度。运动学标定需要知道关节力矩,而力矩 = 电流 × 转矩常数。
- ACS712/ACS723:霍尔效应,带宽80kHz,适合通用场景
- INA240:分流器+差分运放,带宽400kHz,适合高精度采样
- TI DRV系列集成方案:内置电流检测,节省PCB面积
2.4 硬件系统架构总览
下面这张图是我做机器人控制器时的标准架构,你可以直接拿来用。
2.5 实际项目中的接口设计清单
最后,我整理了一份硬件接口设计检查清单。每次画板子之前我都会过一遍,避免低级错误。
- 电源完整性:模拟3.3V和数字3.3V用磁珠隔离,ADC参考电压用高精度LDO
- 编码器接口:差分信号走等长线,终端电阻匹配(RS-422标准)
- 电流采样:采样电阻用4端子开尔文连接,避开大电流回路
- PWM输出:加RC滤波后再进驱动芯片,防止上电瞬间误动作
- 保护电路:每路电机驱动加硬件过流比较器,不依赖软件
硬件平台搭建到这里就差不多了。主控选H7还是F4,看你控制周期需求;编码器选绝对式还是增量式,看你标定精度要求;电流采样带宽必须够,否则力矩估算全是错的。把这些基础打牢,后面几章的运动学标定和参数优化才能跑出真效果。