手把手带你搞硬件设计
一般缺乏经验的工程师或者学生,拿着一个项目任务书,或者一个成品的电路板的时候,往往会感觉到,根本无从下手。主要原因是,知识储备不足,少实践少动手。
但也不用着急,这是需要慢慢积累的。同样,不用担心东西太多,不知道学到什么时候才能独当一面,因为很多东西都是相通的。
下面介绍硬件设计的实践路线。
初级实践篇
1、焊接。
首先看一下前辈的焊接视频。
![](https://semi-static.oss-cn-hangzhou.aliyuncs.com/article/2024/06/05/1717586975.jpeg)
拖焊的时候,先对齐芯片,再上锡固定一个角,然后在另一侧加满锡,最后整个芯片都加满锡。把板子拿起来,倾斜30度左右,再用烙铁加热,把变成液体的锡吸起来,甩掉,直到把所有锡都吸走为止。烙铁的温度要调好,我一般用350摄氏度。
重点要体会,锡变成液体的时候,会像水一样受重力作用向下流,还有,烙铁头表面是有吸力的,所以在整个焊接过程中,都不要用力刮锡的。如果焊的时候,操作起来不顺手,可以转动板子。
关于BGA的焊接,一般是不建议手工操作的,因为成功率不高,推荐用返修台。这里说一下BGA手工植球的操作流程。
先用万能植锡钢网(这是最落后的工具,除此之外还有植锡台,不过挺贵的),跟BGA对齐,再用胶布把BGA和钢网粘住固定好。先加锡膏,再用风枪吹一会(风枪的风速和温度可以调低一点),锡变亮的时候,再用手术刀,把多余的锡刮走。如果锡球不均匀的话,再重复上一步,直接锡球均匀为止。撕掉胶布,用手术刀把BGA撬起来。
2、仪器仪表的使用。
万用表:为什么起这个名字?因为对于高手来说,万用表是几乎是万能的。一般也是用它来测电压、电流和电阻。
示波器:现在都用数字示波器,一个auto键,可以轻松搞定,而且还带FFT的功能,可以使用频域分析法,是硬件工程师必须掌握的神兵利器。示波器还有个小众的功能,就是李沙育图(测相位差和测频率用的)。此外,还要学会用示波器测开关电源纹波。
数字电桥,也叫LCR、LCZ测试仪:用它可以测电感值、电容值、电阻值、Q值、D值等,精度比一般的万用表要高。
信号发生器,也叫函数信号发生器:可以输出正弦波、方波、三角波、已调信号。用法比较简单,但是射频信号发生器,就要注意了,在输出信号之前,一定要做好阻抗匹配,不然信号反射的话,有可能会损坏信号发生器。
频率计:用法比较简单,不再多说了,有的信号发生器还增加了频率计的功能。
矢量网络分析仪,也叫网分仪:用于测量射频电路的S参数矩阵,还可以显示史密斯圆图。每次使用之前都要校正一下频率点。
还有一些小众仪器就不说了,像漏电流测试仪、电表等。
3、维修。
首先肉眼观察一下板子,看有没有虚焊、短路或者缺少元件。有就修,没有就下一步。
然后用万用表测一下各组电源,看有没有短路。有就修,没有就下一步。
给板子上电,看各组电源电压是否正常。有就修,没有就下一步。
到了这一步,你必须对板子的整体设计有一定的认识,或者你得背下前辈们的经验(背经验的往往觉得硬件很神秘,这是我不推荐的做法),不然没法修好。先对板子的各个功能分好模块,从现象判断哪个模块出问题,断开可疑的模块,来排除可疑点(像侦探一样)。
有一块好板的话,就很好办,直接对照着测各元件的电压(或者对地的电阻值)就能解决了。用万用表只能解决一些简单的问题,要想彻底修好,手上一定要有示波器,因为像晶振受到干扰之类的,用万用表是测不出来的。
4、调试。
调试,一般是自主设计的电路,没经过验证,需要自己去验证,这是非常需要扎实的理论基础。调试也是硬件工程师最容易累积经验、含金量最高的技能之一。
如果前期遇到棘手的问题,可以暂时先放下,等后来水平再高一层,就会解决的了,所以千万不要钻牛角尖,这只会浪费更多的时间。调试的技巧需要长时间的积累,放在前面,是让大家有所重视。
调试方法,多种多样,视情况而定,不能一概而论,笔者总结了以下几个方法:
a、示波器测量。当然,首先你得清楚你设计出来的电路,会出什么样的波形,才知道测出来对不对,也就是说,理论不行的,根本无法调试。
b、对照验证过的电路。如果手上有一块好板,而需要调试的电路里面刚好有好板的电路,可以拿好板来飞几根线验证一下,排除可疑点,这里跟维修的方法一样。
c、仿真。其实在设计电路的时候,能仿真就先仿真了,如果实物做出来,还是有问题,也可以仿真一下。如运放电路的参数、不确定的电阻串并联等等。
d、镊子短路。在你怀疑时钟是不是干扰到其它信号的时候,可以用镊子把时钟引脚跟地短路(只要是弱信号,跟地短接一会都不会烧板子的,放心),以排除可疑点。还有复位的问题,也可以用这个方法。
e、信号发生。比如一个运放电路,输入和输出均受干扰了,那么你就可以用信号发生器或者开发板,来输出一路干净的信号,这样可以排除可疑点。
f、软件调试。如果板子上,有CPU就可以用串口调试,有FPGA就可以用嵌入式逻辑分析仪,这样可以确定是芯片内部还是外部的问题。
g、观察现象。信号都在板子上跑了,直接观察是观察不出来的,这个时候,可以引出信号线,接在可观察的设备上。如:调试音频放大器的时候,就可以接一路信号,到一个现成完好的功放上面,通过听声音来观察现象。当然,你可不要只想到功放,还有其它可观察的设备或者元件,像LED灯、显示器,甚至是收音机,只要能派得上用场的都可以。
中级实践篇
1、仿真软件的使用。
常用的仿真软件也就那几个,proteus、multisim、labview、pspice、ADS等,其中大多数是用spice仿真模型。
a、proteus。这个软件很适合仿真单片机,元件库也挺多的,但是有个致命的缺点,就是太智能了。单片机不接电源、不接晶振也能正常工作,这跟实际有很大出入,所以笔者建议学单片机,还是用开发板吧。
b、multisim。这个软件很适合仿真模拟电路,其实它本质是spice仿真,只是界面做得简单很多,适合初学者使用。虽然有8051的库,但是,不适合仿真单片机,仿真起来很慢。
元件库其实并不多,像0805的三极管,它都没有,这时候只能用其它的三极管(2N2222等)代替一下,要不,就自己做这个元件库。multisim还可以跟ultiboard配合使用,实际板级仿真(连同,一起仿真)。
c、Labview。这个软件功能非常强大,可以仿真模拟、数字电路、也可以做上位机(如:虚拟仪器等)。最具特色的,就是图形化输入,鼠标拖几个东西就 可以仿真了。
d、pspice。这个软件是cadence或者叫SPB开发套件中的一个软件,一般是在capture中调出来的。使用capture就可以不用输入spice的点命令,非常方便。其中,pspice的图表要比multisim的要好看一些,比如,测几个节点的电压,在pspice一张图就看得很清晰了。
e、ADS。这个ADS是指Agilent的Advanced.Design.System,而不是指ARM编译器ADS1.2。ADS可是电路仿真的神器啊,功能非常强大,一般是仿真高频、射频、微波电路用的,当然,集总参数电路也照样可以仿真,但是不太适合初学者。
2、软件的使用。
主流的软件有三个:Altium Designer、PADS、Cadence,当然还有些小众的,像Eagle。这里只介绍主流的三款软件。
Altium designer(简称AD),以前的版本是protel 99se,protel DXP,用法都大同小异,很适合初学者使用,3D渲染效果最好,同时也是学校里教得最多的软件。
但是,很多公司反而不用这软件,因为用它画多层板的话,电脑会很卡,而且公司里面用的人多的话,可能会收到altium的律师函。可以用它来做FPGA开发,并进行板级仿真。适用于小规模的。
PADS,以前的版本是power ,分成三个组件:logic(原理图)、layout(布局和设置规则)、route(布线),最具特色的功能是:使用极坐标放置元件和自动布线(这个自动布线可没有AD那么烂)。适用于中小规模的PCB,但是logic相当不好用,所以有些人用orcad+PADS来弥补这个缺点。适用于中小规模的PCB。
Cadence(也叫SPB)是个系统级的套件,除了画原理图、PCB之外,还可以画版图、仿真电路、仿真SI/PI等。Cadence公司收购了orcad,目前画原理图的是用capture(也叫orcad),画PCB是用allegro,仿真电路的是pspice(从capture里面调出来的),仿真SI/PI的是Sigrity(需要另外安装)。
用capture画原理图是非常爽的,比如,画个芯片的原理图库,你可以用excel写好(引脚号和部分引脚名,像D0~D7,鼠标拖一下就出来了),然后copy到capture里面,再做少量的调整就可以了。但是用allegro画封装就比较烦琐,需要事先画好焊盘,才可以画封装。适用于中大规模的PCB。
![](https://semi-static.oss-cn-hangzhou.aliyuncs.com/article/2024/06/05/1717586976.jpeg)
3、其它软件的使用。
画板框用的AutoCAD、画3D封装的solidworks或者pro-e、科学计算的MATLAB。
AutoCAD的基本用法还是比较简单的,在有人教的情况下,半小时可以入门,对于硬件工程师来说就画一下板框,保存为DXF格式,再导入到PCB设计软件。同时,DXF也是硬件工程师与结构工程师交互的文件格式。
相对于pro-e来说,solidworks更加易学易用。用这两个软件都可以画元器件的3D封装,再把PCB导出为stp格式放到solidworks当中,这样,还没打板就可以看到整机的效果图了。
学3D软件还有个好处,让你更清楚板子安装的情况,像定位孔、插座、接线等,这样设计出来的PCB不容易因为结构问题而无法安装,这是很多硬件工程师容易忽略的地方。
MATLAB,任何的计算,都可以用它。简单的计算,像电阻分压、滤波器的截止频率