硬件设计流程

P1.1-硬件设计流程.webp

关键物料选型

MCU: STC15W104
干簧管: 磁簧开关(Reed Switch)也称之为干簧管,它是一个通过所施加的磁场操作的电开关。基本型式是将两片磁簧片密封在玻璃管内,两片虽重叠,但中间间隔有一小空隙。当外来磁场时将使两片磁簧片接触,进而导通。 一旦磁体被拉到远离开关,磁簧开关将返回到其原来的位置。
电源模块: "12A"电池 + HT7530稳压管

P2.1-干簧管.webp

P2.2-成本初步核算.webp

PCB设计软件(Altium Designer)

Altium Designer安装

理解原理图、PCB、原理图库、PCB库。
注意建立完成的工程的后缀对应的文件。
AD设计不是为了电路仿真,是为了导出印刷电路板,电路仿真可以考虑使用Multisim。

无线门磁探测器原理图设计以及绘制

理解visible grid和snap grid。
元件库的建立以及元件库内元件的设计,放置。(设计干簧管)
电磁控制电路和电源电路的讲解,干簧管控制输入电源的电平高低,电源电路采用HT7530将12V电压输出为3V电压。

P4.0-DoorSensor原理图.png

电源模块

使用23A电池,12V输入电压,应使用HT7530芯片将电压稳定在为3V。

P4.1-电源模块.png

门磁开关检测模块

关门状态下,干簧管闭合,GUAN处于低电平,三极管关断,KAI为高电平;开门状态下。干簧管开路,GUAN处于高电平,三极管通路KAI处于低电平。总结:关门时,GUAN下降沿;开门时,KAI下降沿。

P4.2-门磁开关检测模块.png

电池低压检测模块

用于检测电池健康度。当电池电压较低时,Q3不导通,Q2导通,Volt_LOW处于低电平;当电池电压较高时,Q3导通,Q2不导通,Volt_LOW处于高电平。总结:当电池电量不足时,Volt_LOW有下降沿。

P4.3-电池低压检测模块.png

射频模块

需要由射频硬件工程师来完成,或者使用现成解决方案。

P4.4-射频模块.png

MCU电路

由STC15W104的芯片手册可知INT0、INT1支持上升沿和下降沿中断,INT2、INT3、INT4只支持下降沿中断,以此来确定开门关门以及低压检测所在中断的引脚。并且应当注意单片机烧录引脚不应该加上拉或者下拉电源,可能会导致烧录失败。

P4.5-MCU电路.png

印刷电路板(PCB)绘制

P5.1-PCB设计基本流程.webp

基于Altium Designer的PCB绘制

概要:

  1. 建库。画PcbLib与SchLib(可利用立创商城
  2. 绘制原理图。将SchLib内的元件拿出放入到SchDoc,连接元件并检查原理图的正确性
  3. 绘制电路图。依据加工厂设计能力设置电路板的极限参数建立规则,将原理图关系导入到电路图中(Pcb与Sch以网表相关联),进行PCB布局布线和PCB规则检查。

建库

新建工程

  1. 文件-新的-项目,设置好项目名称和项目文件路径,AD将在对应路径下新建一个与项目名称相同的文件夹放置项目文件。
    P5.2-新建工程(1).png
  2. 在文件夹下新建lib、sch、pcb三个空文件夹。
  3. 右键左侧projects栏中对应工程,分别建立SchLib、PcbLib、SchDoc、PcbDoc;将SchLib、PcbLib命名保存到工程目录的lib文件夹内,将SchDoc、PcbDoc命名分别保存到sch与pcb文件夹内。
    P5.3-新建工程(2).png

绘制PcbLib

绘制PcbLib有四个步骤:元件起名、放置引脚、放置丝印、放置3D外框。
打开PCB Library选项卡,进入PcbLib绘制阶段。

  1. 元件起名:在封装(FootPrints)栏中右键选择New Blank Footprint,双击器件以编辑。
    打开芯片的数据手册,记录芯片引脚之间的最远与最近距离、芯片封装体的长宽高等芯片参数。
    tips:画PcbLib类似于画PcbDoc,有层的定义,分为顶层(Top Layer)、底层(Bottom Layer)、机械层(Mechanical Layer)、丝印层(Top Overlay)、通孔层(Multi-Layer)。在绘制框内按G弹出栅格设置。单位切换:按Q在公制(mm)和英制(mil)之间切换,1mil = 0.0254mm。顶层:元器件的引脚(PAD)。丝印层:外框。机械层:3D外形。

  2. 顶层(top layer)放置引脚: 点击place-pad取出焊盘,按tab编辑引脚(或焊盘)属性,设置引脚所在层级为顶层(top layer),Pad Stack中设置焊盘的形状以及长宽(焊盘应当有足够的机械强度)。利用捕获栅格距离的设置,根据具体参数放置各个焊盘。按顺序放置完所有焊盘之后,编辑-设置参考点-中心点。

  3. 丝印层(top overlay)放置芯片外框丝印:用直线画出芯片外框,用豁口标记1引脚位置。

  4. 机械层(mechanical layer)设置3D外形:放置(place) – 3D元件体,右方选项卡中identifier标明器件名称,Board side指的是板面的侧,如果选择顶层(top),则3D元件体垂直纸面向外,选择底层(Bottom)则反之。3D Model Type有四种类型,其中Extruded(柱体)、Cylinder(圆柱体)和Sphere(球体)用于建立一些简单的3D模型,Generic(通用)用于一些形式复杂的器件的导入,一般是AutoCAD中的step文件。

  5. 通孔层(Multi-Layer):将所有层连接在一起,via就是处于这个层。

绘制SchLib

画元器件外观以及各个引脚,复制好引脚描述,引脚的电气特性Electrical Type全部设置为Passive,因为不在AD并非电路仿真工具,AD设计只是为了导出电路板。

立创商城移植PcbLib与SchLib,节约建库时间

利用立创商城建立一些较复杂的SchLib和PcbLib,然后添加到工程中。

立创商城和立创EDA如何将元件库导入Altium Designer为己所用

极简PCB绘制,立创商城白嫖原理图库和PCB库

操作步骤文字描述:

  1. 在立创商城中搜索所需元器件,选定元器件之后点击数据手册-立即使用。
  2. 然后文件-导出Altium Designer,将所选元件的SchDoc与PcbDoc下载。
  3. 使用AD打开两个文件,对Sch文件使用Design-Make Schematic Library,生成SchLib,类似操作生成PcbLib。
  4. 进入生成的库中,将其中的元器件从左边菜单栏中复制到项目库文件的菜单栏中,至此,移植完毕。

原理图绘制

绘制步骤概述

原理图绘制的四个步骤:

  1. 添加元器件到原理图。
  2. 连接元器件,三个步骤:连线、网名、给网名加上示意标识。
  3. 元器件编号。
  4. 检查原理图。

tips:器件按空格旋转,按X/Y镜像翻转。

添加元器件

在右侧菜单的“component”选项卡中,选择元器件所在库,将之拖出到SchDoc。

连接元器件

按照信号传输方向以及数据手册要求放置元器件。利用线和网名连接各个元器件引脚。
对于两条差分线,应该分别定义网名为“变量名_P”与“变量名_N”并且在两条差分线上放上差分对标示,如下图所示。这样在pcb自动生成的时候,两条差分线将会等长,使高速信号在传输过程中不发生偏差。
在芯片悬空的位置放置“NO ERC”标示,条理清晰,预防报错。

P5.4-差分线.png

元器件编号

对于有特定名称的元器件,选择直接编辑元器件的Designator。
对于没有特定名称的元器件,形式为 “U?”、“J?”、“C?”… …则使用自动标号,在顶部菜单栏的工具选项卡中选择“标注—原理图标注”,点击“更新更改列表”弹出更改提示框,再点击“接受更改”,验证并执行变更,完成元器件编号。

检查原理图

右键工程编译工程,看原理图是否出错,若没有错误则不会弹出提示框。

网表的概念(FPGA相关)

P5.5-网表传递的消息.png

所谓网表,就是包含了原理图文件中所有连接关系的文字描述文件。其中器件和网络最为重要,不可或缺。
在AD中依次点击“设计(design)—工程网络列表(netlist for project)—protel”,右边目录出现“Generated”选项卡,内部包含一个.NET文件。

网表中的每个单元(元器件)信息用方括号表示,在网表的最前面。
P5.6-网表中的元器件信息.png

对于人工定义的网络,网络的传递用小括号表示,第一行为网络的名称(人工定义的网名),后面的引脚标号表示了网络中连接的引脚。
P5.7-网表中人工定义的网络.png

对于未人工定义的网络,网络的传递依旧用小括号来表示,与人工定义的网络不同之处:网络名称为自动生成的网名,如图中NETC5_1为自动生成的网名,表示C5的第一个引脚。
P5.8-网表中未人工定义的网络.png

根据网表的内容,我们可以看出引脚的名字(name)并不重要,重要的是引脚的标识符(designator),电路图只认封装和联系关系。
只需拿出封装库与网表文件,就可以在Cadence内设计PCB板。网表文件中包含着各器件的连接关系,不同软件之间的原理图和PCB之间的电路信息传递都通过网表来实现。

PCB绘制

P5.9-PCB绘制流程.png

导入原理图到PCB

导入原理图到PCB时,若验证变更出错,则尝试直接执行变更。因为验证变更是把原理图生成网表进行一次检查,部分需要二次验证的逻辑无法验证。例如差分线需要验证网名对,一次验证网名必然出错,但是执行变更相当于两次验证网名,差分线得以验证。

建立规则

工厂设计极限设置

点击“设计—规则”。修改电气指标(Electrical)中线与线的间距(Clearance);线路指标(Routing)中线宽(Width)、过孔参数(RoutingVias)、差分线路径参数(Differential Pairs Routing);覆铜规则(Plane)也可能用上。

叠层设计Layer Stack Manager(用于设计多层板)

设计(Design)–层叠管理器(Layer Stack Manager)

双层PCB板结构(从上到下):

1
2
3
4
5
6
7
Top Overlay     (顶层丝印层)--
Top Solder (顶层阻焊层)--
Top Layer (顶层信号层)--
Dielectric 1 (电介质层1)--
Bottom Layer (底层信号层)--
Bottom Solder (底层阻焊层)--
Bottom Overlay (底层丝印层)

tips:电路板一般来讲只有偶数层,因为标准板型为双层板,偶数层的电路板能由多块双层电路板中间增加电介质层堆叠而成。而奇数层往往需要定制电路板,成本较高。

叠层时注意层级的类型:
Internal Plane为内电层,多层板用于铺VCC铜层和GND地层,不能走信号,生产过程中出光绘胶片时出负胶片。
Signal layer为信号层,用于安装元器件及走线,生产过程中出光绘胶片时出正胶片,在此层出现的线与铜皮都是实际出的板子上的线路与铜皮。

PCB布局

在PCB布局之前,视图配置(view configuration)是必要的,最小化布局过程中受到的干扰,比如隐藏一些对布局没有帮助的Layer,修改Layer的颜色。
按快捷键L弹出view configuration,或者点击界面右下方“Panels”按钮找到view configuration。如下图,在布局布线过程中,信号层(Top/Bottom Layer)和丝印层(Overlay)最为重要,其他的都可以隐藏。
P5.10-视图配置(view configuration).png

设置完view configuration之后,将元器件按照信号传输方向有逻辑地排列在线路板上,使得元器件之间引线短,同时打开PCB和原理图(“Window—垂直平铺”),按照连接关系布局,PCB板设计90%在于布局,10%在于布线,布局得当,布线就容易。

芯片的去耦电容应该靠近芯片的供电引脚,并且容值越小的电容应该越近。

PCB布线和铺铜

PCB布线先布模拟信号线和高速信号线,因为这两者容易受干扰,高速信号线还容易干扰别的电路。在布局时就该考虑到,要让这两种线尽量短。
如果PCB无法布线,则需要删除并回到原理图重新修改。

在PCB中,我们常常选用一整片铜片来连接VCC网络和GND网络,可以起到降低阻抗,减少尖峰信号的作用,因此就有了铺铜操作。
对于电路板铺铜操作,首先需要画出铺铜的区域,右键区域铺铜,如下图。
P5.11-PCB铺铜.png

选定好铺铜之后,再选择铜皮所连接的网络,如下图

P5.12-设置铜皮所对应的网络.png

铺完之后需要查看网络中的点是否都连接在一起,如果有元器件没有连接,则需要重新调整铺铜区域。铺铜往往用于VCC网络和GND网络的连接。

快捷键 “数字小键盘*” 能够在电路板布线时切换层级,过孔(via)是联系Top Layer和Bottom Layer的重要PCB元件。过孔的快速放置方法:交互式布线以线路板Top Layer作为起点,然后按快捷键"*"切换层级,将终点放置在Bottom Layer,则会自动生成过孔(via)。前面的布局必须要得当,不然会被迫设置大量via,每个via中都会有寄生电容和电感,很可能影响电路的正常运行。

规则检查

工具(tool)–设计规则检查(Design Rule Check)–运行DRC(Run Design Rule Check)

出现错误,查看错误内容,此时的问题主要是阻焊(solder)和丝印(silk)的问题了,如下图,打开规则中的manufacturing选项,修改其中有关于silk和solder的设置。

P5.13-修改阻焊(solder)和丝印(sillk)设置.png

如下图,阻焊层裂口(Solder Mask Sliver)表示对象之间的间距最小值,与加工厂工艺水平有关,一般设置为0mm也不会出问题。

P5.14-设置阻焊层裂口(Solder Mask Sliver).png

如下图,焊盘与丝印层的之间的间距(Silk To Mask Clearance)不能过小也不能大,过小会导致丝印在焊盘上,焊盘是光滑的,无法丝印;过大会导致丝印层与元器件的对应关系混乱。一般设置为0.1mm。

P5.15-设置焊盘与丝印层的之间的间距(Silk To Mask Clearance).png

如下图,字符位号与位号之间,位号与芯片外框之间的距离,定义为0.1mm。

P5.16-设置丝印层文字到其他丝印层对象间距.png

板框大小设定(对于有公版外壳的产品需要放在第一步进行)

对于有外壳的产品,其板框大小在外壳确定之后就已经确定了,因此可放在第一步。
设置板框有两种方法:

  1. 在PCB界面按快捷键“1”,进入机械视图,依次点击“设计(Design)–重新定义板形状(Redefine Board Shape)”,框选出板框的范围。
  2. 在Keep-Out Layer(板框层)中画一个矩形框,在view configuration里设置只显示Keep-Out Layer,将之前画的矩形框选中,然后依次点击“设计(Design)–板子形状(Board Shape)–从选择对象中定义(Define from selected objects)”。

较为推荐第二种方法。

BOM文件整理

利用AD生成BOM表

BOM(bill of materials,材料清单)制作
BOM表直接从原理图中导出,因此需要将原理图中的元件名称后加上必要的标识,方便后续采购。
“报告(Reports)-- bill of materials”打开BOM表生成界面,生成BOM表。
调整BOM表格式内容,元器件中文名称、描述(包括value和footprint)、标志(丝印)和数量。贴片和插件分开。

利用脚本生成BOM清单(推荐)

视频教程:AD21生成交互式BOM文件

开源脚本发布地址:Releases · lianlian33/InteractiveHtmlBomForAD (github.com)
下载脚本文件,到设置的“scripting system”中选择脚本目录中的.PrjScr文件导入,点击脚本文件夹中的Initialize.bat进行初始化操作,至此,脚本安装完成。
在AD中打开.PcbDoc文件,上方菜单栏中选择文件选项卡中的运行脚本选项,选择mainWin.js中的startWin运行。如右图中设置,点击“GenerateBom”生成BOMhtml文件。

P5.17-脚本生成BOM清单.png

打板文件的输出

不涉及机密的电路板,可以直接将.PcbDoc发给厂商进行生产。
涉及到机密的电路板,一般先转换成Gerber文件再发给厂商,实际上厂商要进行电路板制造的话,也是需要先将PCB文件转换为Gerber文件再进行生产。

PCB加工文件—Gerber文件的导出