电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
创作
电子发烧友网>电子资料下载>电子资料>基于Nordic nRF52832的徽章构建

基于Nordic nRF52832的徽章构建

2023-07-11 | zip | 0.16 MB | 次下载 | 2积分

资料介绍

描述

介绍

在这个项目中,我将展示Scan Me! 的构建!徽章,低功耗有线/非接触式徽章,具有蓝牙低功耗 5.0NFC功能。

该徽章基于Nordic nRF52832 ,这是一款低功耗射频 SoC ,具有BLE 5.0连接、NFC标签仿真和强大的Arm Cortex-M4处理器

 
poYBAGOuNc6AJz3jAAkihDDqjkw145.png
 

徽章的主要特点是:

  • BLE连接
  • NFC 标签模拟
  • ARM Cortex-M4 @ 64Mhz
  • OLED屏幕
  • 3 x RGB LED-s
  • 2 个用户按钮
  • 低功耗 - 使用 CR2032 电池可使用 2 年以上
  • 通过 BLE 进行 OTA 更新

该项目还用于教育目的。制作这样的徽章,我认为这是了解更多有关 BLE、NFC 或低功耗设计等知识的好方法。

电气设计

为了进行电气PCB 设计,我使用了KiCad EDA开源电子设计自动化套件。

(对不起 Eagle 团队,KiCad 更适合业余爱好和开源项目:D)

基本原理图基于53.3 原理图 QFAA QFN48,带有来自Nordic nRF52832 数据表DC/DC 稳压器和 NFC 设置参考

组件

  • Nordic nRF52832 SoC (U1)——主SoC,徽章的“大脑”
  • 32 MHz 晶体振荡器(Y1) - 用于生成主 64 MHz 系统时钟
  • 32.768 kHz 晶体振荡器(Y2) - 用于计时(delay()功能等)
  • DC/DC 转换器外部组件 - 2 个电感器(L2、L3)+ 一个电容器(C7)- 这些是必需的,因为为了降低功耗,我们将使用内置的 DC/DC 转换器(而不是 LDO 稳压器)
  • BLE 2.4Ghz 无线电 - 2.4 GHz 天线(Antenna2) + 几个用于阻抗匹配和校准的组件(L1、C3、R1、C15)
  • NFC天线(Antenna1)+天线调谐电容(C9、C10、C16、C17)
  • 电源-CR2032电池、电容(C4 C5、C6、C7、C8、C13、C14)
 
pYYBAGOuNdGAQl1dAAE8oLratqk846.png
主要成分
 

除了主要组件,我还添加了一些外围设备

  • 1 x OLED 屏幕 - 4 针连接器(J2):GND、VCC、SCL、SDA - 我们将使用这样的 I2C OLED 模块
 
pYYBAGOuNdOAf_paAAAoCNikRdM647.png
 
  • 3 x RGB LED (D1、D2、D3)- 4 针,共阳极配置
  • 2 x Push Button (SW1, SW2) - 低电平有效 - 必须激活相应 GPIO 引脚的上拉
 
pYYBAGOuNdWALsITAADg9dmeF9g043.png
外设
 

还添加了一些连接器

 
pYYBAGOuNdeABmsmAAA0jSw5qDQ650.png
连接器
 

确切的组件封装在“即时”的基础上选择的:

  • 对于 2.4GHz 天线,我最终使用了Texas Instruments SWRA117D PCB 天线(我选择它主要是因为它体积小,而且它已经存在于 KiCad 的内置库中)
  • NFC天线只是手绘的PCB走线
  • 对于电阻器、电容器和电感器,我刚刚分配了 SMD 0805,然后查找了组件
  • 我首先从 LCSC 目录中选择 RGB LED、开关、晶体,然后分配适当的封装
  • 我已经拥有的 OLED 屏幕
 
pYYBAGOuNdqADpKOAAEjrLJqLFE480.png
 

有关组件的完整列表,请参阅附件中的 BOM 文件。

“艺术品”

我在笔记本上画的徽章的第一张草图。之后,我用 Inkscape 做了一些绘图:

 
pYYBAGOuNd2AD_9wAAEKaCfjY0Y468.png
 

最后是这样的:

 
poYBAGOuNd-APS8mAAC1touNvZw767.png
 

为了能够在 KiCad 中使用这些绘图,我使用mtl中的svg2mod脚本将 SVG 文件导出到 KiCad PCB 足迹模块文件(.mod)。

要获得可用的结果,首先必须将对象和笔划转换为路径。此外,绘图必须由与 KiCad PCB 层关联的层构成:Cu、SilkS 等(有关更多信息,请参见 svg2mod 的自述文件)

电路板设计

PBC 设计是在KiCad Pcbnew中完成

 
pYYBAGOuNeKAXYjEAAKyf00GVQI047.png
 

第一步是导入作为 KiCad 模块导出的 Inkscape 绘图。

在此之后,我只是放置了组件,从最大的组件(电池座、SoC)开始,然后是靠近需要连接的引脚的最小组件。

最终布局如下所示:

 
poYBAGOuNeWAECKcAAFq0eA9EZQ064.png
轮廓+铜层:顶部(蓝色),底部(紫色)
 

NFC 天线只是用长手绘 PCB 构建的“线圈”

 
pYYBAGOuNeeAS3MFAAB673owtow614.png
 

2.4 GHz 天线(BLE) 部分使用Texas Instruments SWRA117D PCB 天线。布局,我认为,它可以做得更好(并没有真正遵循数据表的参考设计),但它有效信号强度可能更好)

 
poYBAGOuNemAe1hcAABcGxBnH0Q467.png
 

以下是 KiCad 的 3D 查看器的一些渲染图:

 
poYBAGOuNeyADuzjAAEUhEJv48w017.png
KiCAD 渲染 - 正面/顶部
 

 

 
poYBAGOuNe6AJAHMAAFC8ZpepVY567.png
KiCAD 渲染 - 背面/底部
 

PCB 制造、组件和组装

我考虑了多种选择OSH ParkJLCPCBPCBWay来制造 PCB。最后,我选择了 JLCPCB,因为它还以优惠的价格提供组件 (LCSC) 和快速运输 (DHL)。

获得 PCB 和组件大约需要 10 天(3 天制造 + 7 天运输) 。

我订购了 2 种颜色的 PCB-s:蓝色和绿色他们结果很好,我认为:

 
poYBAGOuNfaACOB5ABJRHxVxKEs355.png
 

 

 
pYYBAGOuNfyAHEBjAAnm3oDkiy0658.png
JLCPCB 蓝色PCB版
 

 

 
poYBAGOuNgGAKcGrAA1H6hOdac0288.jpg
JLCPCB绿色PCB版
 

我还从LCSC订购了大部分组件(OLED 屏幕和一些 SMD 电阻器和电容器除外)PCB (15 美元)和组件(15.84美元)的总成本为30.84 美元,包括 DHL 运费。

 
poYBAGOuNgaAOiS6AAkPyb9T0Y8049.png
来自 LCSC 的组件
 

组件的焊接不是很容易,但我认为这是可行的。它是用标准焊料和热风枪完成的。焊接后,我用显微镜(一个便宜的 USB 显微镜)检查了接头

其余部分(主要是 0805 SMD)很容易焊接。

OLED屏幕也是SMD焊接的。首先,我从模块中移除了排针然后,我用焊料填充孔并使用烙铁将模块焊接到徽章的焊盘上。

这是组装的徽章的样子:

 
pYYBAGOuNguAFfihAAjQ5cJlr9c308.png
正面
 

 

 
poYBAGOuNhCASOuZAAjHqCoRZD0455.png
背部
 

 

BLE 和 NFC 天线调谐

(又名“我不知道我在做什么!”部分)

根据 nRF52832 的数据表,NFC 和 BLE 天线需要调谐。

NFC 天线需要调谐到 13.56 MHz 为此使用了几个电容器(在我的设计中为 C9、C10、C16、C17) 。

 
poYBAGOuNhKAdOyWAAAu-5fR_nk664.png
 

有两种方法可以确定调谐电容(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 布局建议:

 
pYYBAGOuNhSAUJqoAACm_zHfFbc980.png
几乎忽略了这一点:/
 

在原理图中,我还添加了一个电容器(C15)用于微调,但最终没有填充。

天线可以用,但我认为信号强度可能会更好。

似乎确实需要真正的矢量网络分析仪才能正确执行此操作。(这个话题听起来很有趣,所以我最终可能会得到一个:))

软件

安装一些板包和库后,可以在Arduino IDE中对该板进行编程。

要添加对 nRF5x 板的支持,我们可以在Boards Manager中安装来自sandeepmistryarduino-nRF5然后我们可以使用通用 nRF52板对徽章进行编程:

 
pYYBAGOuNheAAydSAACKS_gX-qo211.png
 

arduino-nRF5 包不支持NFC功能。幸运的是,arduino-org的arduino-core-nrf52有它,所以我将它移植到我的 arduino-nRF5 分支中。代码上传到bluetiger9/arduino-nRF5,分支NFC。(更改有点混乱 :D,所以我还没有提交拉取请求)

NFC 库提供了以下方法:

  • 设置要发布的文本
  • 设置要发布的 URL
  • 设置要启动的Android APP

BLE功能由arduino -BLEPeripheral库提供,也来自sandeepmistry 该库添加了对实现不同类型 BLE 服务/设备的支持。我们将主要使用“串行”示例中的BLESerial服务。

为了探索 nRF52832 的节能特性,我使用了。来自mristau的Arduino_nRF5x_lowPower该库可用于:

  • 从 LDO 稳压器切换到 DC / DC 转换器(需要外部组件)- 这减少了大约 40-50% 的功耗
  • mode 低功耗模式和关机模式 - 这将功耗降低到大约几微安 - SoC 可以配置为在不同事件上唤醒:GPIO、NFC 字段(仅实现 GPIO)

电路板的实测电流消耗如下:(+200mAhCR2032 电池的理论运行时间)

  • LDO 稳压器 - 5.35 毫安(1.5 天)
  • DC/DC 转换器 - 2.82 mA (3 天)
  • 关机模式 + 在 GPIO 上唤醒 - 9.7 uA (2 年以上)

我还构建了一个简单的演示应用程序来演示徽章的功能。该应用程序具有以下功能:

  • 具有自定义测试、URL 的 NFC 标签仿真
  • OLED屏幕演示
  • 简单的 BLE 接口来设置 NFC 标签发布的文本或 URL
  • 闲置 10 秒后,徽章进入省电模式

 

我使用 Android 手机NFC 工具应用程序)和 Arduino RFID 阅读器测试了 NFC 功能。

 
pYYBAGOuNhmAa5EMAAC7cB99cgc304.png
徽章读取为 NFC 标签 - NFC Tools Android 应用程序
 

对于 BLE 功能,我使用了Nordic 的nRF UART应用程序:

 
poYBAGOuNhuATNNaAADPisN2_bw327.png
BLE 命令接口 - nRF UART Android 应用程序
 

这个应用程序可以很容易地扩展附加功能。

源代码可以在附加的存储库中找到。

对电路板进行编程

可以使用串行线调试 (SWD)协议对 nRF52832 SoC 进行编程。需要 SWD 程序员,例如全球速卖通的 3 美元 ST-Link V2 克隆,才能执行此操作。

该板具有 nRF52832 的 SWDIO、SWDCLK、SWO、RST、VCC 和 GND 引脚,路由到徽章一侧的 6 个焊盘:

 
poYBAGOuNiCAUJLUAAYGZjborRM624.png
编程焊盘 - GND、SWO、SWDCLK、SWDIO、RST、VCC
 

要对电路板进行编程,我们需要将 GND、SWDCLK、SWDIO 和 VCC 连接到 SWD 编程器的相应引脚。

 
poYBAGOuNiKALZ0cAACl9NYAscE274.png
编程引脚 - 只有在取出电池时才需要连接 3.3V
 

有两种方法可以做到这一点:

  • 直接在焊盘上焊接一些电线——我在第一次测试时这样做了
  • 破解一个编程适配器——我使用了一块备用徽章 PCB、一些弹簧式接触针、M3 螺丝和一些热胶:
 
poYBAGOuNieAaLnfAAp52tPKE9c514.jpg
编程设置
 

 

 
poYBAGOuNiuAZo_GAAsyclqOhrY346.jpg
弹簧式接触针
 

更进一步,更好的版本也可以从这种风格的程序员构建。

OTA更新

能够对徽章进行无线编程将很有用。

经过一些研究,我发现了两种可能的方式来实现 OTA 更新:

我认为,第一个变体应该是要走的路。它使用 Arduino IDE 的某种标准 OTA 功能,并且通过 BLE 实现 IPv6 也可用于其他项目。

玩得开心!

注意:我有几个未使用的徽章PCB 如果你想要一个给我留言。


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1基于c51的时钟设计
  2. 0.56 MB   |  3次下载  |  免费
  3. 2CC256x TI蓝牙协议栈基础HFGAGDemo应用
  4. 1006.09KB   |  2次下载  |  免费
  5. 3智能门锁原理图
  6. 0.39 MB   |  2次下载  |  免费
  7. 4CC256x TI Bluetooth Stack SPPLEDemo应用
  8. 1.48MB   |  1次下载  |  免费
  9. 5AHD/TVI/CVI/CVBS转HDMI/VGA/CVBS高清转换方案
  10. 0.19 MB   |  1次下载  |  免费
  11. 6SONY ICF-SX3R电路图
  12. 1.13 MB   |  1次下载  |  3 积分
  13. 7HC20LG0302_Datasheet_Ver_1
  14. 755.91 KB  |  1次下载  |  免费
  15. 82024PMIC市场洞察
  16. 2.23 MB  |  1次下载  |  免费

本月

  1. 1XL4015+LM358恒压恒流电路图
  2. 0.38 MB   |  146次下载  |  1 积分
  3. 2新概念模拟电路第四册信号处理电路电子书免费下载
  4. 10.69 MB  |  61次下载  |  免费
  5. 3PCB布线和布局电路设计规则
  6. 0.40 MB   |  22次下载  |  免费
  7. 4GB/T4706.1-2024 家用和类似用途电器的安全第1部分:通用要求
  8. 7.43 MB   |  11次下载  |  1 积分
  9. 5JESD79-5C_v1.30-2024 内存技术规范
  10. 2.71 MB   |  10次下载  |  免费
  11. 6elmo直线电机驱动调试细则
  12. 4.76 MB   |  9次下载  |  6 积分
  13. 7串口工具UartAssist5.0.exe
  14. 0.60 MB   |  7次下载  |  免费
  15. 8使用CR6850C设计并制作12V5A开关电源
  16. 1.53 MB   |  6次下载  |  2 积分

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935115次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420061次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233084次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191367次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183330次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81581次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73806次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65985次下载  |  10 积分