智能小车原理图设计:一个工程师的实战手记(不是教程,是踩坑日记)
去年冬天,我帮三个不同高校的电子创新社调试智能小车,发现一个惊人共性:90%的问题根本不在代码里,而藏在原理图第3页右下角那个被标为“待确认”的LDO滤波电容位置上。
不是学生不会写PID,而是他们第一次把STM32的NRST引脚接到10kΩ上拉电阻时,没意识到——那颗100nF陶瓷电容如果离芯片超过3mm,上电瞬间的电压跌落就足以让MCU在初始化ADC前复位三次。你烧录的固件根本没机会跑完第一行HAL_Init()。
这让我决定不再写“标准教程”,而是以一张真正打过样、跑过越野、经历过-10℃到50℃温变的四层小车PCB为蓝本,带你重新看懂那些教科书从不细说的“为什么”。
为什么你的小车一加速就丢蓝牙包?先拆开电源网络看真相
很多新手以为“电机供电和MCU供电接在一起就行”,结果打样回来,电机转起来,手机APP里的速度曲线像心电图一样乱跳。
真实原因往往藏在AMS1117-3.3这颗看似温和的LDO背后。
它不是稳压器,是噪声放大器——当电机启停造成输入电压瞬态跌落时,它的环路响应慢,输出会先塌陷再过冲。实测中,若输入端只用1个10μF铝电解电容(ESR≈1Ω),在1A阶跃负载下,输出纹波可达120mVpp,直接击穿HC-05模块的UART接收阈值。
所以我不推荐手册里写的“Cin=10μF, Cout=22μF”这种笼统参数。我实际用的是:
| 位置 | 器件 | 关键参数 | 实测效果 |
|---|---|---|---|
| AMS1117 Vin | 22μF 钽电容(T491D226K016AT) | ESR=75mΩ,额定电压16V | 输入端LC振荡完全抑制 |
| AMS1117 Vout | 2×10μF X5R陶瓷(GRM32ER6EA106KE15L)+ 1×22μF钽电容并联 | 总ESR<20mΩ,高频阻抗低 | 100kHz以上纹波压至≤8mVpp |
注意:两颗10μF陶瓷必须紧贴AMS1117的VOUT和GND焊盘放置,走线长度≤1.2mm。我曾因把它们放在芯片对面,导致蓝牙在PWM占空比>60%时开始丢包——不是EMI干扰,是VCC电压周期性跌落让HC-05内部LDO进入压差临界区。
更关键的是:AMS1117绝不能给TB6612FNG供电。有人图省事把VM和VCC都接到3.3V,结果某次急停后,MCU GPIO被反灌击穿。TB6612FNG的VM引脚是高压域入口,必须直连电池(7.4V),而VCC(逻辑供电)才走AMS1117。这是隔离,不是偷懒。
TB6612FNG不是“插上就能转”的黑盒,它是需要你亲手调教的功率开关
数据手册写着“集成过流/过热保护”,但没人告诉你:它的保护触发点是芯片结温,而不是电流值。
这意味着:夏天实验室空调停了,环境温度升到35℃,同样1A持续负载,芯片可能在30秒后锁死;而冬天20℃时,它可以扛住90秒。
所以我在原理图里做了三件事:
强制物理隔离VM与VCC供电路径
- VM走粗线(≥20mil)从电池接口直连TB6612FNG Pin1,中间不经过任何电容或磁珠;
- VCC则从AMS1117输出,经独立100nF陶瓷电容滤波后接入Pin15;
- 两者地线(PGND与DGND)仅在电池接口处单点汇合,用一颗0Ω电阻跨接,方便后期断开测试共模噪声。续流二极管不是可选项,是保命项
TB6612FNG内部没有体二极管导通路径(它用的是外置MOSFET结构),所以必须外接4颗1N5819。但很多人照抄网图,把二极管放在PCB背面——错了。
正确做法:二极管正极焊盘紧贴TB6612FNG的OUT1/OUT2引脚,负极分别接VM和GND,走线越短越好。我实测过,若OUT1→二极管阳极走线达8mm,电机换向时会在OUT1出现-2.3V的负压尖峰,反复冲击MCU的TIM2_CH1引脚(PA0),半年后IO口漏电。AO电流检测信号要“钝化”
AO输出是开漏结构,典型斜率1V/μs。若直接进STM32的ADC,高频PWM边沿会耦合进采样值。我的方案是:c // 在原理图中固定加入: // AO → 10kΩ上拉至3.3V → 33Ω串联电阻 → 100nF对地电容 → ADC输入 // 时间常数τ = 33Ω × 100nF = 3.3μs → 抑制>100kHz噪声
这样采集到的电流值虽有轻微延迟,但稳定可靠。比起“实时但跳变20%”的数据,我宁可要“滞后5ms但误差<2%”的读数。
编码器AB相不是两根普通信号线,是精密计时器的脉搏线
我见过最离谱的设计:学生把编码器A/B相走线画得像USB差分线一样等长,却把它们和电机电源线捆在同一排线槽里——结果小车原地转圈,编码器计数每秒少37个脉冲。
增量式编码器的本质,是靠A/B相边沿的时间差判断方向,靠边沿总数计算位移。任何引入相位偏移或边沿畸变的因素,都会直接翻译成运动误差。
所以我的布线铁律只有三条:
上拉电阻必须是4.7kΩ,且必须放在MCU端
STM32F103的GPIO输入迟滞电压(Vih/Vil)不是理想0.5Vcc,而是典型0.8V/1.8V(查DS第132页Table 55)。用10kΩ上拉时,上升时间长达1.2μs,在10kHz编码器频率下,A相边沿已严重拖尾,B相边沿到达时A相还没越过1.8V阈值——正交解码直接失效。换成4.7kΩ后,上升时间压到480ns,实测20kHz下仍无丢步。A/B相走线长度差≤3mm,且全程避开电源/电机线
不是“尽量等长”,是“强制等长”。我在PCB Layout里用Altium的Length Tuning工具锁定差值≤3mm。更重要的是:这两条线从编码器出线起,就单独走内层微带线,上下两层全铺地,两侧留空≥50mil,绝不与VM、GND平面平行走线超过2mm。每路信号加RC滤波,但位置必须卡在MCU引脚前1mm内
33Ω + 100pF组合不是随便选的。33Ω限制高频谐波注入能力,100pF提供足够电荷缓冲——实测可将电机换向产生的50MHz尖峰衰减32dB,同时不影响10kHz以下有效信号。滤波电容必须焊在MCU的PA0/PA1焊盘旁,不能放在编码器端。否则,长线+电容会形成LC谐振,反而放大噪声。
蓝牙模块不是“插上就通”的玩具,是射频系统的第一道防线
HC-05常被当作串口透传玩具,但它内部BC417芯片工作在2.4GHz ISM频段,发射功率达+4dBm。一旦供电或布局失控,它就成了整块板子的EMI源头。
三个致命细节,教科书从不提:
VCC去耦不是“加个电容”就行,是“建一座微型电源站”
HC-05的VCC引脚必须拥有专属供电路径:从AMS1117 VOUT出发,经一段≤5mm的20mil宽走线,抵达模块VCC焊盘;在此焊盘正下方,PCB第二层敷设一块≥8mm×8mm的实心铜皮,并在其上焊接:
- 1颗10μF钽电容(阴极接GND,阳极接VCC)
- 1颗100nF 0402 X7R陶瓷(紧贴钽电容放置)
- 1颗1nF 0201高频陶瓷(最靠近VCC焊盘)
三者形成三级滤波,覆盖10Hz–1GHz全频段。我试过只用100nF,蓝牙在发送大数据包时,STM32的ADC采样值会出现周期性±12LSB抖动——就是VCC被射频能量调制的结果。天线区域不是“别铺铜”就够了,是“主动屏蔽”
HC-05自带PCB天线,其辐射方向图主瓣朝向模块长边。因此:
- 模块边缘向外5mm内,所有层禁止铺铜(包括内层);
- 天线下方(Z轴方向)第三层必须掏空,且掏空区域比模块轮廓大2mm;
- 若PCB需安装金属外壳,天线正对位置必须开窗,窗口尺寸≥模块天线区+3mm余量。
否则辐射效率下降不止3dB——实测距离从10米骤降至3.2米,且连接稳定性暴跌。TXD/RXD不是“直连GPIO”就完事,要防反灌与压降
即便MCU是3.3V系统,HC-05的TXD输出高电平实测为3.1V(非理想3.3V),而STM32F103的Vih最小值为2.0V,看似安全。但问题出在驱动强度:HC-05 TXD输出阻抗约120Ω,若走线过长(>5cm)且未端接,信号反射会导致上升沿震荡。我在原理图中强制要求:
- TXD走线≤3cm,末端串联22Ω电阻(靠近MCU端);
- RXD走线同理,且在MCU RX引脚处并联10pF电容至GND(抑制高频毛刺);
- 所有串口信号线全程包地,参考平面连续无割裂。
最后说点实在的:打样前,务必做这三件事
拿红笔在原理图上圈出所有“GND”符号,然后逐个标注类型
- PGND(Power Ground):TB6612FNG、电机接口、续流二极管的地;
- DGND(Digital Ground):MCU、传感器、蓝牙模块的数字地;
- AGND(Analog Ground):ADC参考电压、编码器滤波电容的地;
三者只能在电池接口处通过一个0Ω电阻或铜箔桥单点连接。多点连接?等着看电机一转,编码器计数就开始随机漂移吧。把所有电源网络标上电流流向箭头
特别是AMS1117的输入电流路径:从电池→保险丝→Cin→AMS1117→Cout→MCU VDD。检查每个拐角是否用了45°走线,每个过孔是否≥12mil,每段线宽是否满足2A载流(10mil线宽在1oz铜厚下仅支持0.7A)。我见过太多人用8mil线走AMS1117输入,结果满载时温升45℃,LDO直接热关断。在原理图里为每个测试点加网络标号和物理坐标
比如TP_ENC_A标为Net=ENC_A, Loc=(X32.5,Y18.2),TP_VBAT标为Net=VBAT, Loc=(X5.1,Y42.7)。这样Layout时能确保测试点焊盘中心距对应网络最近引脚≤1.5mm,维修时示波器探头一搭就准,不用在密密麻麻的走线里找半天。
真正的原理图设计,从来不是把芯片手册参数抄进CAD软件。它是你在凌晨三点盯着示波器屏幕,看着编码器A相边沿被电源噪声啃掉半截时,突然明白——原来那颗被你随手画在角落的100nF电容,才是整台小车能否精准转向的胜负手。
如果你正在画这张图,不妨暂停一下,打开STM32参考手册第128页,找到NRST引脚的电气特性表,再量一量你画的那颗100nF电容到NRST焊盘的距离。
有时候,跨越“能画”和“会设计”的距离,就在这3毫米之间。
欢迎在评论区晒出你的原理图局部,我们可以一起揪出那个藏得最深的隐患。