四足开发实战(五):电子篇——DM-MC02 主控与 RS485 总线
按系列第 3 篇(四足开发实战(三):选型篇——12 公斤的狗需要多大扭矩)选定 GO-M8010-6,并按第 4 篇(四足开发实战(四):电源篇——6S 电池、配电与安全)配好 6S 电池之后,剩余的问题即是如何指挥这 12 个关节。答案是使用一块 DM-MC02 主控、一颗惯性测量单元,以及两条 4 Mbps 的 RS485 总线。本篇依次说明主控选型、IMU 配置、带宽核算、总线连接与上电调试,完成之后 12 个关节即可全部在线,并明确每一根线的接法依据。
动手之前应当先备齐工具与器件,以免焊接过程中因缺少端子而中断。工具清单包括:万用表、30 V/5 A 限流电源、支持 4 Mbps 的 USB-RS485 分析仪(TODO(确认型号))、示波器(可选,但强烈建议)、压线钳、热缩管、M3 硅胶减振柱。主要工具各有分工:万用表用于测量短路与终端电阻,限流电源用于防止过流损坏,分析仪用于抓取总线帧,示波器用于观察边沿;缺少其中任意一项,都会在后续相应步骤受阻。器件按下表一次备齐:
| 器件 | 数量 | 用途 | 备注 |
|---|---|---|---|
| DM-MC02 | 1 | 主控 | 已购 |
| ICM42688P 模块 | 1 | IMU | SPI |
| 6S 8000 mAh 电池 | 1 | 电源 | XT60 |
| 40 A 慢断保险丝 | 1 | 主回路保护 | |
| 5 V/5 A DCDC | 1 | 逻辑电源 | TPS54560 一类 |
| 急停开关 | 1 | 安全 | 常闭 |
| XT30 插头 | 12 对 | 关节供电 | |
| GH1.25 端子 | 若干 | RS485/串口 | 只走信号 |
为什么是 DM-MC02
本方案选用达妙 DM-MC02,核心为 STM32H723VGT6,主频 550 MHz、RAM 564 KB。该板卡在出厂时已集成两路 RS485(最高 10 Mbps,与宇树电机的 4 Mbps 总线匹配)和三路 FDCAN,并带有 24 MHz 晶振与调试口。使用 H743 开发板自行搭建虽然可行,但 H743 仅有两路 FDCAN、没有板载 RS485,需要另加两片高速收发器并自行实现 DE 方向控制电路,对第一台机器而言并不必要。不选 F4/F7 的原因在于:F4 仅有 192 KB RAM,无法容纳 12 个关节的状态、日志缓冲与 EKF 矩阵;F7 的 512 KB 勉强可用,但同样缺少板载双路 RS485。H723 的 550 MHz 与 564 KB 在 1 kHz 控制环下留有充分余量——按预算,控制 300 µs、两路 RS485 各 50 µs、IMU 30 µs、日志 20 µs,1 ms 内仅用去不到一半,剩余部分留给 MPC 与调试。
| 项目 | DM-MC02(H723VGT6) | H743VI 开发板 |
|---|---|---|
| 主频 / RAM | 550 MHz / 564 KB | 480 MHz / 1 MB |
| RS485 | 板载 2 路,最高 10 Mbps | 无,需外加收发器 |
| FDCAN | 3 路 | 2 路 |
| 适合 | 直接上机 | 学习验证,接线多 |
此处顺带说明一个必然会遇到的问题:使用成品控制板还是自画底板。第一台机器宜直接采用成品板——画板、打样、调试每一项都需要两三周,而 DM-MC02 上电即可使用,时间应当投入让机器站立,而非修复自画的电源。定型之后再将核心板与收发器集成进自画底板,体积可按结构定制,但小批量打样成本反而更高,因此该项工作留待第二台机器。
外设资源也应当一次核算清楚,以免后续开发中途发现不足。该板卡提供的资源如下:两路 RS485 用于电机总线,三路 FDCAN 留给上位机、遥控与扩展传感器,一路 SPI 接 IMU,一路 UART 接上位机,USB 留作日志导出,ADC 两通道采集母线电压与 NTC 温度,GPIO 至少六个(急停、两个 LED、蜂鸣器、继电器使能),另加独立时钟的 IWDG。核对要点列于下表,收到板卡后应首先照表验货。
| 外设 | 数量 | 用途 | 核对要点 |
|---|---|---|---|
| RS485 | 2 | 电机总线 1/2,各 6 关节,4 Mbps | 板载收发器是否 ≥10 Mbps |
| FDCAN | 3 | 上位机/遥控/扩展传感器(可选) | 不接电机 |
| SPI | 1 | ICM42688P,8 MHz | 独立 CS |
| UART | 1 | 上位机链路,≥921600 | 与调试串口分开 |
| USB OTG | 1 | 日志导出 | 与 RS485 无关 |
| ADC | 2 通道 | 母线电压分压、NTC | 分压比 1:10 以上 |
| IWDG | 1 | 看门狗 | 独立时钟 |
接口端子按功能分开:RS485-1/2 各为 A/B/GND 三芯端子,SPI 与 UART 使用排针,SWD 调试四针,USB 一个 Type-C。具体引脚号以 DM-MC02 原理图为准(TODO(确认)),不应照搬其他 H723 板卡的丝印——不同厂家的板卡引脚复用完全不同,照抄会导致硬件损坏。RAM 方面也给出预算参考:固件加 FreeRTOS 约占 300 KB Flash / 120 KB RAM,12 个关节状态 4 KB,EKF 矩阵缓存 8 KB,日志环形缓冲 256 KB(约 2.5 秒的 1 kHz 全量日志),任务栈合计 40 KB,564 KB 的容量仍有大量余量,足够后续扩展。
收到板卡后应先核对三件事:RS485 收发器型号是否为 10 Mbps 级、两路 UART 是否真正独立、FDCAN 是否焊接了收发器(许多板卡仅留引脚)。若不符合要求应更换板卡,避免焊线完成之后才发现问题。外设分配如下:SPI 一路接 IMU,UART 一路接上位机,USB 留作日志导出,ADC 两通道采集母线电压与 NTC 温度,GPIO 将急停接入 EXTI,看门狗使用独立时钟的 IWDG。中断优先级方面,RS485 的 IDLE 与 TC 中断最高,SPI 数据就绪次之,上位机 UART 再次;中断内只搬运数据,CRC 与解析交由任务处理,这一习惯在后续调试中能避免大量问题。时钟方面,DM-MC02 的 24 MHz 晶振需经 PLL 倍频至 550 MHz,H7 的 VOS 档位与 Flash 等待周期必须随之调整,否则会随机触发 HardFault——应先使串口稳定输出,再处理 RS485 与 IMU,这是首日上电的正确顺序。
三项核对的具体做法再作说明:收发器查看板卡丝印型号,查阅手册确认速率档是否达到 10 Mbps;两路 UART 各自短接 TX/RX 做回环,能同时自发自收才算真正独立;FDCAN 查找板上的八脚 CAN 收发器芯片,仅留引脚的板卡无法直接使用。若手边仅有 H743/H750 开发板:H743VI 的 2 MB Flash 可直接运行,H750 仅 128 KB Flash,程序需外挂 QSPI 走 XiP,链接脚本与调试都增加一层复杂度;两者还需外加两片 10 Mbps 收发器与 DE 控制电路,第一台机器不建议采用这种方式。DMA 与启动顺序也需提前确定:两路 RS485 各占一对 TX/RX DMA,SPI 接收占一路,上位机 UART 占一路;启动顺序为 HSI → 配置 PLL → 切换 SYSCLK → 开启 I/D Cache → 初始化外设。中断优先级按数值记忆:数值越小优先级越高,RS485 的 IDLE 与 TC 置于 5 左右,后续 SPI 与 UART 依次降级。Flash 预算方面,H723 片内 1 MB,按 300 KB 预算仅用不到三分之一,H743VI 的 2 MB 更为宽裕。1 kHz 时基使用高级定时器,SysTick 加 DWT 也可替代,但蜂鸣器这类需要 PWM 的引脚仍应占用一个定时器。
IMU 选用 ICM42688P,不宜再使用 MPU6050 一代:后者无 SPI、噪声较大且已停产。与 BMI088 相比,ICM42688P 的陀螺噪声低一个量级(约 3 mdps/√Hz 对 14),SPI 可运行于更高时钟,单芯片结构在 8 MHz SPI、模式 3 下工作稳定。接线共六根:3.3 V、GND、SCLK、MOSI、MISO、CS,另加一根 INT1 数据就绪中断,CS 需上拉。上电后先读 WHO_AM_I 寄存器(0x75),ICM42688P 应返回 0x47,此步可排查虚焊、接反与假冒芯片三类问题;随后依次配置陀螺 ±2000 dps/1 kHz、加速度 ±16 g/1 kHz、推挽高有效中断,最后将电源管理写入低噪声模式。初始化序列应按顺序执行,不可跳过任一步骤:
- 写 DEVICE_CONFIG(0x11)= 0x01 软复位,等 1 ms
- 读 WHO_AM_I(0x75),确认返回 0x47
- 写 GYRO_CONFIG0(0x4F):±2000 dps、1 kHz
- 写 ACCEL_CONFIG0(0x50):±16 g、1 kHz
- 写 INT_CONFIG(0x14):推挽、高有效、数据就绪中断
- 写 PWR_MGMT0(0x4E)= 0x0F,陀螺和加速度进低噪声模式
- 读一次温度,确认芯片在工作
量程不宜过小:摔倒磕碰瞬间角速度可能达到 1000 dps,±250 的小量程一次即饱和。采样使用 burst read 一次读取 14 字节(加速度 6 + 陀螺 6 + 温度 2),1 kHz 下仅 14 kB/s,但仍建议走 DMA,节省的 CPU 时间即为控制环的余量。
滤波带宽也应一并配置:1 kHz 采样下陀螺带宽设为 200~400 Hz、加速度 100~200 Hz,使用片上 LPF,比在固件中做软件滤波更节省 CPU。接线方面有两个细节:VDDIO 接 3.3 V 而非 5 V,SPI 配置为 16 位、MSB first,CS 的上拉使用 10 kΩ。
IMU 的安装比型号选择更为重要。它应靠近整机质心,安装在刚性碳板或金属板上,不能置于悬臂、打印支架或电池架上;固定使用四个 M3 硅胶减振柱,不宜使用整块软泡棉,否则会引入低频晃动。位置应远离 DCDC 电感与 RS485 差分线至少五厘米,丝印箭头指向机身正前方,安装完成后拍照存档。若芯片坐标系与机身坐标系不一致(机身系约定 x 前、y 左、z 上),应在配置中保存一个安装旋转矩阵,而非在代码中多处修改符号——实际开发中曾遇到"一站立就前倾"的问题,最终定位为姿态角符号相反,改用矩阵统一处理后未再出现。安装完成后应先验证再上整机:静止读取十秒,三轴陀螺零偏小于 0.5 dps;绕 z 轴手动旋转 90 度,偏航角变化在 90±3 度内;侧倾 30 度,横滚符号与实际方向一致。三项通过后再做正式标定:加速度使用六面法,每面静置十秒记录均值,解出零偏与标度;陀螺静止 60 秒取均值作为零偏。标定值写入 Flash,每更换一次安装位置就重新标定。
另需一并避开电机的三相动力线,它与 IMU 同样保持五厘米以上的距离。装机时三相线贴机身外侧、信号线走内侧,不宜图省事扎成一束。旋转矩阵在固件中的形式如下,芯片坐标系与机身坐标系不一致时只修改此处:
/* cfg/imu_cfg.h:单位阵表示芯片系 = 机身系 */ |
一条 4 Mbps 的总线装得下 6 个关节
下面核算最关键的带宽:GO-M8010-6 每周期发送 17 字节控制帧、接收 16 字节反馈帧,单个电机共 33 字节。4 Mbps、8N1 下每字节 10 bit,因此每路 6 个电机每毫秒 198 字节,约 1.98 Mbps,占 4 Mbps 的 49.5%。反之,12 个电机全部挂接一路为 396 字节/毫秒、3.96 Mbps,占 99%,没有任何余量,一旦有干扰即全线错帧。因此拓扑固定为两路各 6 个电机、1 kHz 下发,单条总线最多 15 个电机(ID 0~14,15 为广播,广播没有返回,不用于单机测试)。此处还有半双工的时间核算:17 字节发送约 42.5 µs,16 字节接收约 40 µs,加上方向切换,单个电机一轮约 85 µs,6 个串行约 510 µs——两路并行,1 ms 内正好用去一半。轮询按固定顺序访问 0 到 5,不应随机乱序,这样丢帧时能立即定位到具体 ID;连续三次丢帧即标记该关节异常。
两个边缘问题在此一并说明。广播 ID 15 并非装饰:它仅用于同时急停或整机标定这类全体动作,不参与常规轮询,也不用于单个电机测试。关于提高波特率并无意义——GO 官方锁定 4 Mbps,模组只识别这一速率,提高需要改动电机固件,线材与收发器成本随之上升,收益为零。
| 拓扑 | 每周期字节数 | 速率 | 占 4 Mbps |
|---|---|---|---|
| 2 路 × 6 电机(GO,17+16) | 6 × 33 = 198 B/ms | 1.98 Mbps | 49.5% |
| 2 路 × 6 电机(IM6014,20+26) | 6 × 46 = 276 B/ms | 2.76 Mbps | 69% |
| 12 电机挂一路(GO) | 12 × 33 = 396 B/ms | 3.96 Mbps | 99%,不可用 |
拓扑结构为一条菊花链,两端各接一个终端电阻,中间节点不加任何元件:
flowchart LR |
一组电气参数应当熟记,排障时均以此为依据:收发器共模范围 −7~+12 V,超出即错帧;差分输出 1.5~2 V(带 54 Ω 负载);接收门限 ±200 mV,低于此值总线状态不定;现代收发器单位负载 1/8,理论上节点数较多,但协议仅允许 15 个;速率与距离成反比,4 Mbps 下总线尽量控制在 30 米内、支线小于 0.3 米。终端功耗也需核算:3.3 V 下两端 120 Ω 并联约 55 mA,加上偏置约 60 mA,收发器应选择驱动能力足够的型号,不宜使用弱驱动型。
带宽是否足够与 4 Mbps 下能否稳定收发是两件事。先看收发器:MAX485 仅 2.5 Mbps,直接排除;MAX3485 为 10 Mbps,可用但接近极限,线长增加或干扰增大即错帧;推荐采用 THVD1450 这类 50 Mbps 级 3.3 V 半双工芯片,余量更大,DM-MC02 板载的收发器也应按此标准核对。终端电阻两端各一个 120 Ω,断电用万用表测量 A–B 应约为 60 Ω——120 Ω 说明只接了一个,40 Ω 说明有节点多焊了一个,多焊的那个会导致长线随机出现错误帧。空闲电平不确定时应加偏置:A 上拉 680 Ω、B 下拉 680 Ω,配合 120 Ω 终端,空闲差分约 0.27 V,稳定在接收门限之上。偏置电阻取值不宜过小,120 Ω 级的偏置与终端并联后总线负载过重,接满 6 个电机后幅值会下降。
终端的安装方式也有要求:主控端的 120 Ω 直接焊接在 A/B 端子上,末端电机的 120 Ω 制作在插头内,中间四个节点不安装任何元件;安装完成后在总线两端各测量一次,读数均约为 60 Ω 才算正确。验收表中还需记录一条:空闲差分 0.2~0.3 V(有偏置时),与 60 Ω 终端电阻共同构成总线的静态度量。
| 型号 | 速率 | 供电 | 说明 |
|---|---|---|---|
| THVD1450 | 50 Mbps | 3.3 V | 推荐,余量大 |
| MAX3485 | 10 Mbps | 3.3 V | 能用但贴边 |
| MAX485 | 2.5 Mbps | 5 V | 不够,不要用 |
还有一处特别容易写错的细节是 CRC 的范围。GO 的 CRC16-CCITT 只计算前 15 字节(120 bit),最后 2 字节为校验值本身,且低字节在前;若写成"算 16 字节"或"算 17 字节",或把字节序弄反,都会导致帧报错,且该错误在示波器上看起来一切正常。联调时应先以官方例程核对一帧,确认 CRC 结果一致后再继续,可避免大量无谓的排查时间。
最容易出现问题的是共地。RS485 虽为差分信号,但接收器共模范围仅 −7~+12 V,若未接 GND,6 个电机工作时两地电位差随电流波动,反馈帧的 CRC 会随机出错——台面上单个电机正常、装机后出现异常,多半是此原因。因此要求 A/B/GND 三芯一起布线,整机地星形汇合到电源入口,屏蔽层仅在主控端单点接地,电机端悬空。如需隔离,应选 ADuM1201 加 10 Mbps 以上的收发器,配 B0505 隔离电源;不宜使用 ADM2483,其为 500 kbps 级,4 Mbps 下无法正常工作。接口处再加一个 SM712 这类 RS485 专用 TVS,地线短粗,在插拔频繁的场合可泄放大部分静电。
若完整实现隔离,再补充两点:隔离电源使用 B0505S 这类 1 W 模块,两侧地完全分开;隔离对象主要是上位机 USB 与电池地之间——ADuM1201 隔离 UART 信号,B0505 为总线侧供电。不隔离时至少保证电机地与主控地在电源入口单点相连,地线与 A/B 同路径布线、线径不小于 0.5 mm²,避免电机电流流经信号地。长线或户外场景在 SM712 之外再加气体放电管。
另有一个半双工的细节,属于不易察觉但必然引发故障的一类。发送时必须将总线切换为发送方向:DE 拉高发送、拉低接收,切换时机应等待 UART 的 TC(发送完成)标志而非 TXE——TXE 仅表示数据进入移位寄存器,切换过早会丢失最后一个字节。切到接收后再留一到两个位时间(约 0.5 µs)的保护间隔,且发送期间应关闭接收,否则发出的 17 字节回显会被截成 16 字节当作反馈帧,CRC 全错且长度恰好吻合,此类故障最具迷惑性。线材方面,4 Mbps 必须使用 120 Ω 特性阻抗的双绞屏蔽线,杜邦线在一米处即开始错帧;总线尽量控制在 30 米内、支线小于 0.3 米。关于为何不用 CAN:经典 CAN 一帧最多 8 字节,无法容纳 17 字节的控制帧,CAN FD 虽可容纳但宇树电机固件不支持,而 RS485 与官方协议原生匹配,因此该选择明确。
硬件接法上,DE 与 /RE 并联、由同一个 GPIO 控制:置 1 发送、清 0 接收。软件在切换前先读 TC,硬件在切换后给足保护间隔,两端配合正确,半双工才不会出错。
电源链的细节
电源链同样不应遗漏细节。上电时序为 22 V 母线先稳定、再 5 V、再 3.3 V,掉电顺序相反;22 V 母线配置 470 µF 低 ESR 电解电容加 10 µF 陶瓷电容,上电瞬间电容充电电流可达几十安,必须依靠预充电阻限流,否则保险丝与插头均无法承受。保险丝按持续电流的 1.5~2 倍选慢断、再按峰值电流的 1.2 倍校核,30 A 峰值、5 A 持续即定为 40 A 慢断;防反接使用低 Rds(on) 的 P-MOS,肖特基在 30 A 下 0.5 V 压降即产生 15 W 发热,不可使用。DCDC 选择输入耐压 60 V 的 TPS54560 一类同步 Buck,6S 满电 25.2 V 需留 20% 余量;轻载啸叫源于进入跳周期模式,可在输出加 5%~10% 假负载或换用固定频率型号。线径按 $A = \rho L I / \Delta V$ 计算,铜的电阻率取 0.0175 Ω·mm²/m、压降预算 0.1~0.2 V——30 A 峰值、0.3 米的主回路使用 12AWG 压降仅 0.05 V,单关节 16AWG 也足够,而 RS485 信号线只需双绞,线径并非关键。电池方面再核算 C 率:8000 mAh、25C 理论上可放 200 A,而峰值仅 30 A,实际只需 4C,余量充足;真正需要关注的是电压跌落,大电流下 6S 跌破 20 V 时,电机与主控都可能复位。
保护回路再补充两个细节。缓启动给出具体参数:10 Ω/50 W 预充电阻配继电器,预充一秒后再吸合。急停使用常闭蘑菇头串接触器线圈,按下时同时拉低驱动器使能,动作时间控制在 100 ms 以内;急停只切断电机母线,逻辑电源从保险丝后直接取——急停之后主控仍保持运行,才能将故障现场写入日志。5 V 一级再补充 100 µF + 10 µF 储能,与 22 V 母线的 470 µF 分开计算,两级均不应省略。
转换级的数据补充如下:TPS54560 一类 Buck 输入并联 100 µF + 10 µF、输出并联 220 µF;5 V 到 3.3 V 使用板载 LDO 或 AMS1117,压差 1.7 V、0.4 A 时耗散约 0.68 W,可以接受。效率按 85% 计算,5 V/1 A 输出时 DCDC 自身发热约 0.9 W,应固定在金属底板上散热,不宜用泡棉包裹。线径表再补两行:5 V 回路 1 A、0.3 米用 20AWG,压降仅 0.01 V;RS485 信号线毫安级用 26AWG 双绞即可。电流预算的两个小项也需记录:DM-MC02 加 IMU 加收发器典型 0.4 A、峰值 0.6 A,风扇、LED、蜂鸣器 0.2 A、峰值 0.3 A(示例值,TODO(实测))。电池最后补三个数:满电 25.2 V、截止 19.8 V(单节 3.3 V),长期存放按单节 3.8 V;首次上电先用限流电源代替电池,待上电十步全部通过后再接入真实电池。
布板层面有三条纪律同样重要:输入电容紧贴 Vin/GND,电感远离 IMU 与 RS485 差分线,开关节点的铜皮越小越好,反馈走线绕开电感正下方。功耗的实测数据也需记录——限流电源上电后分别记录待机、站立、行走三种电流,行走通常为待机的 3~5 倍,峰值按 6 倍预留,这组数据写入 BOM 备注,后续选电池与保险丝时均以此为依据。
上电:从测短路到 12 个关节在线
硬件部分说明完毕,最后是上电顺序,此步骤的要点是"逐级验证,不宜贪快":第一,断电测量短路,22 V 对地不导通;第二,限流电源 24 V/1 A 上电,空载电流应小于 50 mA,达到 1 A 应立即断电;第三,测量 5 V 与 3.3 V 的电压与纹波;第四,主控最小系统点灯、串口打印版本号;第五,将 UART 的 TX/RX 短接做内部回环,4 Mbps 发 17 字节收 17 字节;第六,接 USB-RS485 做外部回环,CRC 正确;第七,只接一个电机,发送 status=1 的零力矩帧,读回 16 字节反馈,观察温度与错误位;第八,按 0~14 逐个扫描 ID,记录在线表;第九,单关节以 0.05~0.1 的小 Kp 运行 ±0.2 rad 正弦,观察位置误差与温升;第十,两路各接 6 个,重复扫描,确认 12/12 在线。
flowchart TD |
扫描失败按"电源 → A/B → ID → 终端"的顺序排查,80% 的问题位于前两步:先测量电机端电压,再对调 A/B——不同厂家的 A/B 标注不一致,接反后完全收不到反馈但器件不发热。ID 修改后必须断电重上电才生效,因此修改 ID 时一次只接一个电机。限流电源也是常见的误判来源:其默认 1 A 用于防过流,切换至站立瞬间启动电流冲击会触发"复位",这并非电路故障,将限流调回 10 A 即可。
十步中有几个数值需先记录。第一步除 22 V 对地不导通外,5 V 与 3.3 V 对地电阻也应大于 100 Ω(示例值);第三步的允许范围为 5 V ±0.2 V、3.3 V ±0.1 V;第七步的帧应写为 status=1、力矩 0、Kp/Kd=0,读回的 16 字节反馈先查看温度字段与错误位;第九步正弦设为 0.5 Hz,除位置跟踪误差外,还应观察正反转力矩差小于 10%、五分钟内电机温度不超过 50 ℃,任一项异常都应先停机,不带着故障上整机;第十步两路同时上电时应先合逻辑电、再合动力电,顺序相反容易在启动瞬间使主控复位。
线束与接口的规范应在布线之前确定。线色全机统一:红 22 V、黑 GND、黄 A、绿 B、白 5 V、蓝 3.3 V、橙急停;接插件按电流选择,XT30 约 30 A、XT60 约 60 A,GH1.25 仅走信号,不用于电机供电——三种插头互不兼容本身即构成防呆。若有示波器,还应多做三件事以省去大量猜测:观察 DE 上升沿到第一个起始位小于 1 µs;一帧 17 字节恰好约 42.5 µs,最后一个停止位结束后 DE 才下降;空闲时 A–B 停在 0.27 V 附近不漂移。连续发送一秒,若无明显振铃过冲,物理层基本验证完成。线束制作也有规范:每根线两端贴标签(J2-1、J2-2),排错时比颜色更可靠;A/B 双绞每 25 mm 一绞,绞完再压端子;22 V 功率线与 RS485 线分两侧布线,交叉处垂直通过;全部接好后用万用表逐根测量通断再上电。线序错误是最常见的硬件损坏原因,22 V 与 GND 接反、A/B 与电源接错,一次即可烧毁收发器——线束完成后先拍照存档,改线时对照,不应凭记忆操作。
接口编号也固定下来,改线时对号入座:
| 连接器 | 型号 | 引脚 | 线色 | 信号 | 备注 |
|---|---|---|---|---|---|
| J1 电池 | XT60 | 1 / 2 | 红 / 黑 | +22.2 V / GND | 主电源 |
| J2 RS485-1 | GH1.25-3P | 1 / 2 / 3 | 黄 / 绿 / 黑 | A / B / GND | 电机 1~6,双绞 |
| J3 RS485-2 | GH1.25-3P | 1 / 2 / 3 | 黄 / 绿 / 黑 | A / B / GND | 电机 7~12 |
| J4 IMU | 2.54-7P | 1~7 | 蓝 / 黑 / 黄 / 白 / 绿 / 橙 / — | 3V3 / GND / SCLK / MOSI / MISO / CS / INT | <10 cm |
| J5 上位机 | GH1.25-3P | 1 / 2 / 3 | 白 / 黄 / 黑 | TX / RX / GND | 交叉接 |
| J6 SWD | 2.54-4P | 1~4 | 蓝 / 黑 / 白 / 灰 | 3V3 / GND / SWDIO / SWCLK | 调试 |
| J7 急停 | XH2.54-2P | 1 / 2 | 橙 / 橙 | NC / NC | 常闭 |
| J8 关节电源 | XT30 ×12 | 1 / 2 | 红 / 黑 | +22 V / GND | 每关节一路 |
| J9 USB | Type-C | — | — | USB FS | 日志 |
| J10 FDCAN | GH1.25-3P | 1 / 2 / 3 | 黄 / 绿 / 黑 | H / L / GND | 可选 |
制作上再补充两条:线长按路径加 10% 富余,关节活动处留出至少五倍线径的弯折半径;线束每 50 mm 一个固定点,扎带不应勒破绝缘皮。功率线与信号线的间距至少 10 cm,交叉必须垂直——信号线走内侧、功率线走外侧,不应混成一束。
验收时应记录完整数据,而非仅记录"已接通":静态电流小于 80 mA,5 V 纹波小于 50 mVpp、3.3 V 小于 30 mVpp,带载差分幅值大于 1.5 V,两路总线占用均小于 60%,连续十分钟 CRC 错误与丢帧均小于 0.01%,IMU 静止 60 秒的陀螺零偏小于 0.1 dps、加速度模长落在 9.81±0.05 m/s²,单关节 ±0.2 rad 正弦跟踪误差小于 0.02 rad,急停按下到母线断开小于 100 ms。以上指标全部达标,第 5 章方可视为完成。
易错点与故障排查
最后将本章最常见的几个易错点集中说明,它们在现象上均具有较强的伪装性。共地未接的症状是单个电机可通信、接满 6 个即随机 CRC 错误;A/B 接反的症状是收不到反馈但器件不发热;终端多焊一个的症状是短线可通信、长线随机错帧;ID 重复的症状是扫描少一个或控制 A 关节时 B 关节动作;修改 ID 后未断电的症状是新 ID 不生效;DE 一直为高的症状是能发不能收。前三者出在物理层,后三者出在操作流程,但排查顺序始终为先量电压、再对调 A/B、再查 ID、最后量总线电阻——按此顺序,八成故障可在前两步定位。四足的电控没有难以解释之处,只有尚未测量到的参数。
再补充几个未提及的常见问题。收发器供电不足:空载正常、接满 6 个电机后差分幅值降至 1 V 以下,多半是 3.3 V 轨被其他负载拉低或收发器驱动能力弱,应为 485 单独配置一路 LDO,满载时测量 3.3 V 纹波。端子压接不良:台面测试正常,运行中震动即断连,多半是压接只夹到绝缘皮,应按线径选择端子、压接后做拉拔测试。一合电机电源主控即重启:大电容充电瞬间将母线拉低、5 V 随之跌落,应加缓启动预充、坚持先逻辑后动力。地线过长过细:电机一加速即 CRC 错误,应将地线与 A/B 同路径布线、线径加至 0.5 mm² 以上。最后一条是流程问题:跳过单电机与单关节直接装整机,单个故障会被 12 个节点放大到无法定位环节——应按上电十步逐级验证。还有 4 Mbps 线过长这一条:台面上正常、装机偶发错帧,多半是线材不达标,先降至 2 Mbps 验证链路本身,通过后再逐段缩短回 4 Mbps。
至此,电子层的验收标准为:断电测量 A–B 约 60 Ω,12/12 在线,1 kHz 帧率下 CRC 错误小于 0.01%,单关节跟踪误差小于 0.02 rad,急停按下 100 ms 内切断母线。以上均通过后即可进入下一章。下一篇(四足开发实战(六):固件篇——1 kHz 控制环与任务架构)将这 12 个在线关节交由固件控制:FreeRTOS 任务表的划分、1 kHz 主循环的编写、半双工时序在代码中的实现,以及双缓冲与 seqlock 这两个关键细节。


