
1. 讲义定位与整体思路为什么RoboMaster硬件要先“跑起来”再“补理论”每年赛季结束、招新结束队伍里最难的不是调车而是把这群刚进组、可能连万用表都没摸过几次的新队员快速带成能独立看板、画板、改板的人。RoboMaster的硬件知识和其他嵌入式项目不太一样它特别“杂”你要懂电源、懂电机驱动、懂CAN通信、懂传感器接口还得会焊接、会排障甚至得能跟电控组、机械组来回扯皮。市面上单片机的书很多但能贴合比赛场景、把“够用”和“为什么”同时讲清楚的资料非常少。这份《Robomaster硬件基础讲义V0.2.1》就是冲着这个空子来的。这份讲义适合谁第一类是完全没接触过硬件的新队员你需要它建立“硬件到底在干什么”的整体概念第二类是刚画过几块板子、但总是出现“上电冒烟”“烧不进程序”的人你需要它补齐调试方法论第三类是电控和视觉组的同学你不直接做硬件但你需要看懂板子上哪里容易出问题方便跟硬件组有效沟通。V0.2.1这版不是从零开始讲模电数电而是按照“先会跑、再会修、最后会设计”的思路组织的。说白了我的理念很朴素新手期别去啃一堆运放公式先把供电、主控最小系统、电机驱动、通信接口这四件事跑通后面再补理论完全来得及。这版相比V0.2.0主要改了三块一是把之前散落在各章节的调试命令和排查流程汇总成了独立章节以前队员遇到问题翻半天聊天记录现在翻讲义就行二是修正了电源去耦和MOS驱动电路里几处容易误导人的表述上一版为了简化把米勒平台一笔带过结果有人照着做把驱动波形搞出了振铃三是补充了针对能量机关、超级电容这类特殊模块的硬件需求拆解毕竟比赛打到后期拼的就是这些“非标”部分。可以说V0.2.1开始像个正经培训教材了而不再是“资料合集”。1.1 新队员的第一课先认识板子再认识芯片我在讲义开头没有直接上原理图而是放了一张整车的硬件拓扑图。步兵机器人的核心硬件其实没几个一块主控板、一块电源板、若干块驱动板或者集成驱动模块、一个裁判系统、几个传感器陀螺仪、编码器、视觉相机外加云台电机、底盘电机、摩擦轮电机和拨盘电机。这一圈连下来你再看原理图就不会晕了。很多新队员容易犯的错是一上来就盯着单片机的引脚配置看结果看了两周还在纠结“这个引脚能不能容忍5V”却不知道这块板子的电源树是怎么走的。所以我刻意把“先看框图、再看原理图、最后看数据手册”这个顺序写进了讲义开篇。你先搞清楚信号从哪来、到哪去、中间经过什么芯片再去看具体引脚的电气参数效率会高很多。这个顺序看着简单但确实是我被问了好几年“学长我应该先看什么”之后总结出来的标准答案。1.2 四个阶段的设计思路从模仿到改造再到自研整个讲义的章节排布对应的是我在队伍里带人时常用的“四阶段”思路。第一阶段叫“照着抄”让新队员在立创EDA里把官方开发板或往届板子的原理图重新画一遍不追求创新追求把元件库、封装、网络标签、电源符号这些基本操作练熟第二阶段叫“改着用”比如把原本分立的电源模块换成集成DCDC芯片或者给主控板加一个惯导接口这一阶段开始接触选型和匹配第三阶段叫“自己搭”从需求表开始独立完成一块简单功能板的原理图和PCB设计比如一块电平转换板或者一块分电板第四阶段才叫“设计”比如设计带BuckBoost的超级电容模块或者自己画一块载板把主控和驱动全部集成。V0.2.1的章节基本就是按照这个递进关系排的。前面几章讲完工具怎么用、元器件怎么认中间几章讲电源、时钟、复位、下载电路这些“最小系统”的组成后面再讲CAN总线、电机驱动、传感器接口最后一章落在调试和排查。这个结构对老队员来说可能觉得基础但对新队员来说它的价值在于告诉你“你现在处在哪个阶段、下一步该学什么”而不是像知乎收藏夹一样永远吃灰。1.3 版本迭代里藏着的那些坑每次版本迭代我都会把队员踩过的坑补进去。比如V0.2.1里专门加了一节“硬件工程师的成长路线”表面上像职业规划实际上是想回答新队员最爱问的几个问题“VB6.0能用来写单片机吗”“我不想学C语言是不是就做不了硬件”“硬件调试需要会哪些工具”。这些问题的答案其实很简单嵌入式硬件开发的主流语言就是C/CVB6.0就别想了硬件调试最重要的工具不是贵的示波器而是万用表、逻辑分析仪和你的耐心。我把这些“玄学疑问”写成一节就是为了让新队员少在论坛上花时间迷茫。这版还有一个改动就是把“常见问题”从附录提到了正文最后一章。因为调试能力本质上才是硬件工程师的核心竞争力。你能画出原理图能焊好板子这都只算基本功真正拉开差距的是板子出问题时你能不能快速定位并修好。所以我后面会专门花一整章来讲调试这里先不展开但你得知道这份讲义的设计逻辑是在为“独立排障”服务的。2. 核心硬件技术拆解电源、驱动与信号链路RoboMaster比赛的机器人硬件说穿了就是三个词电源要稳、驱动要猛、信号要准。这三个词看着简单做好每一项都需要踩不少坑。我见过太多队伍在备赛高峰期被莫名其妙的“重启”“丢转”“通信超时”搞到崩溃最后查下来基本都是电源纹波太大、驱动芯片选小了或者信号线没做滤波。这一章我按讲义的顺序把这三块的核心逻辑拆开讲一遍。2.1 电源设计给整辆车画一棵“电源树”电源是整个硬件系统里最容易出问题、也最容易被新人忽略的部分。我在讲义里反复强调一个概念拿到一块板子第一步不是看MCU而是先找电源入口然后顺着入口把所有电源节点画成一棵树。底盘电池输出比如24V一路进电机驱动一路经过DCDC降压到12V、5V、3.3V分别给传感器、主控、外设供电可能还有一路做隔离给裁判系统。这棵电源树的每一个节点都要问三个问题输入电压范围够不够负载电流峰值是多少输出纹波能不能满足后端芯片要求这些问题看起来基础但很多新人会犯一个低级错误选LDO还是选DCDC只看输出电压不看压差和效率。比如24V直接LDO降到3.3V压差20.7V哪怕电流只有100mA功耗也是2W以上芯片烫得能煎蛋。这种问题在原理图阶段算一下就知道根本不用等板子回来冒烟。所以讲义里给了最朴素的判断原则压差大、电流大走DCDC压差小、电流小且需要低噪声走LDO。去耦电容也是新队员的重灾区。每个芯片电源引脚旁边放0.1uF和10uF是常规操作但很多人不懂为什么。0.1uF管高频噪声10uF管低频瞬态两者配合才能覆盖较宽的频段。更关键的是电容摆放位置必须尽量靠近电源引脚中间不要穿太多过孔否则电容的引线电感会让它在高频下失效。我在V0.2.1里加了一张反面Layout例子就是那种“电容摆了但等于没摆”的典型姿势每次讲到这里能看到不少人恍然大悟因为他们画的第一块板子基本都中招。2.2 电机驱动MOS管不是“能通就行”底盘、云台、摩擦轮每个电机背后都是一套驱动电路。很多新队员以为电机驱动就是拿个MOS管开关一下甚至有人觉得用继电器也行。真实情况远没那么简单。讲义的驱动章节重点讲了半桥和全桥的区别与应用场景直流有刷电机用半桥就能调速如果需要正反转就得用全桥比赛里大量使用的无刷电机则要靠三相全桥加上换相逻辑来驱动这套东西如果从零搭工作量非常大所以多数队伍会直接用集成驱动模块把精力放在供电和信号接口上。但就算用集成驱动模块MOS管前后的电路仍然有讲究。比如说栅极驱动电阻电阻选大了开关速度变慢MOS管在线性区停留时间变长、发热暴增选小了开关瞬间的di/dt太大会产生严重振铃和电磁干扰甚至干扰到旁边的陀螺仪和视觉相机。这个矛盾在V0.2.1里我没有给死参数因为不同MOS管的栅极电荷差别很大正确做法是看数据手册里的Qg然后根据驱动芯片的峰值电流去估算最后用示波器看实际波形微调。我在讲义里写了一段原话“栅极电阻是调出来的不是算出来就完事的。”这话听起来很不“严谨”但确实是工程常态。2.3 通信链路CAN是命根子SPI和UART各司其职RoboMaster里用得最多的通信协议毫无疑问是CAN。底盘电机、云台电机、裁判系统全都挂在CAN总线上。硬件上要关注的点其实不多但每一条都很致命120欧终端电阻要不要焊、CAN_H和CAN_L的共模电压对不对、总线速率是否和所有节点一致、参考地有没有真正连在一起。V0.2.1第6章用了很大的篇幅做了一张CAN总线硬件白盒测试表项目包括总线终端电阻实测阻值、显性/隐性电平幅值、信号上升沿时间、报文波特率误差等。这张表是从实际调试经验里提炼出来的因为很多“通信时好时坏”的问题根源就是某个节点没有终端电阻或者波特率误差偏大。SPI和UART在比赛里出场率也很高比如陀螺仪模块走SPI和视觉通信走UART或者调试串口走UART。SPI这里有一个特别容易让新人迷糊的问题硬件片选和软件片选到底用哪个。我的建议很简单除非引脚实在不够用否则优先用硬件片选因为软件片选一旦在主循环里被其他中断打断片选时序就会被拉长从设备可能误判轻则数据错位重则整个模块死锁。UART则是新手入门调试的第一选择一个USB转串口模块就能看到打印信息但要注意串口电平3.3V的MCU和5V的模块之间该加电平转换一定要加直连是爽烧了引脚就不好玩了。3. 从原理图到实物完整硬件开发流程实操这一章是讲义的“动手担当”。前两章讲了为什么这一章主要讲怎么做。我自己带队的习惯是不会画板子的队员跟着完整走一遍原理图设计、PCB布局、焊接、上电调试的流程比看十遍书都管用。这部分的实操性很强我会把流程和要点都列出来你可以当成一份checklist来用。3.1 画板前的第一步把需求拆成一张表格很多新队员拿到任务就打开EDA开画这其实是大忌。我在讲义里要求所有人先写一份“硬件需求说明”哪怕只有一页也行。里面要写清楚这块板子的输入是什么输出是什么接口有哪些尺寸限制是多少工作环境温度如何。比如设计一块主控板你要列的条目包括MCU型号、时钟来源、调试接口、需要几路UART、几路CAN、几个ADC采样通道、IO电平是否兼容。这些条目直接决定了引脚分配和原理图结构也决定了后期能不能顺畅布板。选型的时候我给的思路也很直接“先确定主控再确定电源方案最后确定接口芯片。”主控现在比赛里基本就是ARM Cortex-M4/M7或者更高性能的片子STM32和GD32用得最多GD32H7这类带硬件过采样滤波功能的MCU在ADC采样场景里能省不少事。选电源方案时把前面说的电源树画出来算清楚每路电流再根据DCDC效率曲线选芯片。接口芯片则看需求定比如要驱动几个大功率外设就选带使能控制的负载开关别直接拿IO去推负载。这些步骤看似繁琐但能帮你在画图前就把80%的坑提前排掉。3.2 原理图与PCB设计关注细节而不是炫技原理图阶段很多人喜欢把线画得特别整齐但真正重要的是网络命名规范。一个简单的规矩是电源网络统一用“3V3”“5V”“VBAT”这样的前缀地网络统一用“GND”加后缀区分模拟地、数字地、功率地。V0.2.1里专门强调了这个因为调试的时候拿着万用表找网络如果命名乱七八糟你会怀疑人生的。还有一点是原理图里每个器件必须填清楚封装和具体型号别只写“CAP”否则后面导BOM的时候采购和焊接都会抓瞎。PCB布局布线的核心就三条最短回路、完整地平面、信号远离功率干扰源。其中地平面是最容易被新队员忽略的有人为了走线方便把底层地铜皮割得稀碎结果MCU的地回路被拉得很长系统各种不稳定。再就是去耦电容要贴着芯片电源引脚放晶振底下尽量不走信号线电机驱动部分和MCU部分拉开物理距离能用开槽隔开就更好。这些经验在标准教科书里不会写但每次板子回来出问题回头一查几乎都在这些细节上。3.3 焊接与首次上电用“限流大法”保护板子焊接这一节我重点强调清烙铁头和助焊剂的使用但比这更重要的是第一次上电的顺序。板子焊完别急着插电池先目测一遍有没有连锡、漏焊、元件方向反了然后用万用表二极管档测电源正负极之间有没有短路。确认没有短路后用可调电源限流到100mA上电如果电流飙到很大说明后端有短路赶紧断电检查如果电流在正常范围再用示波器看电源输出纹波、量各个关键电压点。这里我教队员一个很粗暴但很有用的方法第一次上电用手背去感受每颗芯片的温度哪个芯片烫得离谱哪个大概率就是接错了或者选型有问题。这个“摸温度大法”听着不高端但效率确实高。等电源都正常了再烧写一个LED闪烁程序确认MCU最小系统跑起来然后再逐步加入外设。整块板子一次点亮是运气好能一次定位问题才是真本事。4. 硬件调试实录新队员最容易踩的坑与排查方法最后这一章是V0.2.1相比前一个版本改动最大的地方也是我认为最有价值的部分。我把这些年硬件组遇到过的问题按现象归了几大类每个问题都写了“现象—排查思路—根因—解决方案”四段式。这一节的价值在于照着查通常能省下翻十几个论坛帖子的时间。下面挑几个最高频的问题展开讲讲。4.1 上电就大电流先怀疑电源端短路“板子一上电电源就保护”是这个赛季我被问了不下十次的问题。排查思路特别固定先把所有跳线和排针拔掉只留主控和最小系统逐步增加外设看到底是哪一部分引入的短路然后用可调电源限流输出用热成像或者手摸去找发热点如果是某颗电容短路直接拆掉换新的就行。实践中最常见的短路原因有三个一是电解电容和二极管方向反了二是PCB上电源和地之间的阻焊桥被连锡了三是某个芯片的电源和地引脚在封装库里画反了。新队员遇到这种情况别慌先断开所有可断开的负载再逐级排查几分钟就能定位。4.2 板子连不上调试器问题常在电路而不在软件“J-Link连不上”“OpenOCD报错”“Keil一直提示找不到设备”这类问题占了调试问题的一半。很多人第一反应是重装驱动但Windows弹“无法验证驱动程序的数字签名”只是表象真正的原因可能更简单目标板供电没供上SWDIO和SWCLK两根线接反了芯片锁死了或者复位电路有问题。我在讲义里给的标准排查顺序是先量MCU电源是否有3.3V再量复位引脚是否为高电平然后查BOOT0引脚是不是被拉高了最后再检查SWD接口接线。ST-Link和J-Link还有一个常见坑就是线太长或者用了杜邦线导致高速通信不稳定这种情况下把线剪短或者降低SWD时钟频率就能解决。4.3 通信时好时坏CAN总线要按“物理层”排查CAN总线的问题有个特点就是你用示波器抓波形的时候往往是好的装到车上跑两圈就开始丢包。这类问题根源多半在物理层终端电阻没焊或者焊了两个以上CAN_H和CAN_L线序接反了总线使用了过长的飞线导致阻抗不连续或者不同节点的地电位差太大。V0.2.1里我强烈建议所有CAN节点都加共模电感或者至少加TVS管保护并且终端电阻要严格按照总线两端各一个来布置。另外如果一块板子上有多个CAN接口还要注意CAN收发器的输入电源和MCU电源是否独立我见过因为收发器电源纹波太大导致误码率飙升的情况。4.4 新队员高频问题速查从VB6.0到驱动签名讲义最后一节我做了一张速查表专门回答那些让人哭笑不得又非常普遍的问题。比如“VB6.0能编程嵌入式硬件吗”答案是能但没人这么干主流方案是用C/C配合Keil、IAR或STM32CubeIDE“Windows提示无法验证驱动程序的数字签名怎么办”答案是进高级启动选项禁用驱动签名强制装完调试器驱动就关掉“SPI选硬件片选还是软件片选”答案是有硬件外设就选硬件片选理由前面说过软件片选在中断频繁的系统中不可靠“能量机关怎么做到快速响应”这个更多是电控和视觉的配合问题但硬件上要求云台电机驱动响应快、传感器数据延迟低这也是为什么高端云台会选用更高性能的MCU和驱动方案。速查表里基本都是这种“一问一答”的格式目的是让新队员遇到问题先查表不行再问人而不是一上来就伸手。按照我带队这些年的习惯板子调不通的时候我从来不急着怀疑芯片坏了而是从电源、时钟、复位、下载这几条最基本的链路挨个量一遍。每次这么走一遍20分钟内基本能找到问题。“硬件调试”这个词听起来高大上实际操作里大半时间就是拿万用表量通断、拿示波器看波形、拿逻辑分析仪抓时序慢工出细活。这份讲义V0.2.1其实就是把这些琐碎的经验打成了包让后来的人少走几步弯路。后面等V0.3出来我大概率会补一套完整的最小系统板实战案例进去到时候再回来更新这一版。