应用软件:Proteus、Altium Designer、立创EDA
目录
1. PCB设计及仿真
1.1 调速流水灯
原理图绘制及Proteus仿真过程
Proteus中PCB布板步骤
1.2 自制51复合功能板
2. 自焊51板的测试与应用
2.1 51板的调试
2.2 成品测试
2.3 51板的部分应用
3. 问题及解决方案
3.1 焊接及调试问题
3.2 性能提高问题
Proteus的仿真较为方便与直观,因此先利用Proteus软件进行电路的仿真。但是Proteus由于库的种类限制,很多零件无法找到对应的元件与封装文件,故本文采用Altium Designer对原理图进行规范化绘制,从立创EDA中找到对应的元件库及封装,并对复杂电路进行规范化PCB封装与布线。鉴于利用NE555定时器和CD4017计数设计的调速流水灯比较基础,因此在此先用调速流水灯做基础练习,完成调速流水灯的电路设计、仿真及PCB封装。基于51的实物板,设计了具有流水灯模块、数码管模块、开关模块、蜂鸣器模块、芯片引脚外接模块等模块的电路板。
调速流水灯是利用NE555定时器、CD4017计数的集成电路芯片、发光二极管和若干电阻组成的简单电路。调速流水灯中主要工作部分有多谐振荡器时钟发生电路和十进制计数器电路。电容C1是电源滤波电容。
多谐振荡时钟发生器由NE555基集成电路、电阻R11/R12/R13和电容C2组成,通过C2两端电压的变化,对NE555的不同端口充电与放电,使其脚电平发生周期性变化,从而形成了振荡。调节R13的阻值可以控制振荡器的输出频率。
十进制计数器电路主要由CD4017计数芯片完成。NE555输出端3脚输出的时钟振荡信号加在CD4017计数芯片的CP时钟输入端14脚,使得Q0~Q9的10个输出端口依次产生高电平,使得D1~D10被依次点亮,形成流水灯效果,其中R1~R10均为限流电阻,调节R13的阻值可控制振荡器的输出频率,进而调节流水灯的流动速度。
(1)设置编译环境。包括模板选择、图纸选择与设置等,本文采用默认模板。
(2)在proteus库中找到需要的元件,没有的元件利用同类型元件替代,如下图。
( 3)放置元器件并布线。进行元器件的放置并设置元器件的参数,如下图。
( 4)进行仿真。结果发生错误,如下图所示。
( 5)测试NE555的输出信号,进行电路调整后再次仿真,如下图。
(6)LED灯亮的并不明显,更改限流电阻的阻值,观察流水灯是否正常工作,仿真结果如下图。
(7)调节可调变阻器的阻值,观察发现流水灯的流速发生改变,即仿真结果可以达到预期效果。
(1)在原理图绘制中,对未封装的元器件进行封装,以LED-RED为例,如下图:
(2)切换PCB,画好底框大小。将元器件在适当位置放好后,进行手动布线。因为同一面导线不能交叉,所以布线采取两面布线,如下图。
(3)切换3D视图观察效果。由于许多元件无法找到相应PCB封装,部分元件采用手动封装以及部分元件采用其他型号元件替代。且PCB布板过程中采用就近放置元件的方法,如下图。
鉴于上述调速流水灯的步骤较为详细,在此仅简要叙述利用Altium Designer软件进行原理图的绘制。为了更方便与准确地找到元件的封装,在此利用立创EDA进行元器件的搜索。在立创商城中,根据不同器件的型号找到对应的元件,并将各类元件拖入立创原理图绘制的画布中。而后将该原理图下载,在AD中新建工程与原理图和PCB图打开,利用软件生成原理图库。找到要画原理图的画布,在原理图库中找到对应元件并拖入画布中,并连线。绘制过程图如下图所示。
PCB板的绘制原理与原理图绘制类似。不同之处在于,将立创中各元件的PCB封装导出并导入AD后,软件并不会自动生成PCB的元件封装库,需要自行将每一个元件拖入自己创建的PCB元件库。在完成建立PCB库后,对原理图中的每一个元件与封装库中的封装对应起来。完成封装对应之后,将元器件下载到PCB板。
下载过程中可能会出现报错,可以根据报错的信息进一步修改原理图,报错常见问题主要是部分线路连接错误以及部分连线并没有连通。软件会提示具体出错的地方,并且在原理图上会以显著的红色标出。
完成对原理图的修改后,可以正常将元件下载到PCB画布中。这时要对各个元件进行重新布板与布线。放元件时,应先放电源电路,该电路为功率电路。再根据电源电路以最短路径放置其他元器件,在放置的过程中要注意元器件的对齐。而后是对元件的布线,一般电路板有顶层和底层两层,一层主要放竖线,一层主要放置横线,再通过过孔连接两层的线。完成元件的放置后,需要调整PCB画布的大小,利用Keep-Out Layer层画出电路板的边框。
放线过程中有一个难点,该电路板中,利用了插针将芯片的每个引脚都引出来了,但是布线时一般不能将线穿过芯片的引脚间隙。这时就需要对过孔的放置有较好的掌握。为了解决这个问题,在本次布线中,先将比较好确定的线画好,再利用软件自带的自动布线完成PCB板的修缮。PCB布板的软件效果图如下图。
51板的主要元件:STC单片机芯片、数码管、按键、三极管、晶振、LED串口芯片、存储芯片、异或芯片、电容、IC座、继电器、排阻、蜂鸣器、2.54插针等。在焊接完成后,对51板子的具体调试及解决方案如下:
(1)电源指示灯不亮。通过用万用表测试电源接口的电压及芯片上5V引脚的电压发现,电源接口是有电压的,但是该电压并没有传输给芯片。通过按照原理图,利用万用表对从电源接口处的电路不断测试电压发现,X16跳线帽的位置并不是放置于USB(3)处,而是连接1、2两个插针,如此,电路导通,并且开关按下时,电源指示灯亮。
(2)在通电后,无流水灯现象出现。按照原理图,在通电后晶振应该会发出方波实现流水灯的轮流点亮,但是实际情况中,只有电源指示灯亮,流水灯没有任何反应。通过对原理图上线路的分析发现,该部分需要将X2处的跳线帽连接后,才能令LED灯的阳极接通5V电压。
(3)代码无法烧录进芯片。一开始直接将电源连接线连接电脑,发现并没有端口出现,认为是没有装驱动的缘故,接着就开始给电脑安装CH340驱动。但是安装驱动的过程中一直显示的是预安装成功,也便意味着并没有安装成功。通过在网上查阅资料,发现需要将板子连接电脑后将板子的开关打开,按照网上方法做后,安装仍不成功。考虑到之前利用自己的电脑下载过很多代码,觉得不应该这次驱动突然失效了,便觉得问题出现在不显示端口上。端口检测不到除了电脑没有安装驱动,还有一种可能是数据格式不对,也就是连接线有问题。因此我尝试连接STM32和ARDUINO两款板子,发现均能检测出端口。这也证实我电脑的驱动是没有问题的。也正是通过对这两款板子的观察,我发现我们板子的电源插座出并不像数据传输的端口。突然意识到USB转TTL的连接线并不是这个样子的,加上USB转TTL的模块后,电脑能正常识别出端口了。
(4)烧录软件不能正常运行。在安装STC_ISP软件后,正常双击该软件并不能打开软件,而是显示“部件‘MSCOMCTL.OCX’或其附件之一不能正确注册:一个文件丢失或无效”。通过上网查找,发现可能有一些必要但是用处不大的文件丢失了或者软件没有检测到,只需要启用管理员模式打开就好。只不过后来二次烧录程序的时候发现,只要第一次用管理员模式打开,后面便可以直接双击正常打开该烧录软件。
(5)蜂鸣器和继电器不响。程序正常烧录后,按第一个按键可以实现流水灯和显示器的复位。其他四个按键的功能是分别是蜂鸣器和继电器的开和关。这与原理图上的X10和X12两个插针有关。查阅后发现,这两个插针所在的位置恰好是蜂鸣器和继电器所在的电路,并且板子上X12处标注了BUZZER,X10处标注了RELAY。故我将这两处插上跳线帽并通电,蜂鸣器和继电器均有响声。
焊接完成后,在上电测试成品前,使用万用表的短路档,红线接单片机焊接部位的第40脚,黑线接单片机焊接部位的第20脚,万用表未发音,表示电路并没有短路。未短路的情况下,上电检测电路板的焊接情况。将文件夹中的hex文件下载到芯片中,打开开关后,流水灯以一个灯轮流流水显示,八个八位数码管上从左到右依次显示“1~8”。“RET”键按下后,整个电路复位,流水灯、数码管重新开始显示,蜂鸣器和继电器均发出响声。“KEY1”键按下后,蜂鸣器开;“KEY2”键按下后,蜂鸣器关;“KEY3”键按下后,继电器开;“KEY4”键按下后,继电器关。51成品板正面照片如下:
下面我们将以这次焊接的51板为例,简单介绍开发板中各模块及功能。
按照模块的序号,我们依次进行介绍:
序号 |
模块 |
功能及应用 |
---|---|---|
1 |
电源模块 |
输入电源及控制51板电源的通断,进而控制芯片的工作 |
2 |
存储芯片 |
2Kbit的串行EEPROM存储芯片,可存储256个字节数据 |
3 |
数码管显示模块 |
结合三极管及异或芯片,是一种可以显示数字和其他信息的电子设备 |
4 |
串口芯片 |
将单片机与PC通过串口进行通讯 |
5 |
LED流水灯模块 |
使用8个LED小灯,可实现LED流水灯控制 |
6 |
STC12C5A60S2单片机接口座和IO管脚 |
固定单片机,并将单片机的IO口引出,方便用户进行二次开发 |
7 |
异或芯片 |
实现逻辑异或的功能 |
8 |
独立按键模块 |
使用5个按键,可以实现按键控制 |
9 |
蜂鸣器模块 |
使用无源蜂鸣器,可以实现报警提示等功能 |
10 |
继电器模块 |
可以利用低电压电路控制高电压电路的通断 |
在此次焊接及调试51板的过程中,主要遇见了以下的一些问题,并且基于这些问题提出了部分解决方案。
电阻的高度不齐。电阻在工作的时候会有发热的现象出现,所以为了更好的散热,往往会将电阻在焊接的过程中高于板子2mm左右焊接。前期由于电阻较少,所以一直是将镊子放在电阻与板子之间进行焊接,但是后期电阻太多,每焊接一个电阻都需要重新调整镊子的位置。故,后面我发现可以将纸条折叠起来,高度和电阻加间隙高度一致,这样将电阻在板子上放好之后,反过来将板子置于两个叠好的纸条之间,就能很好地统一电阻的高度。
焊剂的用量难以掌握。最好的焊接成果是焊接的引脚呈现圆锥型,这样既不会浪费焊剂又可以防止虚焊。虚焊是很难检测到的,因此大多数情况下,人们更倾向于将焊点焊成球状,这样极大地浪费了焊剂。为了防止这种焊剂的浪费,可以运用K型刀头,当焊剂过多时,可以用K刀头在引脚旁边划一下,引脚的焊接形状会自行变成圆锥形。
多引脚一起焊错。该问题在开关的焊接过程中比较常见。6P的引脚很多人都有理解错误或者元件质量问题,导致不得不重新取下开关重新焊接。但是用电烙铁一起融化6个引脚的焊剂不太现实,基于这种情况,通过查阅资料找到了一种可行的方法。先将元件的引脚剪下,再用电烙铁依次融化各引脚的焊剂,将过孔中的引脚全部取出。并依次融化各个过孔的焊剂,插入镊子的一个脚,镊子并不会沾锡,所以等焊剂冷却后,可以抽出镊子,这样过孔出就有新的孔。6个孔都处理好之后,便可以将开关重新插入进行焊接。
电路调试部分问题。首先板子焊接完成后,电源指示灯并不能正常工作,通过利用万用表检查硬件电路以及对原理图的对照,最后发现是电源出的跳线帽没有接好。重新检查各跳线帽后,接通电源,可以发现有三个小灯在做流水灯模式。烧录程序时,重新下载了CH340驱动以及修改串口传输的波特率,经过不断的尝试,终于实现了该51板的各项功能。
基于此次51板原理图观察及实物焊接,我从实物调试角度出发,认为有以下部分可以调整。
开关方面:本次焊接采用的是6P自锁开关,实物图及原理图对比如下图:
首先我们来看原理图,图中的1、4、5、6四个接口都没有用上,所以其实只有3、4端口之间的连接与断开。结合焊接过程中,6P的引脚存在正负及焊接技术问题,部分同学并不能使这个开关有效的工作。所以可以考虑将6P的开关换成简单的船型开关,在均可自锁的前提下,这样既大大减少了大量板子制作的成本,也降低了后期板子调试的难度。
串口下载方面:可以在原理图上加上USB转TTL下载模块。虽然用实物的下载模块比较快,但是有时焊接完成后调试需要不断使用该器件,造成效率较低。所以我个人认为可以在板子上直接加上USB转TTL模块,直接利用数据线进行程序的下载。
单片机的引脚引出插针部分:根据原理图可以看到,布局时将芯片两边的引脚都从同一边引出了,这样在PCB制版的过程中极易使得布线穿过芯片两个引脚之间的间隙。走线确实可以在考虑布线规则、实物尺寸及制作工艺的前提下穿过芯片引脚之间,但是作为新手,无法考虑太多实物的尺寸等。因此,个人认为可以将芯片引出的插针分开,分别在芯片的两边。
画板和焊接新手,如有错误欢迎指出!码字不易,转载请注明出处~