NB-IoT定位器PCB设计
学习制作一个NB-IoT定位器。
使用的学习资料为:物联网NBIoT定位器[1]
上面的视频讲解还是挺详细的,跟着一步一步来,基本没啥问题,下面来记录一下我的体会和思考。
为什么要制作一个NB-IoT定位器呢?制作这个定位器不是我的目的,我只是想学习一下PCB设计,自己做一些IoT设备,只是发现这个视频讲的比较详细,就以这个视频为切入点来进行整个流程的学习。所以本篇文章的目的是学完后能对PCB设计整体流程有一定程度的了解,后续自己能简单的设计一些IoT设备。
准备工作
PCB设计软件:嘉立创EDA[2],国产软件,有网页版本,使用方便,并且设计完成后能一键PCB下单,能一键购买贴片元器件。
挑选核心芯片,想要制作的是一款NB-IoT定位器,所以首先需要找一款NB-IoT的芯片。选择的是:[3]
芯片选择完以后,需要获取该芯片的硬件设计手册技术[4],这个硬件手册是非常重要的文件,如果我们选择的芯片无法获取到硬件设计手册,那么基本没办法展开后续的工作。
PCB设计
在后续的内容中,需要有优秀的高中物理基础,计算机使用基础。嘉立创EDA的使用不会专门拿出讲解,会穿插在整个设计的过程中。
原理图绘制
在创建了一个嘉立创EDA账号后,就能在网页上使用EDA标准版和专业版,经过笔者的测试,对于初学者来说,还是标准版更好使用。
在创建好一个新项目后,会自动弹出原理图绘制的页面:
- 首先把BC20芯片放上去
在页面的左边栏,点击元件库,搜索BC20,因为这个芯片也不是啥偏门的芯片,之前很多人也都用过,所以肯定是可以直接搜到的如下图所示:
点击,放置到原理图上:
通过硬件设计手册,我们可以知道芯片引脚的分配情况:
一共有68个引脚,其中外部54个引脚,内里14个保留引脚。
如果EDA的元件库里没有我们需要的芯片,我们也能自己进行跟进芯片引脚和封装来进行自己设计,我们也能在元件库中,查看其他用户贡献的元件,比如下图:
把芯片分为两部分似乎更好看,所以后续我们就使用分为两部分的BC20芯片图。
在进入下一步之前,我们可以自己思考思考,按照正常逻辑来思考一下,你觉得这个芯片都需要设计哪些模块?
首先,不管是做啥的芯片都需要电吧,所以我们需要有一个供电模块。
其次,既然是定位器,肯定要收发无线电的,所以还需要要射频模块。
还有,我们肯定需要和定位器进行交互的,那么怎么和芯片进行通信呢?通过上面芯片引脚图,猜测可能可以使用UART串口通信。
带着这些思考,我们来进入下一步。
- 电源供电
在硬件设计手册的3.4章节有介绍:
有两个正极引脚VBAT,9个接地引脚,供电电压3.3V。此外,还提供了供电的参考电路:
接下来我们就可以根据上面这个电路图来绘制原理图了,具体细节(也就是为啥要有这几个电容,可以如何增删改)因为一个人精力毕竟有限,所以我这里没打算了解到这么细。只要知道想要达到我的目的,我需要如何做就行了。
接下来就是根据上面的电路图,我们要在原理图依葫芦画瓢画出来,见下图:
- 控制部分
继续看硬件设计手册,发现还有我们之前没考虑到的,BC20芯片还有三个控制引脚,可参考硬件设计手册的3.5-3.6章节。
- PWRKEY 开机引脚
- RESET 复位引脚
- PSM_EINT 从PSM唤醒引脚
三个控制引脚的电路图如下所示:
根据上面的电路,画出相应的原理图,上面的两个电阻和三极管的电路图可以直接使用DTC三极管替换,两者等价(不用DTC,直接跟手册中的电路一样也行),所以画出的原理图如下:
- 串口部分
继续看硬件手册,下一部分就是串口部分了。
经过对这部分手册的研究,我们能知道,这个芯片有4种串口,但是目前我们需要使用主串口,最简单的主串口只需要RXD和TXD,因为串口的电压域为1.8V,而芯片的电压域为3.3V,所以我们需要有一个电平转换电路,电路图如下:
所以我们可以通过上面的参考电路画出下面的原理图:
- USIM接口
跟着手册走,接下来就是USIM接口模块了,也就是说这个芯片是可以插手机卡或者物联网卡的,芯片是怎么获取手机卡数据的,就是该模块要做的事。
首先我们得选择一个卡槽,但是在元件库中搜索SIM或者USIM,会有太多结果,对于新手来说,会不知道选择哪个,这种时候我觉得应该根据硬件来选择,我们先挑硬件样式。可以右击元件,查看规格书,就会跳转到立创商城,能查看到实物图。
简单点的话,我们直接使用视频中一样的元件:
接下里就是继续查看手册中的参考电路图:
根据参考电路画出原理图:
天线接口
根据手册所说,BC20芯片有两个天线接口:NB-IoT和GNSS天线接口。
NB-IoT天线是SIM卡的天线,用来进行接入移动数据网。GNSS全称为卫星导航系统(Global Navigation Satellite System, GNSS),所以这个也就是GPS/北斗的天线。
根据参考电路绘画出原理图:
其中有一个ANT-IPEX元件,这个元件的实物图如下所示,一个很常见的天线接口:
- 外置电源
一般情况下,能做电源就两种,一种是直接连电源线,比如有USB,可以直接作为电源,另一种就是使用电池。但不管哪种,输出电压都不是3.3V。所以,我们需要加入一个电平转换电路。
7.1 3.3V电压输出
有两种方案,第一个就是设计一个电平转换电路,另一个就是直接使用使用一个低压差线性稳压器。
这里采用第二个方案,可以到淘宝去搜索ME6211
,在EDA的元件库同样也能搜到,因为这个元器件也是比较常见的。
挑选了一个ME6122C33
[5],可以直接在立创商城中查看到该芯片的数据手册。
该芯片的作用就是输入不大于6V的电压,总能输出3.3V电压。数据手册中还提供了参考电路:
根据参考电路我们能绘制出以下原理图:
上面的原理图中比参考电路多了一个C19(坦电容),这里是根据视频中建议而加上的,说是可以增加电源的稳定性。
解决完了电压转换电路,接下来我们可以考虑电源了。
首先,如果考虑使用电池,那么使用锂电池是成本最低的方案了,可以充电,不需要更换电池。
锂电池一般使用ZH125
连接器:
其次,我们还需要考虑锂电池的充电电路
7.2 锂电池充电
锂电池的充电电路这里考虑使用TP4065[6]芯片来进行控制:
TP4065 是一款完整的单节锂电池充电器,世界首创带电池正负极反接保护、 输入电源正负极反接保护的单芯片,兼容大小 3mA-600mA 充电电流。采用涓流、 恒流、恒压控制,SOT23-5 封装与较少的外部元件数目使得 TP4065 成为便携式 应用的理想选择。TP4065 可以适合 USB 电源和适配器电源工作。
立创商城中同样提供了该芯片的技术手册,我们设计充电电路需要参考该手册:
根据该参考电路,我们可以画出如下原理图:
会发现我的电路图中,R10和R11和参考电路中不一样,因为在数据手册中,有关于这部分的说明:
选择好电池后,根据上面的公式,能计算出电阻,另外,为了减少采购成本,之前的电路中使用了4.7k的电阻,所以这里也使用,我们的目标是保证电流不会超过规定的值,并不一定要刚刚好,所以这里使用4.7k的电阻也是可以的。
锂电池参考如下:
其中VUSB表示供电电源,这里设计使用USB充电,所以标作VUSB。VBAT表示锂电池电源,这里为啥还多一个VBAT输出,这就是接下来要说的。
7.3 电源切换电路
USB只能充电吗?上面也说了usb也能作为电源。在现在大部分含有锂电池的设备中都有这样的设计:插入电源线(USB)的时候,给电池充电的同时,也作为电路的电源,电池不输出。只有当电源线拔掉的时候,电池才作为电源输入。
所以我们需要设计一个这样的电路,这种电路还是挺常见的,所以Google搜一下还是挺容易搜到的,比如[7]:
在这个参考电路中,VOUT也就是电源的总输出,之后会进入电平转换电路转换为3.3V的电压,所以这里我们需要修改成VCC。
既然总电源位于这里,那么我们还需要在VCC这里加入一个开关机电路,通过硬件或者软件来控制VCC是否有输出。
最后的原理图如下所示:
其中K1是按键开关,SHUT_DOWN/PWR_EN输出软件引脚,至于这两个引脚接到哪,之后再说。
当SHUT_DOWN有电压的时候,Q2PMOS不导通,VCC没输出,所以关机成功。在关机的状态下,按下K1,D3导通,导致Q2也能导通,VCC产生输出设备开机,但是K1不能一直按着,所以设计了PWE_EN,开机后,该引脚高电平输出,Q3导通,所以即使K1放开,VCC仍然能输出。
- 单片机
到这里,只要再加上个USB口,BC20芯片基本就能使用了,但是这个时候的使用需要通电后,串口连到电脑上,电脑通过串口来操作BC20,我们没办法对BC20进行编程。所以这个时候该加入单片机。
那么单片机到底是啥呢?按我的理解就是集成微型计算机。我们普通的计算机硬件组成是啥样的?需要有计算的大脑:CPU,需要有临时存储数据的内存,需要有储存代码的存储芯片。随便拆一个路由器,我们都能找到这三个部件。
一个定位器我们想要的功能是啥?没过一段时间,获取当前位置,发送到指定目标。而且对于定位器来说,小是优点,大是确定,我们总不能让定位器的体积像路由器的PCB板一样。所以这个时候单片机就有用了,比如一个STM32单片机的大小如下图所示,该芯片里面集成了CPU,ROM,RAM。
就这么一个小小芯片能做到啥呢?能储存一定大小的由我们自由编写的代码,代码能控制其指定几个引脚的输出,那么我们就可以让这几个我们能控制的引脚和BC20的串口进行连接通信,那么就能通过单片机中的代码来控制BC20芯片。
我们选择的单片机型号为:STM32L031[8]
同样可以在立创商城查看该芯片的设计手册,在元件库中也可以搜索该芯片,放到原理图中如下图所示:
同样需要参考技术手册来绘制单片机的原理图,其中VDDA/VDD为电源正极,VSS为负极,所以可以绘制如下原理图:
接下来继续看技术手册,其中PA13,PA14为SWDIO,SWCLK,为JTAG的接口。我们可以把他们接入排针,如下图所示:
5引脚NRST为复位引脚:
我们再把PC15引脚定义为设备指示灯的引脚:
接下来还可以设计一个锂电池电压检测电路,因为锂电池的电压大于3.3V,而单片机的最大电压不能超过3.3V,所以需要进行电阻分压,最后单片机探测到的电压乘2就是锂电池的电压了:
但是上面电路有个问题,单片机关机了以后,该电路仍然还是接通的,就会产生过放现象,所以需要增加一个PMOS,当单片机关机以后,将会断开该电路:
最后是单片机的串口电路,其PA9, PA10引脚为单片机的TXD和RXD引脚,我们可以通过USB来连接该串口,我们可以使用CH340E
[9]芯片,该芯片为USB转串口芯片。通过立创商城的技术手册,我们可以画出以下原理图:
到这为止,单片机的外部电路都绘制完成了,后面需要把BC20几个外部引脚接入单片机,最后得到以下原理图:
其中PA2,PA3接入BC20的串口,PA0, PA5, PA6为BC20的三个控制接口。
PA7, PB1为单片机的保持开机和关机接口。
最终,BC20芯片的原理图为:
到这为止,原理图都绘制完成了。
- 检查bug
嘉立创EDA可以帮助我们检查bug,左侧栏点击设计管理,可以通过其中的网络查看我们绘制的原理图是否有问题:
- 布线
检查没有bug之后,我们可以在顶部的菜单栏点击设计->原理图转PCB。
接下来就是我认为最困难的环节来,设计硬件布局,这块我感觉没啥好说的,看个人灵性吧,我第一次绘制的板子如下图所示:
搞到最后,发现右边过于密集,左边就特别空了。所以重画了一次:
这是我附铜之后的成果,并且我设计的布局不仅在顶层,还有一些元件放在底层,比如SIM卡槽。虽然也不是特别满意,但是还看的过去。
- 下单
PCB布线完毕之后,就可以下单,打印PCB板了。点击顶部的菜单栏,制造->生成PCB制版文件:
接着就可以点击一键下单了,后面的选项基本都是选默认或者价格最低的选项,嘉立创每次下单最少要5块板子,每个月都有优惠券,我是第一次下单,所以最终免费了。
- 购买物料
PCB版下单后,还需要下单购买物料,也就是电容电阻芯片这些。嘉立创同样可以一键进行,点击顶部的制造->导出PCB BOM:
如果有自己购买物料的渠道,可以导出BOM,然后发给供货商。也可以点击一键元件下单。
这里需要注意以下,一键元件下单的界面需要检查一下,一个是数量问题,一个是元件的自动识别问题。比如有三个电阻R6, R7, R8为22欧姆,但是元件下单界面可能会识别为电容或者其他,所以后续画原理图,需要有单位,也就是写22R
,而不是22
。
另外有一些元件立创商城买不到,比如BC20,需要到某宝上购买。但是我发现,截止2023年2月份,移远已经把BC20下架了。只能再第三方商店溢价购买,这款NB-IoT定位器成本最高的应该就是BC20芯片了。
总结
到此,PCB设计部分的内容基本已经完成,后续就需要等待PCB版和电子元件到达后进行元件焊接。
在PCB设计部分,我觉得最难的还是挑选芯片和布线两个部分。在挑选好芯片后 ,基本就是根据技术手册来进行后续的原理图绘制,有些部分可能技术手册中不会提及,这就跟经验有关了。这个时候可以考虑使用Google进行搜索一番,可能会有一定的收获。
参考链接
- https://www.bilibili.com/video/BV1eV411t7fn
- https://lceda.cn/
- https://www.quectel.com/cn/product/lpwa-bc20
- https://www.quectel.com/wp-content/uploads/2021/03/Quectel_BC20_%E7%A1%AC%E4%BB%B6%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C_V1.0.pdf
- https://item.szlcsc.com/84106.html
- https://item.szlcsc.com/84106.html
- https://www.eet-china.com/mp/a68981.html
- https://item.szlcsc.com/116454.html
- https://item.szlcsc.com/100866.html
NB-IoT定位器PCB设计