目录
一、立创EDA
1.1 嘉立创简介
本人是以软件开发为主的,但是作为一个嵌入式开发人员,简单的PCB设计我认为还是要会的,不仅可以更容易理解原理图,还能对硬件元器件有更加深入的了解,在实际项目中有助于更高效地排查软硬件故障。
在立创EDA出来之前,很多人都是用Altium Designer作为PCB设计软件的,简称AD软件。AD软件功能很强大,适合专业设计,但是对新手不是很友好,功能、细节太繁杂了,对电脑配置要求也较高;所以对于我们这种简单的小项目,还是用立创EDA比较合适。
立创EDA可以直接使用浏览器页面进行PCB设计,具体地址在这:嘉立创EDA(标准版) - 免费、易用、强大的在线电路设计软件
需要注册账号,按流程走就行,比较简单。其实嘉立创不仅有PCB设计软件,更重要的是他还有一个生态,商城里有常见的电子元器件,每个元器件都有封装文件,用户在设计的时候直接输入型号或者编号就可以直接添加到自己的原理图了,非常方便;很多淘宝的热销款模块封装也都有,比如WiFi、蓝牙和LoRa模块等等。如果用AD软件的话,这些封装你可能得自己积累或者网上搜索,比较碎片化,现在有嘉立创提供了这么一个平台,卖家基本上都会把自己模块的封装上传上去,方便客户集成。如下图,只需要输入相关型号就可以直接搜索添加了。
设计完成后,可以直接在嘉立创平台下单制板,有条件的还可以SMT贴片,常用元器件也可以一站式采购;甚至有外壳需求还能进行3D打印、机械加工或者钣金加工等等,生态已经非常齐全了。
1.2 常用功能
立创EDA提供了丰富的文档教程,介绍 | 嘉立创EDA标准版用户指南,以前好像还有直播答疑,就是你在使用过程中有问题直接去直播间提问,立马给你回复,现在不懂哪儿去了,没找到。像这些文档教程,大概浏览下就好了,应该把它当成工具书类的作用,类比于新华字典,需要的时候去查阅就行了。对于个人来讲,更重要的还是实操,那么我们先大概讲一下软件的基本使用方法。
布局如上图所示,有标注,菜单栏里有下来列表,可以点点看,用比较多的就是下图的文件--新建栏目,按顺序我们是新建工程,系统会顺带新建一个原理图,原理图自己可以重命名一下,便于区分;按照流程,我们要绘制好原理图以及原理图里所有元器件的封装后才能转到PCB绘制,所谓硬件设计,核心来讲就是绘制这两个文件。
1.3 原理图符号
在绘制原理图过程中,每个元器件都有一个符号,电容、电阻、MCU、放大器等等,都要有符号,所谓符号其实就是一个模块单元,这个模块有引脚序号,其顺序与元器件厂家提供的技术资料一一对应,如果没有现成的,那就得自己对照手册慢慢绘制了。样式如下图所示。
1.4 网络标签
原理图的核心是设计思路,一旦有了设计思路,剩下的工作其实就是连连看了,但是一张原理图上有非常多的元器件,元器件之间的引脚连接必然会产生交叉,如果全部用实线去连接的话,那原理图可以能就跟天书一般,自己都看不懂。所以,为了标识引脚之间的连接,会用网络标签来对应,就好比有线连接升级成了无线连接,就没那么多杂乱无章的线条了。如下图所示,红色箭头就是添加网络标签的按钮,把它放在元器件引脚上就行,然后修改名称,只要原理图上两个标签名称一致,就表示这两个引脚是相连的,例如下图两个黑色箭头的SPI_MISO网络标签,表示MCU的PA03引脚与LoRa模块的13引脚相连。
网络标签中的电源是比较特殊的,一般用VCC表示,符号是一个T字型,标签内容可以根据电压修改,例如3.3V就用3V3,5.0V就用5V之类的;还有个GND是最基本的了,就是图中的三角形了,比较严谨的设计数字地和模拟地是要区分的,我们这里暂时没分那么细致。
1.5 导线连接
最常用的就是下图所示的导线功能了,绿色线就是绘制后的导线,短距离、转个弯就能到的一般都直接用导线连接,没必要用网络标签了,这样每一个小单元看起来比较规整、紧凑。
二、MCU解读
有了第一篇文章的设计思路和上一节的基础知识,就可以进行烟感原理图设计了;这里再复习一下,主要包含下图这些模块。
其中,MCU是最重要的,其它模块都是死板板的,该怎么连怎么连,无非做些微调;但是MCU不一样,每个引脚的功能定义都有区别,硬件工程师和软件工程师都要看数据手册进行协调,比如串口的引脚是有定义的,不是随便一个都能拿来当TX的,还有PWM、ADC这些都是特定的,不能随便连。数据手册可以这里下载:CW32L010F8P6_CW(芯源)_CW32L010F8P6中文资料_PDF手册_价格-立创商城
对于硬件设计来讲,要先看下引脚分布,如下图,但是这个只能看个大概,还是不知道每个引脚的具体功能区分,要接着往下翻。
主要看下图框起来的三列内容,这里的每个引脚有什么功能都很清晰了。接下来,硬件工程师就要拿着这个表格去和软件工程师协商了,比如蜂鸣器的PWM用哪个脚合适,串口用哪个(这个芯片有两个串口)及其引脚;这里要提一句的是,这个主芯片的映射复用很灵活,比如一个串口2可以复用3对引脚。
那么,对于软件工程师来讲,也不是随便定义的,由于这是一款比较新的MCU,第一次使用,很多东西还不熟络,所以最简单的方法就是去看官方例程,尽量按照例程的配置来,降低出错概率。比如串口,直接打开UART里面的例程,你会发现,例程都是用串口2,对应引脚是PB05和PB06,那就按照这个配置来就行了。
以此类推,还有跟LoRa通讯的SPI接口参考SPI里的例程;驱动蜂鸣器的PWM引脚可以参考ATIM高级定时器里的pwm相关例程;测量烟雾浓度的ADC可以参考ADC里的序列转换例程;至于LED和按键那就是GPIO了。对于软件开发人员来讲,这些例程是要大概都过一遍的,这样对官方的库有个整体认识,遇到问题好排查。
三、原理图设计
3.1 原理图概述
画原理图不一定要完完全全想好了再动手,可以边想边画、边画边改,循序渐进,这样效率比较高,就比如引脚分配,刚开始没想到位,只是满足要求的选了一个,后来绘制PCB时候发现线不好绕,这时候你再来修改到一个合适的引脚都是来得及的。
3.2 MCU引脚分配
这个MCU的符号和封装厂家已经上传到嘉立创平台了,我们只要在原理图上 右击选择“放置元件”,在弹出的对话框里输入CW32L010即可搜索到对应符号,如下图所示,选择第一个即可。
放置好后就可以对引脚进行分配了,下图是分配结果,实际绘制过程中是一个一个模块慢慢补充起来的,并不是一蹴而就。可以看到,所有引脚都用完了,也算是物尽其用了,甚至RST引脚都拿来作为防拆设计的输入检测引脚了,由于引脚刚好够用,所以把32K晶振也带上了,如果不够用的话,就把PB00和PB01贡献出来,不要用LSE就是了,因为烟感本身不需要下行控制,所以对时间精度要求不高,可以不用LSE。
下图的C1电容470nF需要焊接,不然会不稳定,手册要求是100~470nF。
3.3 电源和调试口
电源和调试串口在这个项目里算是比较简单的,用2.54排针引出对接即可,这里有一个防反接的电路,采用AO3401 MOS管,技术手册可以这里查看:AO3401_TWGMC(台湾迪嘉)_AO3401中文资料_PDF手册_价格-立创商城
从第一幅截图可以看出,MOS管的导通条件是Vgs小于-1.5V左右,即在电压范围内,Q3的1和2脚之间的电压,压差绝对值越高,内阻就越小,导通性能就越好。那么,回到这个电路本身,它是怎么做到防反接的呢?
当电池正常接入的时候,即BAT的2脚是3.3V,1脚是0V,由于Q3内部有个二极管,电流可以通过,只是有一定的压降损耗,假设0.7V;不过没关系,随后Q3的1脚与2脚之间的电压就是-2.6V左右,满足导通条件,那么Q3的2脚和3脚之间就直连导通了,类似于继电器,此时Q3的二极管被短路了,压降也就不存在了,Vgs=-3.3V,产生了自锁,完成正接。
当电池反接的时候,BAT的2脚是0V,1脚是3.3V,Q3内部的二极管不能导通,相当于Q3的1脚和2脚之间开路了,自然也就没什么反应了;Q3不导通,完成反接保护。
所以,这里面的关键在于那个二极管,后面还会用AO3401做开关电路,那是比较常规的用法。
剩下的下载口和调试口就没什么好说的了,直连即可。下载口的3V3串接了R1的0R电阻,去掉直连也行,原本是担心电源电压和下载器电压不一致会产生干扰或损坏,不过从测试结果来看影响不大。串口也是直连,这里为了方便NB-IOT调试,把3.3V电源也引出来了。
3.4 SPI接口(LoRa)
SPI接口用于跟LoRa模块通讯,这里也要跟软件工程师协调的,因为LoRa除了SPI和复位脚5根线以外,还有很多DIO口,这些DIO口要不要,需要什么特性的引脚都需要商量好的。那么,在这里,我们都是采用寄存器查询的方式来获取LoRa的状态,所以这些DIO口都不需要用了,这样也可以节省宝贵的MCU引脚。
这里面有个点还是要注意下的,我们LoRa型号是LLCC68,它的操作模式跟SX1278不太一样了,是采用命令设置的方式,对于写命令是需要时间的,为了反馈执行状态,LLCC68的DIO4引脚会输出忙信号,MCU可以通过检测这个信号来判断是否写入完成。那为什么这里又不需要这个引脚了呢?因为我为了方便代码移植,这一部分我用延时等待替换了,就不需要去检测硬件引脚了;当然,LoRa软件的驱动接口还是保留这个检测函数的,需要你自己去初始化就是了。
3.5 电源开关
根据3.3小节的说明,大概明白了AO3401 MOS管的用途了,下图是一个很常规的开关电路,其中网络3V3是主电源,SW_SMOKE连接到MCU的IO口,通过IO口控制VCC_SMOKE端的电源输出,高电平关闭电源输出,低电平打开电源输出,默认状态下由R6上拉保持关闭状态。
基本原理就是看Vgs的电压,SW_SMOKE没有状态时,上拉电阻R6使得Vg的电位是3.3V,与Vs一致,没有压差,电源关闭,VCC_SMOKE输出等于0V;当SW_SMOKE引脚设置为低电平后,Vg电位是0V,Vs电位是3.3V,那么Vgs=-3.3V,满足导通条件,VCC_SMOKE输出等于3.3V。这样就可以通过MCU的IO口控制这个电源开关了。
那又是为什么要配置这么一个开关呢?当然是低功耗的原因,很多元器件并没有低功耗的水平,静态电流都是mA级别的,例如下图的LM358S。当然,低功耗放大器也是有的,只是从使用精度和成本上考虑,没必要。再者,是由于我们这个烟感系统较为简单,如果元器件多一些,即使全部采用低功耗型号,合起来也是一个可观的损耗。所以为了解决这个问题,我们把可以间隔运行的系统模块化出来,然后再用电源控制的方法进行操作运行,有需要的时候再通电,没用时候就关闭,这样这些模块的整体静态功耗就接近于0了。
3.6 烟雾检测
烟雾检测的基本原理在第一篇的时候已经讲过了,核心就是在完全黑暗的迷宫内,烟雾把红外光漫反射到接收管上,接收管本质就是一个光敏电阻,随着特定波长(940nm)光线变强,电阻会变小;我们只要在电路上串接一个固定值的检测电阻R4,那么这个检测电阻的电压就会产生变化,这个变化信号比较微弱,因为烟雾的漫反射效果跟直射差太多了,所以需要一个放大器,把这个信号放大,便于MCU的ADC引脚检测。由于我们这个对放大信号要求不高,选用了便宜简单的LM358系列的放大器,它不是轨到轨的,不过影响不大。具体电路如下:
其中VCC_SMOKE就是3.5小节中的控制电源,也就是要检测的时候才会打开这个电源,不然接收管会一直消耗电流,即使非常小。里面的几个电阻阻值是通过理论计算和实践结合产生的,如:R3理论100R也是可以的,我购买的demo板是10R的,后来测试发现10R太小了,消耗的电流过大,同时发射管也比较容易损坏,100R的话灵敏度比较欠缺一些,综合来看,50R比较合适。
红外接收管的静态电阻都是MΩ级别的,接收到红外光后会来到几百KΩ级别,所以R4这个电阻要选用几十KΩ的才行,理论上20~100K都是可以的,可以自己再去尝试。
放大器核心是放大倍数的计算,在这里放大倍数=R9/R8+1,也就是21倍了;LM358S有两路放大线路,我们用一个就足够了。其它具体的参数可以看手册内容。
3.7 蜂鸣器
下图是比较常用的蜂鸣器电路,蜂鸣器采用无源蜂鸣器,需要用交流电驱动,我们知道VCC_SMOKE是3.3V左右的电压,如果直接给这种蜂鸣器供电的话声音可能比蜜蜂还小。所以就要用到三脚电感的升压功能了,它本质就是一个升压变压器,L1的1脚和2脚线圈比较少,属于输入线圈,2脚和3脚线圈比较多,属于输出线圈;再结合PWM信号的开关作用,就产生了简单的交流电,通过电感升压后,蜂鸣器两端的电压可以达到20~30V左右。
电感也是需要测试选择的,下图是最终选用的参数,核心就是声音要响亮。另外,从电路可以看出,蜂鸣器要响需要两个条件,一个是控制电源输出,一个是PWM信号,这个PWM信号周期是要跟蜂鸣器的频率匹配的,这个在软件部分会进行详解。
3.8 按键和指示灯
这部分原理图如下,MCU的IO输出电流可以25mA左右,足够驱动LED灯了,所以指示灯就直接连接IO口了。按键部分需要注意下,测试按键和防拆按键其实是两个概念,代入到烟感的使用场景,测试按键是常规的中断触发+检测,绝大部分时间是松开的;而防拆按键只有检测,不能用中断,因为防拆需要外壳结构做配合,要么常开、要么常闭,安装后正常是常闭,如果配置中断会一直损耗电流,所以只能用常规检测,唤醒来检测一次,休眠时IO口配置成模拟输入即可,这个也会在软件部分进行详解。
由于这个外壳是现成的,很难做防拆结构,所以这里的防拆功能就是作为一个附加功能了,只能用手动去测试。这里要注意的是,防拆按键是复用了NRST复位引脚,即MCU的4脚,刚开始没注意,这个复位脚内部有上拉电阻(跟R2类似),如果防拆按钮按住的话会与GND导通,产生静态电流,约50uA,这样就没法低功耗运行了;所以如果真要用这个防拆功能的话,那么测试按键和防拆按键引脚对换一下就没问题了,软件方面也稍微修改下。
3.9 小结
至此,原理图部分基本讲解完了,接下来就是PCB设计了。在绘制原理图过程中,大部分元器件的符号、封装是有的,特殊的、不通用的基本得自己画,比如三脚电感、烟雾迷宫等。画这些符号封装的核心还是要把引脚跟实体元器件对应清楚来,其它像形状什么的,其实就是利用右上角的作图工具画画就是了。
四、PCB设计
4.1 原理转PCB
原理图设计好后先点击下图左边部分相关按钮进行校验,如果哪里没画好会有提示,进行相应修改即可。
都正确无误后,点击右边的原理图转PCB按钮,系统就会新建并跳转到PCB页面,杂乱无章就是了,看下图。
4.2 外观轮廓
绘制PCB,首先要确认的是外观图纸,就是你这个PCB最终的外形,这个是根据烟感外壳决定的,这个比较简单了,外壳整体呈圆形,外加4个固定柱,固定柱与后盖通过螺丝旋紧,所以我们的PCB套在4个固定柱上就行了,也就是在PCB板挖4个大小合适的孔。
另外还有两个点需要注意的:一是电池怎么放?二是缺口标记要注意避让。从结果来看是比较好理解的,就是挖一个电池口和导向缺口;如果从无到有想象那就要看自己的水平了,兴许还能设计的更好。走到这一步应该也就能明白,为什么结构、硬件和软件三者需要协同了,只要有一方没做好,那么这个任务就没法完成了。
在这里,着重讲一下如何画这个外观,EDA内部只能画一些简单的图形,操作起来不灵活,比较好的方法是CAD先画好,并存为DXF格式文件,最后直接导入即可。如果没有CAD软件那就只能下载一个了,在CAD里画这个轮廓就很简单了,下面是轮廓截图,我用SolidWorks画的,道理是一样的,然后另存为DXF备用。
在EDA软件里导入刚才的DXF文件,新建--导入--DXF,在弹出的对话框中选择刚才的DXF文件,结果如下第二图所示,图层选择边框层;红色部分就是轮廓图了,不过它把虚线也算进去了,我们导入后记得删除就行了。
关于定位孔,首先要查看淘宝上详情页里的尺寸,是43.13*43.13mm,我们就算43.2mm吧,这样以中心点算一半就是21.6mm了。
定位孔使用通孔功能,直径4mm,4个孔的中心坐标都和21.6这个数值有关系,比如左上角的是(-21.6,21.6)。
4.3 布局
布局是PCB设计中最重要的事了,只有布局好了才能连线;如果布局不够合理,连线连到后面发现无解,那就得推倒重来了,很麻烦。所以布局这块要慎之又慎。
正常来讲,大物件先摆摆看,最起码的空间要放的进才行。这个项目,大物件其实就是烟雾迷宫、蜂鸣器、LoRa模块和三脚电感。根据外壳形状,烟雾迷宫肯定是要放在中间位置的,这个可以先摆好,但是烟雾迷宫外形不太规则,通过实物测试是可以塞进去的,那么我们可以根据外壳的凸起圆来限定烟雾迷宫的位置,这个凸起圆的半径是22mm,只要把迷宫放在这个圆内就可以了,如下图所示。
接着第二大物件是蜂鸣器,也是丢进去先摆摆看,摆来摆去也就下图位置放得进去了,如果这里也放不进去那只能换小一点的蜂鸣器了。
其次是LoRa和三脚电感,这就比较简单了,但也要遵循一些原则,比如蜂鸣器和三脚电感是配套的,那他们就尽量靠近,而LoRa与MCU的引脚连接比较多,要靠近MCU,虽然这里还没放MCU,但是通过上图基本上可以确认,MCU只能放在左侧了;同时LoRa也算大物件,最好都放在右侧,如果放在左侧的话其它小的元器件空间就被打散了,会导致不好连线,综合起来那就是放在右侧上方靠近中间的位置了。具体如下图所示:
最后剩一些芯片类和插件的元器件,都算比较简单的了。测试按键需要放在指定位置,这样才能外露在USB口,防拆按键放在背部,方便测试;电池插件放在左下角,靠近电池;MCU靠近LoRa,LM358S放大器放在红外接收管和MCU之间比较合适。这样,基本布局就有了,剩下的电容、电阻就围绕这些元器件展开就好了。
4.4 连线
如果布局合理,那么连线就轻松很多了,这里也有一些原则要遵守的。首先信号线不要穿来穿去的,特别是有差分要求的,例如USB的数据线,尽量短、要等长;对于这个项目,信号线主要是LoRa的SPI和NB串口线了,其次是蜂鸣器的PWM和烟雾检测的ADC引脚,这些线可以先连接。
很多时候两点之间没法直连的,因为已经有线拦在中间了,这时候就需要过孔的功能了,就是打个孔,从另一面跨过去,再打个孔转回来,这在连线过程中是要经常用到的。
GND和电源可以稍微放后,剩下的其实真就是连连看了,不过尽量保持美观、横平竖直,转角用45°或135°;连完后效果如下图所示。由于这里没什么大功率的器件,所以电源线也没做什么特殊处理,如果有长时间大电流流过,那么就要加大线宽了。
4.5 敷铜
最后一个步骤是敷铜,按钮如下图所示。由于导线都是有电阻的,虽然都是GND点,但不同GND点的电位是有略微却别的,敷铜可以降低板子各GND点之间的电阻,使得GND之间电平差 接近于0,提高系统信号的稳定性;同时,整个板子也更加美观,敷铜后效果如下第二图所示。
4.6 2D/3D视图检验
画完后,立创EDA可以展示其2D平面图和3D模型,按钮如下图所示。
下图是2D展示图:
下图是3D展示图,这需要有3D模型文件才会展示,系统自带的封装一般都有,像烟雾迷宫、蜂鸣器和三脚电感都是自己画的封装,没有3D模型,它就不会展示了。
检查无误后,PCB的设计任务基本就完成了,后续就是生产制造了。
4.7 PCB打样/采购
文章开始我们就说了,嘉立创更像是一个生态,设计完后直接就可以在平台上生产制造了,只需要点点按钮就行了,非常方便,而且价格也很实惠,对于学生党很友好。要是在以前,打个样什么的没个几百块搞不定的。
下单参数基本默认就行了,数量有个5片也足够了,总计也就20块。
下完单后就可以根据采购单 进行元器件购买了,这里有部分是淘宝买的,有部分是嘉立创商场买的,具体都在表格里,每一个元器件都有采购链接和型号选择图片。单纯的LoRa烟感成本差不多40元左右。
五、焊接
PCB和元器件回来后就可以进行焊接了,在这里我还是比较建议用低温锡膏进行焊接,比较快,引脚比较密集的芯片也很好焊接。类似下图所示,淘宝很多,最好是带针头的,使用方法也很简单,就是在要焊接的每一个焊点都涂一些,不用太多,元器件放上去,然后热风枪一个个对着吹就行了,具体过程和效果可以看看视频。138℃锡膏对应220℃左右的热风枪基本没什么问题。
焊接也是有顺序的,并不是一股脑的全都上,而且并不是所有的都用锡膏,像插件该用焊锡焊接还是得用的。在这里,我们先把电阻、电容和芯片类的器件用锡膏焊接;然后2.54排针、测试按键和电池接口;接下来是蜂鸣器和三脚电感;烟雾迷宫体积比较大要放最后,免得对其它焊接过程产生干扰。
插件焊接有些点是要注意的,比如蜂鸣器没有正负之分,不认方向的。三脚电感要用万用表测量电阻,首先可以确认的是最长的引脚是2脚,然后与2脚电阻较小的是1脚,电阻较大的是3脚,其实本质上三脚电感也是认方向的,只要2脚确定了,它也就只有一个方向能插进去了。
烟雾迷宫要先把收发红外管先放进底座,如下图所示,其中发射管有方向,长脚是正极,对应PCB的发射管TX+标识;接收管无方向,但是结构上它只能一个方向放进去,也算是认方向了。组装好后就可以跟PCB进行组合了,孔对孔插入即可;最后把烟雾迷宫盖子盖上即可。
最后是弹簧天线,直接焊接在LoRa的天线引脚上即可,由于空间有限,需要稍微折弯,135°左右,不要折太死,影响信号。最后具体的效果图如下所示:
到此为止,整个硬件设计就算完成了,在这个过程中,如果你真的自己动手了,那对自己的技能将会有很大的提升。接下去就是软件的开发调试了,那是重头戏,将在下一篇进行展示。
资料地址:https://item.taobao.com/item.htm?ft=t&id=865643593227
本专栏地址:https://blog.csdn.net/ypp240124016/category_12855111.html
本人的其它文章导航地址:端点物联网学习资源合集-CSDN博客
关注VX公众号 端点物联,以便即时接收文章更新信息。