在这个项目中,我将展示Scan Me! 的构建!徽章,低功耗有线/非接触式徽章,具有蓝牙低功耗 5.0和NFC功能。
该徽章基于Nordic nRF52832 ,这是一款低功耗射频 SoC ,具有BLE 5.0连接、NFC标签仿真和强大的Arm Cortex-M4处理器。
徽章的主要特点是:
该项目还用于教育目的。制作这样的徽章,我认为这是了解更多有关 BLE、NFC 或低功耗设计等知识的好方法。
为了进行电气和PCB 设计,我使用了KiCad EDA开源电子设计自动化套件。
(对不起 Eagle 团队,KiCad 更适合业余爱好和开源项目:D)
基本原理图基于53.3 原理图 QFAA QFN48,带有来自Nordic nRF52832 数据表的 DC/DC 稳压器和 NFC 设置参考。
组件:
delay()
功能等)除了主要组件,我还添加了一些外围设备:
还添加了一些连接器:
确切的组件和封装是在“即时”的基础上选择的:
有关组件的完整列表,请参阅附件中的 BOM 文件。
我在笔记本上画的徽章的第一张草图。之后,我用 Inkscape 做了一些绘图:
最后是这样的:
为了能够在 KiCad 中使用这些绘图,我使用mtl中的svg2mod脚本将 SVG 文件导出到 KiCad PCB 足迹模块文件(.mod)。
要获得可用的结果,首先必须将对象和笔划转换为路径。此外,绘图必须由与 KiCad PCB 层关联的层构成:Cu、SilkS 等(有关更多信息,请参见 svg2mod 的自述文件)。
PBC 设计是在KiCad Pcbnew中完成的:
第一步是导入作为 KiCad 模块导出的 Inkscape 绘图。
在此之后,我只是放置了组件,从最大的组件(电池座、SoC)开始,然后是靠近需要连接的引脚的最小组件。
最终布局如下所示:
NFC 天线只是用长手绘 PCB 构建的“线圈” :
2.4 GHz 天线(BLE) 部分使用Texas Instruments SWRA117D PCB 天线。布局,我认为,它可以做得更好(并没有真正遵循数据表的参考设计),但它有效(信号强度可能更好):
以下是 KiCad 的 3D 查看器的一些渲染图:
我考虑了多种选择(OSH Park、JLCPCB、PCBWay)来制造 PCB。最后,我选择了 JLCPCB,因为它还以优惠的价格提供组件 (LCSC) 和快速运输 (DHL)。
获得 PCB 和组件大约需要 10 天(3 天制造 + 7 天运输) 。
我订购了 2 种颜色的 PCB-s:蓝色和绿色。他们结果很好,我认为:
我还从LCSC订购了大部分组件(OLED 屏幕和一些 SMD 电阻器和电容器除外)。PCB (15 美元)和组件(15.84美元)的总成本为30.84 美元,包括 DHL 运费。
组件的焊接不是很容易,但我认为这是可行的。它是用标准焊料和热风枪完成的。焊接后,我用显微镜(一个便宜的 USB 显微镜)检查了接头。
其余部分(主要是 0805 SMD)很容易焊接。
OLED屏幕也是SMD焊接的。首先,我从模块中移除了排针。然后,我用焊料填充孔并使用烙铁将模块焊接到徽章的焊盘上。
这是组装的徽章的样子:
(又名“我不知道我在做什么!”部分)
根据 nRF52832 的数据表,NFC 和 BLE 天线需要调谐。
NFC 天线需要调谐到 13.56 MHz 。为此使用了几个电容器(在我的设计中为 C9、C10、C16、C17) 。
有两种方法可以确定调谐电容(Ctune)的值:
由于没有网络分析仪,我很难测量天线的电感。在尝试使用基于 Arduino 的电感表测量电感后(大多数万用表无法测量电感),我放弃了这个想法。天线的电感预计会非常小(在 1-3uH 范围内),测量起来并不容易。
因此,最终使用一些在线工具根据几个参数(高度、宽度、圈数、轨道宽度、间距)来估算 PCB 天线的电感。我也尝试了两个,它们给出了以下值:
将这两个值应用于数据表公式后,我得出 133pF (2.0uH) -> 141pF (1.9uH)电容范围应该用于将天线调谐到 13.56 MHz。AI 有 2 个电容器垫(每个引脚),我最终使用了 100pF + 33pF 电容。
BLE 2.4GHz 天线的阻抗应匹配到 50 欧姆。基本设计中的 L1 和 C3 应该这样做,但我认为,我犯了一个错误,没有遵循数据表中的 PCB 布局建议:
在原理图中,我还添加了一个电容器(C15)用于微调,但最终没有填充。
天线可以用,但我认为信号强度可能会更好。
似乎确实需要真正的矢量网络分析仪才能正确执行此操作。(这个话题听起来很有趣,所以我最终可能会得到一个:))
安装一些板包和库后,可以在Arduino IDE中对该板进行编程。
要添加对 nRF5x 板的支持,我们可以在Boards Manager中安装来自sandeepmistry的arduino-nRF5包。然后我们可以使用通用 nRF52板对徽章进行编程:
arduino-nRF5 包不支持NFC功能。幸运的是,arduino-org的arduino-core-nrf52包有它,所以我将它移植到我的 arduino-nRF5 分支中。代码上传到bluetiger9/arduino-nRF5,分支NFC。(更改有点混乱 :D,所以我还没有提交拉取请求)
NFC 库提供了以下方法:
BLE功能由arduino -BLEPeripheral库提供,也来自sandeepmistry 。该库添加了对实现不同类型 BLE 服务/设备的支持。我们将主要使用“串行”示例中的BLESerial
服务。
为了探索 nRF52832 的节能特性,我使用了。来自mristau的Arduino_nRF5x_lowPower库。该库可用于:
电路板的实测电流消耗如下:(+200mAhCR2032 电池的理论运行时间)
我还构建了一个简单的演示应用程序来演示徽章的功能。该应用程序具有以下功能:
我使用 Android 手机(NFC 工具应用程序)和 Arduino RFID 阅读器测试了 NFC 功能。
对于 BLE 功能,我使用了Nordic 的nRF UART应用程序:
这个应用程序可以很容易地扩展附加功能。
源代码可以在附加的存储库中找到。
可以使用串行线调试 (SWD)协议对 nRF52832 SoC 进行编程。需要 SWD 程序员,例如全球速卖通的 3 美元 ST-Link V2 克隆版,才能执行此操作。
该板具有 nRF52832 的 SWDIO、SWDCLK、SWO、RST、VCC 和 GND 引脚,路由到徽章一侧的 6 个焊盘:
要对电路板进行编程,我们需要将 GND、SWDCLK、SWDIO 和 VCC 连接到 SWD 编程器的相应引脚。
有两种方法可以做到这一点:
更进一步,更好的版本也可以从这种风格的程序员构建。
能够对徽章进行无线编程将很有用。
经过一些研究,我发现了两种可能的方式来实现 OTA 更新:
我认为,第一个变体应该是要走的路。它使用 Arduino IDE 的某种标准 OTA 功能,并且通过 BLE 实现 IPv6 也可用于其他项目。
玩得开心!
注意:我有几个未使用的徽章PCB 。如果你想要一个给我留言。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !