3、原理图设计规范:统一命名规则、网络标号规范、电源树设计、去耦电容布局原则、预留调试接口
原理图设计,说白了就是硬件工程师的「施工图纸」。图纸画得乱,后面PCB Layout、调试、生产,每一步都是坑。我见过太多项目,就因为原理图不规范,导致改板三次、成本翻倍。今天咱们就聊聊原理图设计里那些「看似小事、实则要命」的规范。
3.1 统一命名规则:别让工程师猜谜语
你想想看,一个项目少说几百个元器件,多则上千。如果命名随心所欲,比如电阻叫R1、R2、R3,电容叫C1、C2、C3,那后期调试时根本分不清哪个是哪个。我个人习惯是:「功能前缀 + 序号 + 可选后缀」。
推荐命名规则示例:
- 电阻:R_USB_DP_1、R_DDR_DQ0_2
- 电容:C_VCC_3V3_1、C_DDR_VREF_2
- 电感:L_PWR_5V_1、L_DC_DC_2
- 芯片:U_MCU_STM32F4、U_PMIC_TPS65217
我在项目中遇到过,有人把电源芯片命名为U1,结果原理图里U1出现了三次。嗯,那画面太美我不敢看。所以我的建议是:每个元器件必须有唯一且可读的命名。别偷懒,后期你会感谢自己的。
3.2 网络标号规范:信号的名字就是它的身份证
网络标号,就是信号线的名字。名字起得好,调试少烦恼。我见过最离谱的,有人把I2C的时钟线标成「CLK」,结果和系统时钟冲突了。你说这找谁哭去?
我个人习惯用这套规则:
- 电源网络:VCC_3V3、VCC_1V8、VCC_5V(明确电压值)
- 地网络:GND、AGND(模拟地)、DGND(数字地)、PGND(功率地)
- 信号网络:I2C_SCL、I2C_SDA、SPI_MOSI、SPI_MISO
- 差分信号:USB_DP、USB_DN;ETH_TXP、ETH_TXN
注意:千万不要用中文命名网络标号!有些EDA工具对中文支持不好,导出网表时会乱码。我曾经因为这个原因,导致PCB厂打回来的板子全部短路——嗯,那是一个通宵的教训。
3.3 电源树设计:理清每一路电的来龙去脉
电源树,说白了就是一张「供电地图」。从输入电源开始,到每一路负载,中间经过哪些LDO、DC-DC、滤波电容,都要画清楚。我建议用层级结构图来表示:
输入12V
├── DC-DC 转 5V (效率92%)
│ ├── LDO 转 3.3V (给MCU)
│ ├── LDO 转 1.8V (给DDR)
│ └── 直接给USB口
├── DC-DC 转 3.8V (给射频模块)
└── 直接给风扇 (12V)
为什么要画电源树?因为你要算功耗、算压降、算纹波。我见过一个项目,工程师没画电源树,结果发现3.3V的LDO输入是5V,但LDO最大输入电压只有3.6V——板子一上电就冒烟了。嗯,这就是没画电源树的代价。
小技巧:在原理图里单独画一页「电源树总览」,把每一路电源的输入输出、电流能力、纹波要求都标清楚。这样Layout工程师一看就懂,不用反复沟通。
3.4 去耦电容布局原则:别让噪声毁了你的信号
去耦电容,很多人觉得「随便放几个就行」。其实不然。电容放不对,高频噪声直接耦合到电源里,信号质量一塌糊涂。我总结了几条原则:
- 就近放置:每个芯片的每个电源引脚旁边,必须有一个0.1μF的电容,距离不超过2mm。
- 大小搭配:大电容(10μF~100μF)负责低频去耦,小电容(0.1μF~1nF)负责高频去耦。一般每个电源域配一个10μF+一个0.1μF。
- 回路最短:电容的接地端要直接打过孔到地平面,不要绕路。绕路等于增加电感,高频性能直接打折扣。
- 并联使用:对于高速信号(比如DDR),建议用多个不同容值的电容并联,覆盖更宽的频率范围。
一个典型的去耦电容配置:
| 芯片类型 | 推荐电容组合 | 数量 |
|---|---|---|
| MCU(100MHz以下) | 10μF + 0.1μF | 每电源引脚1组 |
| FPGA(高速) | 100μF + 10μF + 0.1μF + 0.01μF | 每bank 2~3组 |
| DDR内存 | 10μF + 0.1μF + 0.01μF | 每芯片4~6组 |
| 射频模块 | 100pF + 10pF | 紧贴电源引脚 |
我记得有一次,一个DDR3的板子跑不到标称频率,波形一塌糊涂。查了半天,发现是去耦电容离芯片太远,回路电感太大。把电容挪近2mm,问题直接解决。你看,有时候成败就在这2mm上。
3.5 预留调试接口:别等板子回来才后悔
这个点,我每次讲课都要强调。很多工程师觉得「量产板不需要调试接口」,结果板子回来一上电不工作,连个波形都测不了。我的原则是:宁可多留,不可少留。
至少需要预留这些接口:
- SWD/JTAG调试接口:哪怕量产板,也要留个4pin的排针。万一固件要升级呢?
- 串口(UART):至少留一个,用来打印调试信息。我习惯用1.27mm间距的排针,不占地方。
- 测试点(Test Point):关键信号(时钟、复位、电源)都要引出测试点。直径建议0.8mm以上,方便示波器探头勾住。
- LED指示灯:电源指示灯、运行指示灯、错误指示灯。别小看这几个灯,调试时能省一半时间。
- 备用IO口:留2~4个GPIO引出到排针,万一需要临时控制什么,不用飞线。
血的教训:我曾经做过一个项目,为了省成本,把调试接口全砍了。结果板子回来,MCU死活不启动。没有SWD、没有串口、没有测试点——我拿着示波器都不知道该测哪里。最后只能飞线到MCU引脚,那叫一个痛苦。从那以后,我再也不敢省调试接口了。
好了,原理图设计规范就聊这么多。记住一句话:规范不是束缚,而是保护。你花在规范上的每一分钟,都会在后续的Layout、调试、量产中加倍还给你。下一章咱们聊聊PCB Layout的那些坑,到时候见。