“NRF52832DK入门手册”的版本间的差异
(→蓝牙协议栈SDK) |
(→开箱测试) |
||
(未显示同一用户的50个中间版本) | |||
第1行: | 第1行: | ||
− | + | NRF52832DK是基于Nordic蓝牙芯片nRF52832的开发板('''下文简称52DK'''),支持低功耗蓝牙(BLE),为广大开发人员提供了一个硬件开发平台,帮助工程师快速的了解和学习nRF52832的BLE特性,和实现产品原型阶段的开发工作。 | |
52DK采用核心板与底板分离的设计,核心板采用谷雨物联网的低功耗蓝牙模块BLE520,该模块引出nRF52832的全部IO,支持蓝牙5.0。 | 52DK采用核心板与底板分离的设计,核心板采用谷雨物联网的低功耗蓝牙模块BLE520,该模块引出nRF52832的全部IO,支持蓝牙5.0。 | ||
第5行: | 第5行: | ||
本文帮助开发者,快速的了解和使用52DK开发板。 | 本文帮助开发者,快速的了解和使用52DK开发板。 | ||
− | == | + | == 低功耗蓝牙简介 == |
+ | BLE低功耗蓝牙的英文缩写(Bluetooth Low Energy),是蓝牙4.0版本起开始支持的新的、低功耗版本的蓝牙技术规范。 | ||
+ | |||
+ | 蓝牙技术联盟(Bluetooth SIG)在2010年发布了跨时代的蓝牙4.0,它并不是蓝牙3.0的简单升级版本,而是全新的技术架构,蓝牙4.0版本分两种模式:单模蓝牙和双模蓝牙。 | ||
+ | |||
+ | 常见的蓝牙音箱,是典型的双模蓝牙,它需要传输大量的音频数据。而小米手环,蓝牙温度计则属于单模蓝牙。行业里一般不讲单模蓝牙,而是统一称为低功耗蓝牙。 | ||
+ | |||
+ | 如今,蓝牙5.0已经发布和应用,4倍通信速度、2倍的通信距离以及Mesh组网特性,将使蓝牙成为物联网领域的重要的技术之一。 | ||
+ | |||
+ | 有关详细的低功耗蓝牙协议介绍请阅读《BLE技术揭秘》<ref group="参考">《[[BLE技术揭秘]]》,一文读懂低功耗蓝牙</ref> | ||
+ | [[文件:BLE技术 蓝牙5.jpg|居中|无框|750x750像素]] | ||
+ | |||
+ | == nRF52832芯片简介 == | ||
nRF52832芯片主要特点介绍。 | nRF52832芯片主要特点介绍。 | ||
* 2.4GHz radio,支持多种无线协议,例如BLE,ANT等。 | * 2.4GHz radio,支持多种无线协议,例如BLE,ANT等。 | ||
第17行: | 第29行: | ||
52DK采用核心板与底板分离的设计,核心板是用我们的模块:BLE520,该模块引出芯片的全部GPIO。开发板底板上,设计了LED电路,按键电路,蜂鸣器电路等,专为初学者设计,电路简单易懂。 | 52DK采用核心板与底板分离的设计,核心板是用我们的模块:BLE520,该模块引出芯片的全部GPIO。开发板底板上,设计了LED电路,按键电路,蜂鸣器电路等,专为初学者设计,电路简单易懂。 | ||
− | 有关52DK开发板完整的硬件说明,请阅读《NRF52832DK硬件设计手册<ref>[[NRF52832DK硬件设计手册|《NRF52832DK硬件设计手册]]》,详细描述开发板的硬件设计说明</ref>》。 | + | 有关52DK开发板完整的硬件说明,请阅读《NRF52832DK硬件设计手册<ref group="参考" name=":0">[[NRF52832DK硬件设计手册|《NRF52832DK硬件设计手册]]》,详细描述开发板的硬件设计说明</ref>》。 |
52DK开发板硬件功能如下图所示: | 52DK开发板硬件功能如下图所示: | ||
第23行: | 第35行: | ||
== 开箱测试 == | == 开箱测试 == | ||
− | 我们为开发者准备了完整的开箱测试视频和文档说明,详情请阅读《NRF52832DK开箱测试》<ref>《[[NRF52832DK开箱测试]]》,开发板的开箱测试指导</ref>,下面是NRF52832DK的开箱视频。 | + | 我们为开发者准备了完整的开箱测试视频和文档说明,详情请阅读《NRF52832DK开箱测试》<ref group="参考">《[[NRF52832DK开箱测试]]》,开发板的开箱测试指导</ref>,下面是NRF52832DK的开箱视频。 |
− | + | {{哔哩哔哩|id=79042746|page=1|cid=135262757}} | |
− | |||
== 开发资料 == | == 开发资料 == | ||
− | + | 我们为52DK编写了丰富的开发资料,资料按照存储形式分为两大部分: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
* 在线文档,例如入门教程,硬件手册等。特点是纯技术文档,可能需要经常更新。可在线阅读,也可另存为pdf本地阅读。 | * 在线文档,例如入门教程,硬件手册等。特点是纯技术文档,可能需要经常更新。可在线阅读,也可另存为pdf本地阅读。 | ||
* 归档资料,比如协议栈安装包,软件安装包等。特点是文件较大、很少需要更新的文件或文档。 | * 归档资料,比如协议栈安装包,软件安装包等。特点是文件较大、很少需要更新的文件或文档。 | ||
+ | 资料截图如下图所示(实际内容可能已经更新,仅供参考)。 | ||
+ | [[文件:NRF52832DK-开发资料截图.png|居中|无框|855x855px]] | ||
== 软件开发环境搭建 == | == 软件开发环境搭建 == | ||
软件开发环境主要包含三个部分的安装: | 软件开发环境主要包含三个部分的安装: | ||
+ | * 集成开发软件IAR for ARM | ||
* nRF蓝牙协议栈SDK | * nRF蓝牙协议栈SDK | ||
* nRF52832芯片烧写软件nRFgo | * nRF52832芯片烧写软件nRFgo | ||
− | + | (入门手册需要配套有一个视频) | |
+ | |||
+ | === 集成开发软件IAR === | ||
+ | IAR软件安装手册位置:<code>归档资料/1-编译器/编译器IAR/IAR for ARM v7.8安装教程.pdf</code>。 | ||
+ | |||
+ | 请根据此安装教程操作即可。IAR安装后如下图所示。 | ||
+ | [[文件:NRF52832DK-集成开发软件IAR.png|居中|无框|750x750像素]] | ||
=== 蓝牙协议栈SDK === | === 蓝牙协议栈SDK === | ||
− | + | 本节涉及两个内容。 | |
+ | |||
+ | 首先是安装Nordic官方提供的协议栈SDK(包括协议栈固件SoftDevice),SDK中自带非常丰富的实验例程。 | ||
+ | |||
+ | 其次是解压我们谷雨针对NRF52832DK开发板提供的实验例程。 | ||
==== 安装协议栈sdk ==== | ==== 安装协议栈sdk ==== | ||
− | SDK位置:<code>归档资料/ | + | SDK位置:<code>归档资料/2-协议栈SDK/nRF5_SDK_xx.x.x.zip</code>,xx.x.x是该协议栈版本号。例如nRF_52_15.2.0.zip |
− | + | Nordic提供的协议栈SDK无需特别处理,解压即可使用,但是强烈建议使用短小的全英文路径,避免不必要的问题发生。例如:<code>E:\project-nordic\nRF5_SDK_15.2.0_9412b96</code>。由于压缩包较大,小文件较多,需要数分钟的解压时间。解压后的协议栈结构如下图所示: | |
+ | [[文件:NRF52832DK-协议栈SDK目录结构.png|居中|无框|750x750像素]]主要目录说明: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | !目录或文件 | ||
+ | !作用 | ||
+ | |- | ||
+ | |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 | ||
+ | |} | ||
+ | |||
+ | ==== 协议栈固件SoftDevice ==== | ||
+ | SoftDevice是Nordic封装的蓝牙协议栈底层固件库(二进制文件Hex的形式提供),该固件库烧需要使用仿真器烧写到芯片Flash的指定地址中,然后由协议栈SDK中的例子来调用。 | ||
+ | |||
+ | 这种方式可以带来很多好处,SoftDevice不需要跟你的应用一起编译或者链接,大大节省调试时间。Softdevice运行在固定的Flash空间中,使用固定的RAM空间,从而与你的应用完全隔离开,实现了真正的模块分离,也便于芯片的固件升级。 | ||
+ | |||
+ | SoftDevice固件目录:<code>nRF5_SDK_15.2.0_9412b96\components\softdevice\s132\hex</code>,注意s132,softdevice目录下有多个版本的固件,我们这个sdk使用的是s132版本。如下图所示。 | ||
+ | [[文件:NRF52832DK-SoftDevice文件位置.png|居中|无框|750x750像素]] | ||
+ | |||
+ | ==== 安装nRFx_MDK_IAR ==== | ||
+ | 由于我们使用的是IAR开发软件,因此需要安装协议栈sdk中的nRF5x_MDK_8_17_0_IAR_NordicLicense.msi,双击运行安装即可。如下图所示。 | ||
+ | [[文件:NRF52832DK-NRF52-MDK-IAR-安装.png|居中|无框|509x509像素]] | ||
==== 解压谷雨实验例程 ==== | ==== 解压谷雨实验例程 ==== | ||
− | + | 谷雨实验例程位置:<code>归档资料/1-协议栈SDK/谷雨实验源码包/nrf52832dk.rar</code>。 | |
− | + | 实验例程【必须】解压到协议栈的指定目录,因为其完全依赖协议栈的文件结构。解压后的实验例程如下图所示。 | |
+ | [[文件:NRF52832DK-谷雨实验例程.png|居中|无框|750x750像素]] | ||
+ | {| class="wikitable" | ||
+ | |+目录结构说明 | ||
+ | !目录或文件 | ||
+ | !说明 | ||
+ | |- | ||
+ | |peripheral | ||
+ | |基础实验,是nRF52832芯片外设的示例程序,例如GPIO控制,UART收发,FLASH读写等。 | ||
+ | |- | ||
+ | |ble | ||
+ | |协议栈实验,例如蓝牙主机,蓝牙从机等示例程序 | ||
+ | |- | ||
+ | |ble_advance | ||
+ | |协议栈高级实验,例如主从一体,iBeacon等。 | ||
+ | |} | ||
+ | {{Note|text=提示:压缩包解压时务必注意,不能多产生一层目录,例如:E:\project-nordic\nRF5_SDK_15.2.0_9412b96\nrf52832dk\nrf52832dk\,这样是错误的,例程将无法成功编译!|type=warning}} | ||
=== 烧写软件nRFgo === | === 烧写软件nRFgo === | ||
− | + | nRFgo软件位置:<code>归档资料/3-烧写软件nRFgo/nrfgostudio_win-YY_x.xx.x_installer.msi</code>。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软件界面如下图所示: | ||
+ | [[文件:NRF52832DK-nRFgo软件界面.png|居中|无框|750x750像素]] | ||
+ | |||
+ | |||
+ | |||
+ | === 其他软件工具 === | ||
+ | 暂无。 | ||
+ | |||
+ | == 硬件环境搭建 == | ||
+ | 开发套件硬件环境搭建包括硬件的准备和驱动程序的安装。需要准备的硬件如下图所示。 | ||
+ | [[文件:NRF52832DK-硬件开发工具.png|居中|无框|750x750像素]] | ||
+ | 硬件说明如下: | ||
+ | {| class="wikitable" | ||
+ | !类型 | ||
+ | !说明 | ||
+ | |- | ||
+ | |开发板 | ||
+ | |开发板型号为NRF52832DK。 | ||
+ | |- | ||
+ | |仿真器 | ||
+ | |使用谷雨Jlink-Lite仿真器,10p灰色排线直连NRF52832DK开发板。 | ||
+ | 若使用其他Jlink仿真器,注意仿真器接口要与NRF52832DK的烧写接口匹配。 | ||
+ | |||
+ | 详情可查看《NRF52832硬件设计手册》<ref group="参考" name=":0" />中的Jlink-Lite接口 | ||
+ | |- | ||
+ | |显示屏 | ||
+ | |支持谷雨的三款显示屏 | ||
+ | * 128x128分辨率的1.44寸TFT显示屏 | ||
+ | * 240x240分辨率的1.32寸TFT显示屏 | ||
+ | * 200x200分辨率的1.54寸ePaper电子墨水屏 | ||
+ | |} | ||
+ | 需要安装的驱动程序有: | ||
+ | * 开发板USB驱动 | ||
+ | * 仿真器Jlink驱动 | ||
+ | |||
+ | === 安装开发板USB驱动 === | ||
+ | 驱动位置:<code>归档资料/4-驱动程序/开发板USB驱动</code>。 | ||
+ | |||
+ | nRF52DK开发板采用CH340C芯片,将蓝牙芯片的UART信号转换为USB接口信号,方便电脑端使用USB接口来调试模块串口。 | ||
+ | [[文件:CH340驱动安装.png|居中|无框|700x700像素]] | ||
+ | |||
+ | === 安装仿真器Jlink驱动 === | ||
+ | 驱动位置:<code>归档资料/4-驱动程序/仿真器JLINK驱动</code>。 | ||
+ | |||
+ | 若已经安装了nRFgo Studio软件,会自动安装Jlink驱动,无需重复安装。若想使用最新版的仿真器驱动,可以安装我们提供的 | ||
+ | |||
+ | === 其他硬件 === | ||
+ | 暂无。 | ||
+ | |||
+ | == 开发环境验证 == | ||
+ | 软硬件开发环境已经搭建完毕,现在测试一下整个工具链是否能够正常工作。 | ||
+ | |||
+ | === 硬件连接 === | ||
+ | 按照前文硬件环境搭建中的图片连接开发板与仿真器,并将仿真器的USB与电脑连接。若驱动未安装,则根据上一节内容安相关驱动。 | ||
+ | |||
+ | === 打开IAR工程 === | ||
+ | 我们以最简单的LED点灯实验的为例,工程文件位于:<code>E:\project-nordic\nRF5_SDK_15.2.0_9412b96\nrf52832dk\peripheral\01_Led_blinkly_example\gyLaunchIot.eww</code> | ||
+ | [[文件:NRF52832-LED点灯工程文件.png|居中|无框|750x750像素]] | ||
+ | |||
+ | eww后缀的文件是IAR工程文件,双击启动IAR编译软件,如下图所示。 | ||
+ | [[文件:NRF52832DK-LED点灯.png|居中|无框|750x750像素]] | ||
− | === | + | === 下载程序 === |
− | + | 点击菜单 <code>Project->Download And Debug</code>,使用IAR下载测试程序。如下图所示。点击<code>Go</code>按钮,开始运行程序,点击旁边的<code>Stop Debugging</code>按钮,结束仿真下载。 | |
+ | [[文件:NRF52832DK-LED点灯程序下载.png|居中|无框|750x750像素]] | ||
+ | 此时可以看到开发板上的四个LED轮流点亮和熄灭。 | ||
+ | |||
+ | 如果程序下载程序,但是开发板指示灯没有反应,多数是因为芯片中原先烧写了ble协议栈,需要将协议栈擦除。 | ||
+ | {{Note|text=注意,若芯片中烧写了协议栈程序,需要将芯片flash全部擦除,才能运行基础例程中的裸机代码。|type=warning}} | ||
+ | |||
+ | === 擦除程序 === | ||
+ | 使用nRFgo Studio软件来擦除和烧写芯片,如下截图。 | ||
+ | [[文件:NRF52832DK-nRFgo擦除和烧写.png|居中|缩略图|750x750像素]] | ||
+ | 首先点击左侧<code>Device Manager</code>中的<code>nRF5x Programming</code>选项,然后右侧的内容才会显示出来,如果选型是灰色或者右侧内容没有显示,请先检查硬件连接(电脑与仿真器,放着器与开发板)。 | ||
− | + | 点击A区域的<code>Erase All</code>按钮,将擦除整个Flash空间。擦除完成后,在下方的Log消息框中,将打印:Erase completed | |
− | |||
− | + | B区域用来烧写协议栈SoftDevice和App,在后面的章节会使用到该功能。 | |
− | |||
− | === | + | === 烧写出厂固件 === |
+ | 开发板默认烧写出厂测试程序,出厂测试程序的功能请参考开箱测试中的说明。 | ||
− | + | 出厂测试固件位于百度云盘: | |
− | == | + | == 实验例程介绍 == |
− | + | 我们根据实验例程的类型分为三类,分别是: | |
+ | * 基础实验,针对nRF52832芯片硬件外设的示例实验,例如GPIO实验,UART串口实验等。 | ||
+ | * 协议栈实验,针对蓝牙协议栈的示例实验,例如蓝牙从机实验,蓝牙主机实验等。 | ||
+ | * 协议栈高级实验,蓝牙实验的进阶,例如蓝牙主从一体,iBeacon等,更接近真实项目的示例程序。 | ||
=== 基础实验 === | === 基础实验 === | ||
+ | 基础实验是指针对nRF52832芯片的硬件外设的示例程序,例如GPIO实验,UART串口实验。 | ||
+ | |||
+ | 各实验如下图所示,文件夹位置:<code>E:\project-nordic\nRF5_SDK_15.2.0_9412b96\nrf52832dk\peripheral</code> | ||
+ | |||
+ | [[文件:NRF52832DK-基础实验.png|居中|无框|600x600像素]] | ||
=== 协议栈实验 === | === 协议栈实验 === | ||
+ | 协议栈实验是针对蓝牙协议栈的示例实验,例如蓝牙从机实验,蓝牙主机实验等。 | ||
+ | |||
+ | 各实验如下图所示,文件夹位置:<code>E:\project-nordic\nRF5_SDK_15.2.0_9412b96\nrf52832dk\ble</code> | ||
+ | [[文件:NRF52832DK-协议栈实验.png|居中|无框|600x600像素]] | ||
+ | |||
+ | === 协议栈高级实验 === | ||
+ | 协议栈高级实验是蓝牙实验的进阶,例如蓝牙主从一体,iBeacon等,更接近真实项目的示例程序。 | ||
− | + | 各实验如下图所示,文件夹位置:<code>E:\project-nordic\nRF5_SDK_15.2.0_9412b96\nrf52832dk\ble_advance</code> | |
+ | [[文件:NRF52832DK-协议栈高级实验.png|居中|无框|600x600像素]] | ||
== 参考资料 == | == 参考资料 == | ||
− | 本文涉及的相关参考文档列表如下:<references /> | + | 本文涉及的相关参考文档列表如下:<references group="参考" /> |
+ | [[分类:NRF52832DK]] | ||
+ | [[分类:入门手册]] |
2019年12月18日 (三) 01:55的最新版本
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开箱测试》,开发板的开箱测试指导