EEPW ARM DIY手记之硬件功夫(二)——PCB布局布线经验浅谈与问题总结
这里接着前面的内容介绍电子设计之硬件功夫(二)——PCB布局布线经验浅谈与问题总结。有了之前的硬件功夫(一)——硬件设计前期准备,大家已经能够做到对整个方案的硬件设计(PCB板子)胸有成竹了,可谓是“万事俱备,只欠东风”。
(注:关于AD10的使用不在本手记的内容范围,但这里假设大家都已经对使用AD10进行简单的原理图和PCB设计有所了解)。
一、PCB布局布线经验浅谈
① 保证电路原理图设计的正确性
保证电路原理图设计的正确性就是要保证所设计的原理图在进行编译compile之后生成的网表文件中,每个元器件管脚的电气特性连接正确无误,因为接下来进行的PCB设计是建立在此之上的。当然,往往一个电子系统中元器件数目、种类众多,相应的管脚电气连接(net)也是不计其数,如果人工进行此项检查工作也是不现实,甚至是不可靠的,这时我们必须借助于AD10强大的检查功能,当然需要我们进行相应的检查项目进行设计约束,使得最终编译生成网表文件时没有任何错误和警告(有个别类型的警告是可以忽略的)。
倘若存在错误和警告,一定要想办法解决掉。
② 做好PCB布局布线前期准备
主要包括PCB机械结构、外形定义,信号层电源层分配、电气网格大小设定,板子固定螺丝过孔安放等。这些设置与后面的布局布线密不可分。
③ 合理的布局布线规则约束能够起到事半功倍的效果
对于AD10,甚至所有的PCB设计工具而言,布局布线的规则约束设置都是至关重要的,它是PCB布局布线质量的主要保证,一个好的规则约束需要花费掉整个PCB设计至少一半以上的时间和精力(尤其是对高速板更是如此)。
关于布局布线规则约束的设置,有些经验值可以参考,比如将数字地与模拟地用磁珠或者电感隔离避免相互干扰;电源地线的走线要尽量宽,采用大面积铺地技术以防止地弹效应,信号层之间走线方向应避免平行走线,以减少信号间的串扰,对功率发热元器件要分散放置,以防止局部受热过高等等。
其中尤其要注意PCB生产厂家的PCB工艺所能够做出的最小走线线宽与最小过孔孔径(例如本次ARM DIY我所找的PCB生产厂家的最小工艺即为:最小走线线宽0.15mm(约为6mil),最小过孔孔径为0.3mm(约为12mil)),不能小于该极限值,否则即使你的PCB Layout结果再完美也不能物理实现,也就没有任何价值。
④ 布局先行,布线省力
一个好的元器件布局应该以方便走线,缩短走线距离为最终目的,我的做法是在进行原理图设计时就对元器件放置位置以及管脚分配做考虑和优化。在一张白纸上,以主控芯片(一般为MCU、DSP或者FPGA)为核心,进行管脚分配,画出一个大致的草图来。
⑤ 交互式并行走线与蛇形线画等长线
对于一些高速器件,如SRAM、高速并行ADC,为了保证信号和时钟的建立保持时间满足器件datasheet的顺序要求,往往需要保证数据总线等长和地址线等长,这个时候使用交互式并行走线和蛇形线组合的走线方式是一个不错的解决方法。大家可以看到本次ARM DIY PCB上STM32F103Ze到SRAM之间正是采用的这一方法实现的等长走线。(注:必须先并行走线之后才能走蛇形线,走蛇形线是以并行走线的同类型(AB或者DB)走线最长者作为蛇形线走线长度约束)。
⑥ 差分信号走线攻略
差分信号具有良好的共模干扰抑制特性,常见于放大器应用和一些敏感外设接口中,本次DIY PCB中的USB和CAN接口的数据线就采用了差分走线。AD10提供了差分走线的工具,只是在使用之前需要在原理图中标注差分信号对,并在布线规则中,对其进行相应的规则约束。
⑦ 巧用、善用AD10快捷键,省时省力
这里说几个我个人常用的AD10快捷键:
<Tab>:放置元器件时编辑器属性;
<空格>:放置或移动元件时,逆时针旋转;
<L>:PCB布局或者走线时,切换至另一布线层;
<1>+<2>:走线时快速添加过孔;
<Q>:公尺单位与英尺单位切换
还有很多有用的快捷键,大家可以从相关的书籍和网络上查到。在使用软件进行原理图和PCB设计时,巧用和善用,是十分省时省力的事。
二、问题总结
① AD10自动与手动布局布线的权衡
对于简单的电路,AD10的自动布局布线功能还勉强可以使用,但对于稍微复杂的电路,即使你的规则约束设置得再好,也无法获得令人满意的layout结果。所以,不要把希望寄托于软件的自动功能,毕竟软件总是一根筋的按照规则约束办事,没有我们人类灵活善变,呵呵~!
② 不可小觑的PCB layout的后期处理
大家不要以为完成了PCB的最后一根走线就可以万事大吉了,其实PCB Layout的后期处理工作往往能够让后面的调试和板子使用者倍感亲切和方便。这包括那些必要的使用说明,在top overlay 和bottom overlay上用字符串(string)的形式给出,提醒用户注意相关的操作流程;对接插件的信号标出,以方便查找;对容易焊接错误的元器件给出封装标识(比如本次DIY PCB板上的USART1和USART2,由于设计使用的接口为同为DB9,公头与母头的引脚封装是相同的,若不给出male(公头)与female(母头)的封装说明,及极容易焊接错误,造成不能正常使用。),给出板子设计相关的资源网站,方便用户获得使用资料等。
③ 心无旁骛,谈PCB设计之细心
硬件设计既是一项技术活也是一件体力活,特别是在整个PCB Layout的过程中,最好能够集中精力,做到心无旁骛,这样不但能够提高效率,也是一块高质量PCB设计的保障(一气呵成)。
关于PCB设计的一些个人感悟
早在两年前,我进实验室之前(当时我准备进实验室之后做硬件)我的前任老板就跟说过“硬件设计是一件十分枯燥的事情,需要有耐心,能够静得下心来做,同时培养硬件设计人员也是一项十分耗资的事情,新手在开始设计一块PCB是往往不能够一版成功,需要再版甚至三版,PCB制作加工的成本和芯片元器件的成本都不小。”
现在想想,这些话是很有道理的,“事非经过不知难”,PCB设计工作确实是一项复杂的工作,涉及元器件选择、采购、原理图设计,甚至是后期程序设计等多方面的内容和知识,不是一朝一夕就能够出道的,需要长期而广泛的知识积累和沉淀,需要不断的尝试和实践,并在实际工作任务中不断的总结和思考。面对这样艰巨的挑战,我们需要不仅仅是兴趣和信心,更多的是耐心和细心。
胡恩伟
写于重庆大学A区一舍
2012年3月9日星期五
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。