老吴 发表于 2013-9-6 23:29:40

全程记录:PCB新手的第一个双面板作品(PC性能监视器)[

全程记录:PCB新手的第一个双面板作品

大家好!我是一个PCB新手,最近在学AVR和PCB制板,同时也费了不少时间在网上找资料。下面我想谈谈自己第一个PCB作品的制作过程与心得体会,希望能给与我一样的新手们提供一个参考,如有不对之处欢迎大家批评指正,谢谢!



(图)设备运行时的情况,图示中的PC正在拷贝一个大文件,资源监视器正把硬盘的读写流量信息实时地显示在LED光柱上,同时以多个开关LED让各类性能/状态数据一目了然





(图)外观特写





(图)PCB特写





我是学通信专业的,记得在大学里的时候自己做过一块PCB板,用油漆描的,三氯化铁泡的。那是一个红外报警装置,想法不错,可是做出来的板子却是惨不忍睹!PCB的走线近看像树枝,远看简直就是一幅现代抽象画!当然,那个项目最终以失败而告终。不过,对于电子的那份热情尤在,电子方面的杂志书籍也没少看,“画饼充饥”的滋味实在不好受。因此,与许多电子爱好者一样,一直以来我都有个心愿,就是能够自己独立完成整个PCB项目的设计与制作。现在因为有了热转印这个适合业余开发的制板技术,使得我的愿望得以实现!



之前我在太平洋电脑网看到过一篇文章(打造超强硬盘流量指示灯,http://arch.pconline.com.cn/pchardware/diyheaven/others/10303/141477.html),有兴趣的朋友可以去看一下。大家都知道,硬盘指示灯也就是一个普通的LED,只能大概地表明硬盘的工作状态,点亮表示工作。现在不都流行改造机箱嘛,相信有许多朋友都读过《微型计算机》这本杂志吧,上面就这个话题专门开辟了一个栏目,目的只有一个:好玩,够炫!可以说是一种精神满足吧。这个小制作的具体原理是这样的:硬盘灯的控制信号是由主板上的HDD-LED跳针输出的,它是一个3V左右的脉冲信号,高电平点亮LED,很简单的工作原理。该网友的想法是在HDD-LED信号的输出端加一级RC滤波,使得有脉冲时信号电压缓慢上升,无脉冲时缓慢下降,在滤波器的输出端接一片LM3914来控制10个LED(一字排列)的闪断。LM3914是一个将模拟电压转换为LED阵列输出的芯片,它的工作原理类似A/D转换,输入信号大时点亮的LED数量也多,看起来与普通音响上的均衡器面板差不多,由于加入了RC滤波,大大加强了视觉效果。电路很简单,做起来也不难,但是功能比较单一(只能对硬盘进行监控,输出信号只是一个开关量,且不分读写状态)、修改有风险(需改动硬件,有损坏主板的可能)、安装有问题(嵌入5英寸的机箱面板?)。受此启发,我想何不利用单片机来控制,功能岂不是更加强大?



熟悉WindowsNT的朋友都知道,它有一个内置的功能强大的性能监视器(PerfMon),并且随机提供了一个工具程序,可以通过打开“控制面板->管理工具->性能”来运行。它提供了一种高效的对电脑的各种性能数据进行实时采样的能力,这些数据包括硬盘流量、网络流量、CPU占用率、内存使用率等等,分类非常详细!因此,这也就决定了我这个作品的服务端(用于提供性能数据)只能运行在基于NT内核的操作系统上,也就是WindowsNT/2000/XP。该程序采用微软最新的.NET语言(C#)开发,所以要求系统还必须装有.NET框架(类似运行库的东东),当然这个东西可以在微软的老家下载(其实各大软件下载网站都有)。



(图)上位机软件提供的计数器选择界面(分类详细,应有尽有)

老吴 发表于 2013-9-6 23:30:57

好了,废话不多说了,首先介绍一下它的基本组成和工作原理吧。在PC端,服务程序以一个可定制的频率不断地读取本机性能数据,通过USB电缆发送给单片机。其中,单片机侧的USB接口通过AVR309来模拟,转换成串口数据发送给M8主芯片,M8则负责把接收到的数据扫描显示,同时用蓝光LED给出工作状态。其中的LED部分可以显示2个柱状图和8个开关量,一共10个可定制的性能数据。具体来说,首先,上位机软件利用WindowsNT内置的系统性能监视器对象,以一定的间隔时间实时地采集本机性能数据,其中每个采集通道对应一个硬件显示单元。然后把采集到的数据进行分析,转换为适合硬件显示的格式,这个过程有点类似于A/D转换。接着把各通道数据映射到数据封包的指定位置,最后通过AVR309接口下发该数据包。当单片机串口正确接收到一个数据包时,闪断状态指示灯以表明接收正确,拆包后把各通道的数据分发至各显示单元所对应的缓冲区中,由定时扫描子程序负责显示。对于光柱类型的显示单元,在固件程序中还实现了对光柱高度的缓升缓降控制,以增强视觉效果。这样就完成了一次“采集-处理-显示”过程。



这样一个看似简单的项目做起来可真不简单,俗话说得好啊:“看人挑担不吃力”!做一块PCB板不容易,做一块好的PCB板更是不容易,不仅要求制作者熟电脑、精电子,还要通机械、懂化工,可以说是十八般武艺样样都要会!下面就开始讲述我的制作历程吧。



(图)PCB的正面布线及元件布局





(图)PCB的反面布线





Protel原理图就不说了,我觉得网站上的那篇ProtelDXP指导教程作为入门很不错,可惜是HTML格式的,打印下来不好看,后来我在网上找到了它的原版PDF,打下来作为参考,非常实用。由于LED数量众多(除了状态灯外均采用贴片,亮度高、视觉效果好),加上受限于PCB的面积(因为要装进软盘盒,后面会具体说明),单面板是不可能的了。Protel库提供的焊盘尺寸确实太小,因此我自建了一个封装库(用DXP的向导建库真是一件惬意的事啊)。考虑到使用双面热转印,我把各项参数设置得比较宽松:默认线宽0.6mm,VCC/GND线宽1.0mm,最小线距0.6mm,孔径0.8mm,PCB周围留出7mm左右的Keepout用于打孔安装螺丝。采用双面自动布线加手动调整,我注意到板子上除了USB接口座(而且由于它的外壳是金属的,因此插座底部不设布线,否则会有短路可能),其它元件基本上都可以两面焊。



今儿我还是头一回用热转印法,先试制了两块单面板供打孔、焊贴片、上漆练习用。我是用红心牌电熨斗烫的,因为没钱买过塑机。做第一块板的时候由于缺乏经验,板子上有非常多的断线,反正试验用,不管它了。然而它带给我更多的是惊喜,此前我一直怀疑用熨斗烫能否把电路给印上去,现在通过实践终于把这个谜团给解开了。盐酸与双氧水的威力果然了得,把板子放进溶液的一霎那,像是放进了“油锅”似的,水面上泛起一阵气泡滋滋作响,即使戴着棉口罩,也难逃氯气的“追杀”。不过看着铜皮一点点地被啃食干净,这点牺牲又算得了什么呢!



经过前一次的经验总结,做第二块板时我注意到以下几个方面:

1. 清洁敷铜可以用400号的水砂纸来打磨。400号的比较细腻,即使很用力,铜皮也只有轻微的磨损,可以用来加强炭粉的附着力。

2.打印好的转印纸剪成与铜板差不多大,最好稍小一点(使用电熨斗的话,PCB边缘的布线比较难处理,还是留出一些空隙为好),这样贴透明胶时转印纸才不容易起皱而导致布线移位。

3.制作一个10×10CM的小板要贴8段透明胶(每边各2段,用于固定转印纸),每段长度2厘米左右。熨烫的时候透明胶不可避免地会被高温融化,但这用不着担心会造成移位,因为转印纸面上也有一层胶,遇热后也能产生粘性,起到辅助定位的作用。



我熨烫的基本步骤如下:先把熨斗平放在板子上加热几秒钟,然后分别以两条对角线的方向熨烫,目的是让转印纸能够“粘住”板子。这样即使透明胶融了,转印纸也动不了。接下来的步骤我认为很关键,由于熨斗的底部并不是百分之百的平整(与其质量有关),因此光是平放着向各个方向熨烫并不能得到非常满意的效果。我的作法是利用熨斗的侧边(握的时候稍微向侧边用力)来回地扫板子,有点像电视机显像管的工作模式,扫完“一帧”后把板子转个90度,再重复一次。



经过这样的“待遇”,相信板子的每个角落都应该“照顾”到了吧。熨烫结束后马上把板子投入冷水中冷却,片刻捞出,再慢慢地撕去浸湿的转印纸,弄干即可。基本上我只找到2到3处的轻微断线(最小线径0.5),而且线条非常清晰。我想,用冷水冷却的效果较好的原因可能是与炭粉骤冷后收缩速度加快、附着力加强有关……最后用记号笔仔细修补断线,我用的是十多元一支的进口笔,价格是贵了点,可修补的效果和一两块钱一支的国产笔真的没法比。



第三块板,也就是我的第一块双面板也是如法炮制。对于双面板的对齐问题,我是参照论坛上的方法,即印好一面,钻孔,再印另外一面。这块板子上我一共打了5个孔,分别是四个角和一个中心点(焊盘或过孔),这样基本能够保证对齐。在印第二面的时候尤其要注意一点,对已经印好的一面要加以保护。为了防止掉粉,最好是平放在光滑的表面上,转印纸也可。注意不要在该面垫报纸之类的东西,因为报纸受热后也会将它的文字油墨转印到铜皮上!两面都印好以后再腐蚀,因此,为了让正反面的腐蚀进度保持一致,可以用一根尼龙细线以十字型扎法捆扎PCB,就像捆扎礼品一样,在板子的一端留个线头用于手持,这样浸入腐蚀液时就可以控制自如了。



板子做好了,接下来的工作是给PCB打孔。可别小看这个步骤,因为我们做的是双面板,业余条件下两面很难对齐,因此就可以在打孔的时候稍加注意,在没有对齐的地方将上下孔的位置解一下(让钻头稍稍倾斜)。打孔用手电钻,这个工具没法省,我只用了70大元买了一把,做工非常不错。由于采用了扫描方式的LED阵列,加上第一次设计PCB,因此造成PCB上的过孔数量比较多,我是用焊细线的方式连接两面的,这个操作比较简单。



然后我想说一说焊接的问题。我手里只有最基本的焊接工具,电烙铁不买贵的,手头用的是一支十多元的地摊货,对于业余焊接来说够用了,非常好用。焊锡丝一定要选那种内置松香的,至少准备两种线径,分别是0.8mm的用于焊接普通元件、0.3mm的焊贴片。第一次使用酒精松香溶液(以下简称“焊剂”),我简直无法相信它的助焊效果!我的焊接习惯是不大喜欢在烙铁上挂锡,而是一手持铁一手持锡,左右开弓,这样能够比较方便地控制焊锡量。



DIP封装的芯片尽量使用那种单排圆孔插座,虽然成本高了点,但发现它有两个较大的优点:1.可以自行根据芯片的大小和管脚数目定制,要多少剪多少;2.元件面的插座引脚也是圆柱形的,使DIP芯片的直接两面焊变得很简单。另外对于业余爱好者来说,使用芯片插座的好处不用我多说,大家都很清楚吧。对于DIP插座我是这样焊接的,不知大家有没有更好的方法:



1.先把插座的反面引脚焊好,这非常容易,大家都会。

2.在正面的引脚及焊盘上刷上焊剂,多涂点,反正可以清洗的。

3.使插座排与自己平行,此外为了加强焊锡的流动性,可以在板子的前下方垫一些物品,使板子与桌面有一个合适的倾角。

4.将尖头烙铁倾斜地点在焊盘外侧的边缘上(尽量避免烫坏插座上的塑料壳),烙铁尖面向自己(手腕向内)。

5.另一只手持0.8mm焊锡丝,慢慢地点向烙铁尖直至融化,可以看到焊锡流向整个焊盘。由于使用了焊剂,焊锡具有非常好的流动性,因此不用担心引脚的内侧会上不到锡。焊锡量的控制可以目测,不宜过少,以能够包住插座引脚为宜。

6.最后移开烙铁,这样就形成了非常光滑的焊点。



(DIP插座的焊点)





焊接的另一个难点就是贴片元件的焊接,当然,这是对于新手而言的。其实,焊贴片的难度并不在于焊接本身,而是在于怎样焊得美观,焊得牢固。以下是我焊贴片的一些体会,希望能给大家带来一些帮助。



虽然焊接通孔元件还比较熟练,但是对于贴片我还是第一次焊,所以在正式焊接之前我也作了不少练习。一开始我是按照网上教的方法焊的,元件采用0805电阻,大致过程是这样的:先在一侧的焊盘挂锡,用镊子将元件摆正,同时用烙铁融化刚才所挂的焊锡,这样元件的一头就固定住了,另外一头的操作就简单了,人人都会。但是我发现其中还有点问题,不知是由于操作不熟练还是其它什么原因,焊接后元件的位置总是不太理想,不是七翘八歪就是高低不平。我估计这与焊接时用镊子夹持元件有点关系,镊子毕竟不如手灵活,还有一点就是挂锡总有厚度,这也会造成元件左右高低不平……有了几次实践后,我自己琢磨了一个办法,屡试不爽,不知是否有人也是如此焊接的:



先给焊盘涂上焊剂,然后用镊子夹住元件,给元件的两头和底面涂,注意不要涂得过多。涂完之后把元件粗略地定位在PCB上,用手指(牙签也行)仔细地摆正元件,压平。接着用烙铁尖分别点在两侧焊盘上,待焊剂蒸发(发出滋滋响声为止,不要等全蒸发完了:-)后元件就被“钉”在PCB上了。因为松香焊剂蒸发时能产生一定的固化作用,基本上只要不是太用力,即使是用手指推也移动不了。不过在操作的时候还是要小心,避免造成元件位移,别让你的定位工作重来一遍!焊接的方法与DIP插座类似,也是用烙铁尖抵住焊盘的边缘,但目的不同,这里是为了尽量不碰到元件而造成位移。手持0.3mm焊锡丝在此加热融化,由于加入了焊剂,因此在焊盘边缘融化的焊锡会很快地流向元件一侧的触点。要说明一点的是,这个动作要快,焊锡量不宜多,目的是固定。一旦元件被固定住,就可以用类似的方法焊另一头了,此时就要多加点焊锡了,以使焊点光滑圆润。焊完后移开烙铁,万一出现焊锡拉尖现象,可以用烙铁头抵住焊盘拖动至其一角再移开。最后再用相同的方法焊好原来的那头即可。这种方法熟练了以后,应该还可以推广到其它贴片元件的焊接上去。



(1206贴片LED的焊点)





当所有的焊接工作完成后,一块基本的电路板也就做好了,它至少可以工作了。但是我的目标是尽可能地把PCB做得完美一些,因此以下的几道工序也是不可或缺的。用异丙基酒精(异丙醇,化工店有售,我只买到分析纯的,要15元一瓶500ml)清洗一下板子,除去残留的助焊剂,使PCB更清爽美观。最后一道工序,也是耗费我时间最多去琢磨的,就是怎样自制保护漆。看到网上有许多朋友是用酒精松香保护的,总觉得那个东西容易脏,而且不太美观。一直觉得专业PCB上的那层绿漆非常漂亮,总想着什么时候自己也能做出这个效果(当然质量并不是首要因素),所以在网上找了许多资料,发现基本上都是使用丝印工艺的,并不适合业余制作,不过最终还是让我找到了PCB保护漆的化学配方,分别是虫胶片、无水酒精和次甲基蓝这三样东西。实际上虫胶+酒精就是平时装修用的那种清水油漆,也没有什么神秘的,但是不知道就是不知道,害得我找了这么久。只要保护的话清漆就够了,如果要让板子看上去更专业,可以在其中加入少量的次甲基蓝以使溶液呈现一定的绿色,具体效果如何我也没试过。于是我跑了几家化工店打听了一下,虫胶片一公斤起卖,70元/kg,用不了那么多啊;次甲基蓝25元/25g,单价是比较贵,但是由于用量少,应该还能接受。不过最终我还是没有选择这个方案,成本较高,而且心里没底,后来还是选用模型专用油漆代替的。国产的比较便宜,我买的是天使牌的透明罩光漆(也有透明绿色的品种),6块钱一小瓶(23ml)。进口的也有卖,价格贼贵,开价12元一瓶,才10ml!试用了一下,感觉还不错,一下子让PCB明亮了许多,有一种镜面反光的效果。不过要涂得均匀有不小的难度,可能还要用有机溶剂稀释一下吧。这样小小的一瓶油漆很耐用,涂上十块板子不成问题。

老吴 发表于 2013-9-6 23:31:47

至此,电路板的制作工作全部结束。怎么,好像还缺了点什么,对!给它安个好家,我早就想好了,由于这个作品的用途决定了必须选用透明的材质来制作,自己开模不现实吧,那种十片装的软盘盒正好适用。当然,在装入电路板之前还要进行加工,首先在四个角上各钻一个3.2mm大小的孔,用于安装螺丝。由于两面都要固定(即电路板与盒子面板),因此我选用了一种带内螺纹的空心螺柱,两头都可上螺丝,兼顾美观与牢固。此外,还有一个USB插口也需要开孔,要照顾它可真不容易,因为我没有专用的开孔工具,所以装上1.2mm的钻头沿着插口的大小打了一圈小孔,然后用美工刀小心地切下中间部分,最后再用锉刀把开口打磨平整。好了,欣赏一下自己的作品吧,它可凝结着不少心血呢!



(图)十片装软盘盒打造的外壳和固定板子用的螺丝螺柱





(图)PCB鸟瞰图





(图)USB接口特写





(图)AVR两兄弟

老吴 发表于 2013-9-6 23:32:32

(图)通过修改AVR309的固件程序和安装文件,我的USB设备有了自己的名字





(图)上位机软件的运行情况(必须以管理员身份登录Windows),设备状态标签能够实时地反映出USB设备的连接情况,而跟踪列表则反映了各采集通道的实时状态和数据变化。其中,打勾的表项说明该计数器对象工作正常,打惊叹号的表示采集出错或是当前不可用,没有图标的说明还未启动该项。所有的显示单元都可以自定计数器对象,以图示的例子来说明:光柱1/光柱2代表硬盘的读写速率,分别为2.76MB/s和5.27MB/s,而显示值则表示对应硬件显示单元上点亮的LED个数,由于使用了非均匀量化技术(借鉴PCM编码原理),放大了小信号,减小了大信号,进一步提升了光柱的视觉效果;光点1代表了当前CPU的占用情况,这里为72.7%,预设为超过90%负荷时点亮LED(报警);光点2代表了可用内存的大小,这里为8.0兆,小于预设的30MB告警门限,于是显示值为1(点亮);光点7代表的是uedit32进程(大家熟悉的UltraEdit编辑器)的CPU占用率,由于当时并未打开该程序,因而导致该计数器暂时不可用,但是如果用户启用了实时检测功能,则当UltraEdit软件启动后就会被检测代码所捕获,立刻推上线进入监测。





上位机软件的开发占到了整个项目超过一半的时间,程序在WindowsXP+.NET框架1.0+VS.NET2002环境下编译通过(以上均为中文版),其特点如下:



1. 程序自带监控数据实时跟踪和显示功能,可以脱离硬件设备而单独运行,即所采集到的性能数据可直接由软件界面上的跟踪信息列表读出。

2. 程序只能以单实例方式运行,避免了用户无意中运行多个实例所造成的共享冲突。

3. 程序可以设定为开机自动启动,并最小化至任务栏图标区,不会妨碍用户正常操作,因此无需任何人工干预就可以实现自动运行。另外,由于创建性能对象时需要占用一定的系统资源,如果在Windows启动(这里指进入桌面)时立刻打开监控,有可能会拖慢系统的启动速度,因此在程序中增设了一个定时器,让程序启动后延时一段时间,比如20秒钟,等耗费资源较大的Windows启动过程结束后再打开监控,这样用户就不会觉得慢了。

4. 在监控打开的情况下,可以对当前已经使能、但不可用的计数器进行实时扫描,一旦发现进入可用状态,就立刻把该计数器推上线,省去了手动检测和操作的麻烦。

5. 对用户在配置上的改动实行严格检测,提醒用户纠正输入错误,以保证程序相关配置信息的完整性。

6. 完全的XML配置驱动方式,最大限度地保证程序的可定制性。用户可以随意更改下位机的硬件配置,比如波特率的设置、显示单元的数量、类型等,而无需改动上位机的软件代码。大多数的设置都可以在软件界面上完成,但是如果涉及增减显示单元或更改其硬件属性等设置时就需要手工编辑XML文件了。

老吴 发表于 2013-9-6 23:55:45




源文件。驱动程序等。都打包了。

xinyuliangen 发表于 2013-9-7 07:29:44

这些都是那找的呀,真厉害啊

蓝蓝的草原 发表于 2013-9-7 09:11:48

老大 这是哪个学校的做呢的?

qq4114 发表于 2013-9-7 09:25:58

楼主强大啊,好东西,值得研究一下原理,借鉴一下。

老吴 发表于 2013-9-7 09:27:46

回 蓝蓝的草原 的帖子

蓝蓝的草原:老大 这是哪个学校的做呢的? (2013-09-07 09:11) images/back.gif

说实话,我也不知道。看到就转过来了。

lim123 发表于 2013-9-8 02:26:36

好样的
页: [1] 2
查看完整版本: 全程记录:PCB新手的第一个双面板作品(PC性能监视器)[