
做硬件设计这些年原理图和PCB绘制这两件事几乎是每天都要碰的东西。很多人觉得原理图就是连线PCB就是拉线但真到了项目里一个引脚下错、一处布线过细、一次布局不合理轻则改版重则整块板报废周期和钱都搭进去。这篇备忘是我这些年实际项目中攒下来的经验覆盖从方案选型、原理图规范、PCB布局布线到Altium Designer、Cadence/Allegro、嘉立创EDA、PADS等常用工具的高频操作再补充单片机最小系统、电源、接口、驱动等典型模块的绘制要点一次性把容易踩的坑和对应的处理思路说清楚。1. 原理图设计先把习惯养好再谈画图1.1 器件选型与封装规划要先于连线原理图看着是画连线其实第一步是器件选型和封装规划。以网上经常搜到的几颗芯片为例——STM32F103C8T6、CH340、SW6206、DHT11、WS2812B、TB6612这些器件都很成熟但选型时不能只看功能要同时确认封装、供货、成本、焊接难度。比如STM32F103C8T6有LQFP48封装引脚密集如果用两层板手工焊接建议引脚间距至少0.5mm打样时也要注意焊盘开窗而DHT11常见的是4脚单排直插和许多传感器模块的PCB封装并不完全一样画封装前一定要拿卡尺实测。封装规划的实操做法是先把所有器件的封装列一张表位号、型号、封装、数量、备注画原理图的同时不断更新画完自然就是BOM底稿。管脚特别多的器件比如BGA封装或者上百引脚的连接器我会先在表格里把引脚序号、引脚名称、网络名称一一对应好再导到原理图工具里避免在画图界面一个一个对引脚效率低还容易错。网上有些原厂方案包比如SW6206的完整资料包含原理图、PCB、寄存器列表、BOM会非常方便但我的建议是拿来参考为主不要直接照搬。原厂方案的布局通常是为标准应用场景设计的你的电池容量、输入输出电流、散热条件可能不一样盲目复制容易在量产时暴露问题。选型阶段还有一个容易忽略的点对照datasheet里的推荐电路。电源芯片、晶振、RS232电平转换芯片这类器件datasheet里通常会给出典型应用电路包括电容容值、上拉电阻、ESD保护器件这些是经过验证的直接采用能省很多事。比如CH340G的V3引脚需要接0.1uF电容MAX232的电荷泵电容一般用1uF这些细节写在datasheet里但很多人到了PCB阶段才发现引脚没接对回头再改原理图就麻烦了。1.2 原理图绘制的硬性规范电源树、网络命名、去耦原理图首先是给人看的其次才是给工具用的。一份好的原理图打开以后三五分钟就能让人看懂电源从哪进、信号往哪走、每个模块是什么功能。我的习惯是优先画电源树从上到下按电压层级展开比如12V进来经过DCDC到5V再经过LDO到3.3V每一级标注电压和预期电流这样后续布局时能快速决定每个电源区域放哪里。去耦电容这件事我一直强调每个芯片的电源引脚要就近放一个100nF或10nF的陶瓷电容另外在芯片供电入口处放一个10uF到100uF的大电容做蓄能。小电容负责高频去耦大电容负责中低频稳压。两者配合电源纹波会明显改善。实际绘制时这些小电容在原理图上离电源引脚近一些标注清楚网络到了PCB阶段就能更快定位到对应引脚。网络命名也要有规则别用Net001这种自动生成的名称。我常用的命名习惯是电源用3V3、5V0、VCC_MCU、VIN_12V地统一用GND如果有模拟地和数字地用AGND和DGND区分信号用功能缩写比如USB_D_P、USB_D_N、SWDIO、SWCLK、SDA、SCL。这样一看原理图就知道网络用途排查问题也方便。原理图分区域绘制是另一个重要习惯。一个复杂的系统如果全部画在一张图纸上连线交错评审和后期维护都很痛苦。AD里可以用Sheet Symbol和Port做层次化设计把电源模块、MCU系统、接口电路、驱动电路分成多个子图顶层用方块图表达连接关系。OrCAD里也有层次图功能。如果项目不大至少也要用Net Label配合Off-page Connector在几张图纸之间传递信号。图纸大小设置也要注意AD里在Design-Document Options中修改OrCAD里在Schematic Page Properties中改。别用小图硬塞大电路宁可图纸大一点也不要让器件挤在一起。1.3 信号完整性和可制造性从原理图就开始考虑原理图阶段就要为PCB做规划。有些约束等到PCB再设就晚了比如差分对。USB D/D-、以太网TX/RX这类信号在原理图阶段就应该把它们标记成差分对在AD里是Place-Directives-Differential Pair到PCB后直接能生成差分走线规则Allegro里也有类似的XNet和Diff Pair设置。如果等到PCB布线时才想起来就得回头补费时间还容易漏。另外原理图要标注关键信号的特性和注意点比如晶振输入输出、复位信号、高精度采样信号可以加注释例如靠近MCU放置底下不要走数字信号线。这些注释在PCB布局时非常有帮助相当于把你的设计意图直接传给布局布线的人。原理图的可制造性也要提前想。比如有些MCU芯片下面是热焊盘如QFN封装原理图中这个引脚要明确接到地PCB设计时要在热焊盘上打过孔阵列辅助散热。还有极性器件电解电容、二极管、LED、电池座原理图符号上要把极性标识清楚PCB封装上也要加极性丝印。这些如果原理图阶段不规划PCB阶段很容易出现焊盘方向错误。2. PCB布局布线把看不见的问题提前解决2.1 布局思路先结构后电气模块化分区PCB布局是整块板质量的关键布局合理布线就顺布局混乱布线迟早返工。我的布局顺序其实固定了先定结构件再排接口最后放芯片。拿到板框后先放安装孔、螺丝孔、连接器、按键、指示灯、散热器这些结构固定的器件确保它们和外壳装配关系正确。螺丝孔的绘制看起来简单但一定要注意安全间距金属化螺丝孔周围要留出禁布区非金属化螺丝孔内层不要铺铜防止螺丝碰到线路短路。在Allegro里做螺丝孔通常用Padstack Editor建一个机械孔再在Board Geometry的Keepout层画禁布区AD里可以直接放一个Pad在Multi-Layer定义孔径并在Keep-Out层画禁布圈。结构件定好后再分区布局。电源模块放靠近输入接口的位置MCU放中间或靠近主要外设接口电路放板边传感器远离大电流和开关节点。模拟电路和数字电路要分区比如4-20mA信号采集这种模拟链路要远离DCDC开关节点。高低压隔离的场景更加严格反激式开关电源这类电路初级和次级的爬电距离要够板上一般要开槽挖空PCB光耦跨接在初次级之间开槽宽度至少要保证安全距离。去耦电容的布局是很多人忽略的。每个芯片电源引脚的100nF电容必须放在芯片电源引脚旁边距离不超过2mm过孔到电容再到引脚的路径要短。如果距离太远电容的退耦效果就大打折扣。我实际检查时习惯按芯片逐个看电源引脚旁边有没有小电容位置合不合理。还有一个常见坑PCB上器件不能选中。很多人以为软件坏了其实往往是器件被设置了Locked属性或者在右下角Filter里误选了对象类型只允许选中某些元素。AD里还有一个优先级问题如果你把Selection Filter里的器件取消勾选鼠标怎么点都选不中。这个我放在后面问题排查部分细讲。2.2 布线规则与线宽电流对照布线规则这块很多新手上来就问线宽该设多少其实核心就两条满足电流承载满足信号完整性。电流和线宽的工程经验对照我整理了一个常用表按1oz35um铜厚来算走线场景建议线宽对应电流参考普通信号线6-10mil0.2-0.5AI2C、UART等通信线8-10mil0.3-0.5ALED数据线WS2812B10mil以上0.5A以上电机驱动TB6612输出30-50mil2-3A电源主干5V/12V输入50mil以上或铺铜3-5A以上电池回路充电芯片50mil以上或铺铜加过孔阵列3-5A以上这个表是1oz外层的参考值内层因为散热差同样线宽承载能力要打对折。另外线宽不要只看走线宽度还要看铜厚。打样时默认1oz如果电流特别大可以要求2oz铜厚但成本会增加。我自己做电源板时大电流路径不用细线直接铺铜铺铜宽度按每毫米1A去估算然后铺完再检查电压降。走线角度上尽量用135度斜线或圆弧直角走线在信号完整性要求高的场合会产生阻抗突变和EMI虽然数字电路低速下影响不大但养成好习惯很重要。晶振走线要短底下铺地两侧用地包围离大电流远一点。复位信号、模拟信号也是同理。2.3 层叠设计、地平面完整性与散热双层板是最常见的我的建议是顶层走信号和电源底层大面积铺地。关键信号不要跨过底层的分割缝隙否则回流路径就断了。四层板的话经典叠层是信号-地-电源-信号或者信号-电源-地-信号尽量让电源层和地层紧耦合能形成一个小电容对电源完整性有帮助。层叠厚度对阻抗控制很重要4层板常见1.6mm总厚芯板厚度0.2mm左右生产之前要把叠层结构发给板厂让板厂按这个叠层压合。地平面完整性是整个PCB最重要的事情。高频信号的回流电流会沿着信号线正下方的地平面走如果地平面被开槽或者分割回流就要绕路环路面积变大EMI和串扰随之而来。我检查时最看重的就是电源走线的回流路径是否顺畅模拟地和数字地怎么分。模拟地和数字地通常建议单点连接用0欧电阻或磁珠跨接位置选在两者信号交汇处不要形成大面积地环路。散热方面电源芯片和驱动芯片底部如果有热焊盘一定通过过孔阵列连接到背面大面积铜皮过孔孔径0.3mm间距1mm左右成矩阵排列。我见过太多板子芯片底部焊盘接了一根细线没过孔一跑大电流就过热保护。LED灯板也是WS2812B单颗灯珠全亮时约60mA一串几十颗就是几安培底层铺铜和过孔阵列一点都不能省。3. 主流EDA工具的高频操作备忘3.1 Altium Designer导出、选择、拖动、图纸设置AD是入门最友好的工具但操作细节的坑也不少。原理图导出PDF只显示部分区域这个问题我遇到很多次。原因一般是Smart PDF或打印设置里的打印区域不对。处理方法是File-Smart PDF在向导中选择当前全部Sheet然后在打印属性里把Scale设为Fit to page打印范围选All不是Selection。如果还是只出局部检查原理图的图纸尺寸是否是标准A4/A3自定页面尺寸有时候会在PDF导出时被截断。PCB中器件不能选中十有八九是Selection Filter或Locked属性。解决方法是按ShiftC清空过滤器在右下方面板查看当前Filter是否限制了对象种类如果器件属性里Locked打了勾取消勾选。还有就是可能图层被隐藏了按L打开View Configuration确认对应层是显示状态。原理图移动元件时连线断开这也是AD的经典设置问题。AD的Move命令默认只移动器件不会拖动连接的线经常拖完后线全断。要勾选Preferences-Schematic-Graphical Editing里的Always Drag选项之后移动器件时连接线会跟着走快捷键是M配合拖动。如果你只是临时想拖一下不想影响连线就按住Ctrl再拖。AD里显示PCB器件型号和名称是按L打开View Configuration在Other层下面把Designator和Comment勾上然后选中器件在Properties里打开Show Name/Value。丝印层如果太密可以在PCB Inspector里统一改字体大小。3.2 Cadence/Allegro库路径、快捷键、测量与螺丝孔Allegro的功能强但上手门槛高。最常见的坑是打开brd文件时没有弹出Allegro PCB Designer Product Choice可能是许可证或环境变量被改过。处理思路完全关闭软件清理局部环境的HOME变量指向的目录里的特定配置文件或者直接重新运行License Manager工具如果还是不行检查Cadence版本和补丁是否一致。Allegro的快捷键设置不像AD那样在菜单里点点就行要改安装目录下的env文件或者用户HOME目录下的localfile.env。常用的alias是alias F2 donealias F3 zoom outalias F4 zoom in。我不建议直接改系统env容易改坏最好把自定义脚本放local env里。Allegro里查看距离和长度用Display-Measure选两个点就能测查走线长度可以在Find面板中只勾选Cline Seg然后用Show Element看属性或者用Tools-Reports生成走线长度报表。封装库导入Allegro时要设置路径Setup-User Preferences把padpath、psmpath、devpath等指向你的库目录。否则打开brd时会弹库文件找不到。网络表导进来之前先检查每一个器件的封装引脚是否和原理图符号对应尤其是管脚数非常多的器件最好先建一个小板验证。3.3 嘉立创EDA与PADS实用经验和崩溃处理嘉立创EDA这两年用的人很多主要是封装库方便立创商城的器件大多数有现成原理图符号、PCB封装和3D模型。画DHT11、ESP32、STM32这类常用芯片时直接搜型号就能拉进来。但这里要提醒一句立创EDA库里的封装虽然大多数可靠但每次画板前还是要核对datasheet里的封装尺寸特别是引脚间距、焊盘长度、丝印方向。DHT11的引脚间距是标准2.54mm但不同厂家的外形略不同能实测最好。嘉立创EDA画PCB的流程很直观原理图编译通过后切换到PCB设置设计规则布局布线铺铜跑DRC最后输出Gerber。需要注意的是它的铺铜有时默认直角最好在规则里设置45度或圆弧。DRC也要认真看在线DRC开着虽然慢但能少很多低级错误。PADS那个打开文件就报错自动关闭的问题我印象太深了。一般出现在打开旧版本文件或者文件里有特殊字符时。解决办法升级SP补丁或者用File-Export把文件导出为ASCII格式.asc再用PADS新建空板上File-Import很多情况下能绕过崩溃点。另外PADS的自动备份恢复文件如果崩了重启后容易再次触发可以先把这个功能临时关掉处理完再打开。3.4 设计输出与文件交接BOM、寄存器、Gerber原理图和PCB画完了输出这步千万别省。设计文件交接给不同角色时内容完全不一样。给板厂的是Gerber文件加钻孔文件最稳妥的做法是在AD里File-Fabrication Outputs-Gerber Files格式选RS-274X精度选2:5输出所有需要的层钻孔文件单独生成NC Drill。然后在CAM编辑器里预览一遍Gerber看看有没有丢失线条或字符乱码。给采购和硬件同事的是BOMAD的Bill of Materials输出Excel时我习惯把位号、型号、封装、数量、描述、参考设计都列全再补一列替代料。给软件同事的是原理图PDF和寄存器列表很多原厂方案包里会提供比如SW6206的寄存器列表实际调试时随时要查。Gerber转PCB这个需求偶尔会有AD支持File-Import-Gerber但我要泼盆冷水导入后得到的是图形对象不是可编辑的网络和元件无法直接拿来改板重投。真正要改文件时最好拿到原设计文件或者用AD的PCBFile转换工具实在不行只能重建这也是为什么我反复强调版本管理和源文件备份。4. 典型电路模块的原理图与PCB绘制要点4.1 STM32最小系统与LED控制STM32F103C8T6是最常画的MCU之一。最小系统原理图的核心点电源引脚VDDA和VDD都要接3.3V分别就近加100nF去耦电容VDDA引脚建议多加一个1uF到10uF的电容NRST引脚接10k上拉到3.3V再接100nF电容到地这样复位电路就完成了。BOOT0要下拉10k到地BOOT1可以悬空或也下拉这样从主Flash启动。8MHz晶振两个引脚各接一个18pF到22pF的负载电容晶振到MCU的走线要短。SWD下载接口只需要SWDIO和SWCLK两个引脚加上GND和3.3V四根线就能下载程序。用核心板控制LED原理图更简单一个GPIO推挽输出串联一个限流电阻到LED。限流电阻的值取决于LED压降和工作电流假设红色LED压降1.8V3.3V供电限流220欧到470欧电流大概3到6mA。PCB布局上这颗电阻要离MCU引脚近LED放在板边方便用户看到。这类简单电路重点不是原理图本身而是养成标注清晰的习惯比如网络命名LED1_CTRL、R12限流1k等。4.2 电源电路SW6206、反激开关电源、充电芯片SW6206是移动电源常用SoC原厂会给全套资料包括原理图、PCB、寄存器列表和BOM。我拿到这类资料后的流程是先看原理图的电源树搞清电池输入、升压输出、快充协议、电量显示几个部分再对照datasheet确认引脚定义最后看PCB布局。这类高电流芯片的关键是功率路径尽量短粗、电感靠近SW引脚、电流采样走开尔文接法、输入电容和输出电容紧贴芯片。如果板上有I2C通信接口记得加上拉电阻。反激式开关电源的PCB要求比普通数字板更高。输入端的整流桥、保险丝、压敏电阻、X电容和共模电感要按顺序排走线尽量短开关管和变压器组成的高压开关回路环路面积越小越好否则EMI会非常难看。初次级之间要留安全间距光耦反馈要跨在两级之间次级的TL431和采样电阻靠近光耦副边。层间绝缘也要考虑多层板时初、次级分别走不同层中间留足够间距。这块对新手来说难但按原厂方案布局基本不会出大问题。充电芯片比如9017R这类引脚不多但有一个共同点充电电流路径上有个采样电阻采样电阻的走线要用开尔文接法也就是从电阻两端单独各拉一条细线到芯片的sense引脚不要让大电流流过sense走线否则检测电压不准。底部散热焊盘一定要接到大铜皮上。4.3 通信与信号接口CH340、RS232、4-20mACH340的原理图很成熟USB的D/D-接到芯片引脚晶振12MHzV3引脚0.1uF电容TXD/RXD交叉接到MCU的RXD/TXD。PCB上D/D-要等长且尽量短最好走差分线差分阻抗90欧不强制要求但线要平行靠近。ESD保护芯片要放在USB口入口处。以前我做过一块板CH340就是晶振布线过长导致USB枚举不上后来把晶振贴近芯片、底下铺地就好了。RS232用MAX232或SP3232关键点是四个电荷泵电容一般1uF要靠近芯片放置走线短。DB9座放在板边RS232电平线和TTL线分开走不要平行太长。信号线注意ESD保护这在实际环境中很重要。4-20mA电路如果是用XTR117这类环路供电变送器原理图比较简单关键看外部调整管的散热和采样电阻精度。PCB上输入信号调理部分和环路输出部分要分区模拟地和电源地单点连接。如果是自己用运放搭的那还要考虑运放的失调电压和温漂布局时远离DCDC开关节点。4.4 驱动与灯控TB6612、H桥、WS2812B、蜂鸣器TB6612电机驱动芯片VM接电池电压或主电源VCC接逻辑电压3.3V或5VPWMA、AIN1、AIN2控制一路电机STBY引脚必须接高电平否则芯片不工作。PCB上电机电源走线要宽电机输出引脚的走线也要宽因为启动瞬间电流可能到1-2A。VM引脚的去耦电容要大100uF电解电容加100nF陶瓷电容放在芯片附近。逻辑地和大电流地建议单点连接我一般用一个小铜桥或0欧电阻衔接。H桥驱动电路如果是自己用分立MOS管搭NMOS和PMOS的栅极驱动电压要注意Vgs要足够。上下管的死区时间如果不加控制会直通短路烧管。所以实际项目中我建议用半桥驱动IC比如IR2104或EG2104之类死区由IC内部处理原理图和PCB都简单不少。H桥的大电流路径同样要短粗续流二极管或体二极管路径要短。WS2812B灯珠现在特别流行它的原理图不复杂VDD接5VDin数据进DOUT级联下一颗。但PCB有几个容易忽略的点每颗灯珠的VDD引脚要就近放一个100nF到1uF的去耦电容灯珠数量多时电源和地要按网格铺铜不然最后一颗灯颜色会偏数据线建议在Din端串联33欧到330欧的电阻特别是灯带比较长时可以抑制振铃数据线尽量贴着地走减少被干扰的概率。大电压大电流的长距离供电建议源端和末端都加电容。蜂鸣器看着简单但有源蜂鸣器如果是感性负载关断时会产生反向电动势驱动管要加续流二极管否则容易烧管或产生尖峰干扰。5. 常见问题速查与生产前检查清单5.1 软件报错与文件异常排查速查表现象可能原因处理思路PADS打开文件自动关闭文件版本兼容、图形数据显示异常用ASCII格式导出再导入升级Service Pack临时关闭自动恢复AD导出PDF只显示部分区域打印范围、图纸尺寸异常Smart PDF里选择全部Sheet缩放设为Fit to page检查页面尺寸是否标准AD中PCB器件选不中Selection Filter限制、Locked属性、图层隐藏按ShiftC清除Filter取消器件锁定按L检查层显示Allegro打开brd不弹Product ChoiceLicense或环境变量问题检查许可证清理偏好配置后重开确认版本补丁一致原理图拖动器件时连线断开AD拖动模式设置Preferences里勾选Always Drag或用M拖动快捷方式Gerber导入AD后不能编辑网络导入的是图形不是原生PCB只能观看或用原设计文件重做不能直接当PCB编辑5.2 DRC检查和生产工艺核对投板之前DRC必须干净。AD里运行Design-Rules Check看Un-Routed、Width、Clearance、Drill这几类是否清零。Allegro里跑DB Doctor和DRC。嘉立创EDA的DRC跑完也要逐条看。不要放过任何警告很多问题在板子到手后才暴露到时候改版就是一周起步。工艺方面常规打样建议线宽线隙不小于6mil再小就要加急收费。过孔最小孔径一般0.2mm到0.3mm孔径太小加工难度大。金属化螺丝孔的内径和焊盘外径要留够非金属化螺丝孔外径要和板边有间距否则板材容易裂。阻抗要求的线比如USB高优先级信号要按板厂提供的层叠参数计算线宽和间距最好在下单备注里写明阻抗要求板厂会替你调整。丝印检查也很重要位号字体大小一致极性标记清晰第一脚方向明确。有极性电容、二极管、LED丝印极性必须醒目。按键和插座的标注最好加在装配层方便产线接线。5.3 个人制板的检查清单我自己每次投板前都有一个小清单现在分享出来虽然简单但每一条都是教训换来的电源地之间是否用万用表量过短路每个电源域的去耦电容是否都放齐了晶振是否靠近MCUDCDC的电感位置是否合理每块大电流走线宽度是否够连接器方向是否和外壳一致螺丝孔是否做了禁布处理Gerber用CAM软件预览过没有BOM里的型号、封装是否和原理图一致。最后这步特别重要很多时候原理图是对的结果封装库里的焊盘尺寸和实际买到的不一样焊接时才后悔。原理图和PCB绘制这件事本质上就是不断把问题在投产前暴露并解决。工具用得熟不熟是效率问题画板前的规划和自检才是质量的根本。我个人的体会是养成一套固定的检查流程比临时抱佛脚有效得多宁可多花半小时检查也好过整个项目等返工。上面这些内容都是我踩过坑之后沉淀下来的希望能帮你在下一块板子上少走些弯路。