NRF52832DK入门手册
NRF52832DK是基于Nordic蓝牙芯片nRF52832的开发板(下文简称52DK),支持低功耗蓝牙(BLE),为广大开发人员提供了一个硬件开发平台,帮助工程师快速的了解和学习nRF52832的BLE特性,和实现产品原型阶段的开发工作。
52DK采用核心板与底板分离的设计,核心板采用谷雨物联网的低功耗蓝牙模块BLE520,该模块引出nRF52832的全部IO,支持蓝牙5.0。
本文帮助开发者,快速的了解和使用52DK开发板。
目录
1 低功耗蓝牙简介
BLE低功耗蓝牙的英文缩写(Bluetooth Low Energy),是蓝牙4.0版本起开始支持的新的、低功耗版本的蓝牙技术规范。
蓝牙技术联盟(Bluetooth SIG)在2010年发布了跨时代的蓝牙4.0,它并不是蓝牙3.0的简单升级版本,而是全新的技术架构,蓝牙4.0版本分两种模式:单模蓝牙和双模蓝牙。
常见的蓝牙音箱,是典型的双模蓝牙,它需要传输大量的音频数据。而小米手环,蓝牙温度计则属于单模蓝牙。行业里一般不讲单模蓝牙,而是统一称为低功耗蓝牙。
如今,蓝牙5.0已经发布和应用,4倍通信速度、2倍的通信距离以及Mesh组网特性,将使蓝牙成为物联网领域的重要的技术之一。
有关详细的低功耗蓝牙协议介绍请阅读《BLE技术揭秘》[参考 1]
2 nRF52832芯片简介
nRF52832芯片主要特点介绍。
- 2.4GHz radio,支持多种无线协议,例如BLE,ANT等。
- 32位 ARM Cortex-M4F 处理器,增强浮点运算能力,可以提供更复杂的算力支持。
- 512KB程序存储空间和64KB内存空间。
- 31个GPIO,每个IO均可灵活配置。
芯片功能框图如下图所示:
3 开发板简介
52DK采用核心板与底板分离的设计,核心板是用我们的模块:BLE520,该模块引出芯片的全部GPIO。开发板底板上,设计了LED电路,按键电路,蜂鸣器电路等,专为初学者设计,电路简单易懂。
有关52DK开发板完整的硬件说明,请阅读《NRF52832DK硬件设计手册[参考 2]》。
52DK开发板硬件功能如下图所示:
4 开箱测试
我们为开发者准备了完整的开箱测试视频和文档说明,详情请阅读《NRF52832DK开箱测试》[参考 3],下面是NRF52832DK的开箱视频。
(这里插入优酷开箱视频)
5 开发资料
我们为52DK编写了丰富的开发资料,资料按照存储形式分为两大部分:
- 在线文档,例如入门教程,硬件手册等。特点是纯技术文档,可能需要经常更新。可在线阅读,也可另存为pdf本地阅读。
- 归档资料,比如协议栈安装包,软件安装包等。特点是文件较大、很少需要更新的文件或文档。
资料截图如下图所示(实际内容可能已经更新,仅供参考)。
6 软件开发环境搭建
软件开发环境主要包含三个部分的安装:
- 集成开发软件IAR for ARM
- nRF蓝牙协议栈SDK
- nRF52832芯片烧写软件nRFgo
(入门手册需要配套有一个视频)
6.1 集成开发软件IAR
IAR软件安装手册位置:归档资料/1-编译器/编译器IAR/IAR for ARM v7.8安装教程.pdf
。
请根据此安装教程操作即可。IAR安装后如下图所示。
6.2 蓝牙协议栈SDK
本节涉及两个内容。
首先是安装Nordic官方提供的协议栈SDK(包括协议栈固件SoftDevice),SDK中自带非常丰富的实验例程。
其次是解压我们谷雨针对NRF52832DK开发板提供的实验例程。
6.2.1 安装协议栈sdk
SDK位置:归档资料/2-协议栈SDK/nRF5_SDK_xx.x.x.zip
,xx.x.x是该协议栈版本号。例如nRF_52_15.2.0.zip
Nordic提供的协议栈SDK无需特别处理,解压即可使用,但是强烈建议使用短小的全英文路径,避免不必要的问题发生。例如:E:\project-nordic\nRF5_SDK_15.2.0_9412b96
。由于压缩包较大,小文件较多,需要数分钟的解压时间。解压后的协议栈结构如下图所示:
主要目录说明:
目录或文件 | 作用 |
---|---|
components | nRF52832芯片的软件或驱动组件库,例如芯片外设驱动,射频(802.15.4)驱动等,SoftDevice组件接口等。 |
examples | Nordic官方示例程序,例如外设的使用示例,协议栈示例等。 |
external | 协议栈使用的其他软件组件,例如文件系统fatfs,网络通信协议lwip等。 |
nRF5x_MDK_8_17_0_IAR_NordicLicense.msi | 当使用IAR时,需要安装此版本的MDK |
nRF5x_MDK_8_17_0_Keil4_NordicLicense.msi | 当使用Keil时,需要安装此版本的MDK |
6.2.2 协议栈固件SoftDevice
SoftDevice是Nordic封装的蓝牙协议栈底层固件库(二进制文件Hex的形式提供),该固件库烧需要使用仿真器烧写到芯片Flash的指定地址中,然后由协议栈SDK中的例子来调用。
这种方式可以带来很多好处,SoftDevice不需要跟你的应用一起编译或者链接,大大节省调试时间。Softdevice运行在固定的Flash空间中,使用固定的RAM空间,从而与你的应用完全隔离开,实现了真正的模块分离,也便于芯片的固件升级。
SoftDevice固件目录:nRF5_SDK_15.2.0_9412b96\components\softdevice\s132\hex
,注意s132,softdevice目录下有多个版本的固件,我们这个sdk使用的是s132版本。如下图所示。
6.2.3 安装nRFx_MDK_IAR
由于我们使用的是IAR开发软件,因此需要安装协议栈sdk中的nRF5x_MDK_8_17_0_IAR_NordicLicense.msi,双击运行安装即可。如下图所示。
6.2.4 解压谷雨实验例程
谷雨实验例程位置:归档资料/1-协议栈SDK/谷雨实验源码包/nrf52832dk.rar
。
实验例程【必须】解压到协议栈的指定目录,因为其完全依赖协议栈的文件结构。解压后的实验例程如下图所示。
目录或文件 | 说明 |
---|---|
peripheral | 基础实验,是nRF52832芯片外设的示例程序,例如GPIO控制,UART收发,FLASH读写等。 |
ble | 协议栈实验,例如蓝牙主机,蓝牙从机等示例程序 |
ble_advance | 协议栈高级实验,例如主从一体,iBeacon等。 |
提示:压缩包解压时务必注意,不能多产生一层目录,例如:E:\project-nordic\nRF5_SDK_15.2.0_9412b96\nrf52832dk\nrf52832dk\,这样是错误的,例程将无法成功编译! |
6.3 烧写软件nRFgo
nRFgo软件位置:归档资料/3-烧写软件nRFgo/nrfgostudio_win-YY_x.xx.x_installer.msi
。YY是指32位还是64位的windows系统安装,x.xx.x是指该软件的版本号,例如:nrfgostudio_win-64_1.21.2_installer.msi
nRFgo Studio是Nordic官方提供的芯片固件烧写软件和射频测试软件,需要配套使用Jlink仿真器,可以使用我们的Jlink-Lite,完美支持nRF5系列芯片。
软件安装一路Next即可,安装结束后会随即弹出nRF5x-Command-Line-Tools的安装,根据提示继续安装此工具直到安装结束(期间还会调用J-link驱动的安装)。
安装后的nRFgo软件界面如下图所示:
6.4 其他软件工具
暂无。
7 硬件环境搭建
开发套件硬件环境搭建包括硬件的准备和驱动程序的安装。需要准备的硬件如下图所示。
硬件说明如下:
类型 | 说明 |
---|---|
开发板 | 开发板型号为NRF52832DK。 |
仿真器 | 使用谷雨Jlink-Lite仿真器,10p灰色排线直连NRF52832DK开发板。
若使用其他Jlink仿真器,注意仿真器接口要与NRF52832DK的烧写接口匹配。 详情可查看《NRF52832硬件设计手册》[参考 2]中的Jlink-Lite接口 |
显示屏 | 支持谷雨的三款显示屏
|
需要安装的驱动程序有:
- 开发板USB驱动
- 仿真器Jlink驱动
7.1 安装开发板USB驱动
驱动位置:归档资料/4-驱动程序/开发板USB驱动
。
nRF52DK开发板采用CH340C芯片,将蓝牙芯片的UART信号转换为USB接口信号,方便电脑端使用USB接口来调试模块串口。
7.2 安装仿真器Jlink驱动
驱动位置:归档资料/4-驱动程序/仿真器JLINK驱动
。
若已经安装了nRFgo Studio软件,会自动安装Jlink驱动,无需重复安装。若想使用最新版的仿真器驱动,可以安装我们提供的
7.3 其他硬件
暂无。
8 开发环境验证
软硬件开发环境已经搭建完毕,现在测试一下整个工具链是否能够正常工作。
8.1 硬件连接
按照前文硬件环境搭建中的图片连接开发板与仿真器,并将仿真器的USB与电脑连接。若驱动未安装,则根据上一节内容安相关驱动。
8.2 打开IAR工程
我们以最简单的LED点灯实验的为例,工程文件位于:E:\project-nordic\nRF5_SDK_15.2.0_9412b96\nrf52832dk\peripheral\01_Led_blinkly_example\gyLaunchIot.eww
eww后缀的文件是IAR工程文件,双击启动IAR编译软件,如下图所示。
8.3 下载程序
点击菜单 Project->Download And Debug
,使用IAR下载测试程序。如下图所示。点击Go
按钮,开始运行程序,点击旁边的Stop Debugging
按钮,结束仿真下载。
此时可以看到开发板上的四个LED轮流点亮和熄灭。
如果程序下载程序,但是开发板指示灯没有反应,多数是因为芯片中原先烧写了ble协议栈,需要将协议栈擦除。
8.4 擦除程序
使用nRFgo Studio软件来擦除和烧写芯片,如下截图。
首先点击左侧Device Manager
中的nRF5x Programming
选项,然后右侧的内容才会显示出来,如果选型是灰色或者右侧内容没有显示,请先检查硬件连接(电脑与仿真器,放着器与开发板)。
点击A区域的Erase All
按钮,将擦除整个Flash空间。擦除完成后,在下方的Log消息框中,将打印:Erase completed
B区域用来烧写协议栈SoftDevice和App,在后面的章节会使用到该功能。
8.5 烧写出厂固件
开发板默认烧写出厂测试程序,出厂测试程序的功能请参考开箱测试中的说明。
出厂测试固件位于百度云盘:
9 实验例程介绍
我们根据实验例程的类型分为三类,分别是:
- 基础实验,针对nRF52832芯片硬件外设的示例实验,例如GPIO实验,UART串口实验等。
- 协议栈实验,针对蓝牙协议栈的示例实验,例如蓝牙从机实验,蓝牙主机实验等。
- 协议栈高级实验,蓝牙实验的进阶,例如蓝牙主从一体,iBeacon等,更接近真实项目的示例程序。
9.1 基础实验
基础实验是指针对nRF52832芯片的硬件外设的示例程序,例如GPIO实验,UART串口实验。
各实验如下图所示,文件夹位置:E:\project-nordic\nRF5_SDK_15.2.0_9412b96\nrf52832dk\peripheral
9.2 协议栈实验
协议栈实验是针对蓝牙协议栈的示例实验,例如蓝牙从机实验,蓝牙主机实验等。
各实验如下图所示,文件夹位置:E:\project-nordic\nRF5_SDK_15.2.0_9412b96\nrf52832dk\ble
9.3 协议栈高级实验
协议栈高级实验是蓝牙实验的进阶,例如蓝牙主从一体,iBeacon等,更接近真实项目的示例程序。
各实验如下图所示,文件夹位置:E:\project-nordic\nRF5_SDK_15.2.0_9412b96\nrf52832dk\ble_advance
10 参考资料
本文涉及的相关参考文档列表如下:
- ↑ 《BLE技术揭秘》,一文读懂低功耗蓝牙
- ↑ 2.0 2.1 《NRF52832DK硬件设计手册》,详细描述开发板的硬件设计说明
- ↑ 《NRF52832DK开箱测试》,开发板的开箱测试指导