本文将详述Nordic nRF51系列(包括nRF51822/nRF51802/nRF51422等)和nRF52系列(包括nRF52832/nRF52810/nRF52840)开发环境搭建。
1. 强制安装项
如下工具必须安装,否则无法开发Nordic nRF51/52产品
-
安装IDE。Nordic nRF51/52支持Keil,GCC,IAR和SES(Segger Embedded Studio)四种IDE,大家随便选择其中一种安装即可。
- Keil。大家自行下载安装,这里不再赘述。
- IAR。大家自行下载安装,这里不再赘述。
- SES(推荐)。SES跟Keil非常像,是Segger公司为Nordic芯片量身打造的,对Nordic用户来说,永久免费。SES支持Windows/MacOS/Linux三种平台,下载链接为:https://www.segger.com/downloads/embedded-studio。下载成功后,你将得到“Setup_EmbeddedStudio_v330_win_x64.exe”之类的安装包(Windows 64bit版本),成功安装后,SES软件界面如下所示:
- GCC。GCC下载链接:https://gcc.gnu.org/。GCC和Eclipse开发环境搭建请参考:https://devzone.nordicsemi.com/tutorials/b/getting-started/posts/development-with-gcc-and-eclipse。
如果你是硬件工程师,IDE不是必须安装的,因为Nordic SDK所有例子都有已经编译好的hex文件供你使用。
- 安装SDK。SDK包含所有外设驱动,丰富的应用例子,以及跟本版本SDK配套的协议栈hex等。大家可以参考“Nordic官网/Infocenter/Devzone/Github简介”第1节“1. Nordic官网及资料下载”去下载自己芯片支持的SDK版本,比如nRF52系列最新版SDK下载链接为:https://www.nordicsemi.com/eng/nordic/download_resource/59012/70/52858981/116085
下完之后,你将得到 “nRF5_SDK_15.0.0_a53641a.zip”之类的压缩包,解压缩该压缩包,SDK即安装完成,如下所示:
- 安装与本SDK版本配套的ARM CMSIS软件包和IDE插件。如果你是Keil5用户,一般可以通过如下界面,把相应的CMSIS和Device family pack安装好。
由于某些原因,很多用户在上述界面无法安装,因此可以将CMSIS和IDE插件从网上下载下来,单独安装。
ARM CMSIS安装包下载地址:https://github.com/ARM-software/CMSIS/releases。从如下界面选择你需要的CMSIS版本。那具体选择哪个CMSIS版本呢?你可以随便打开SDK中一个例子,Keil或者其他IDE就会报错告诉你缺少那个版本的CMSIS(一般来说,缺少的都是CMSIS4.5.0),你再把它下下来即可。
ARM CMSIS4.5.0 Windows/Keil5安装界面如下所示:
所有IDE插件都可以到如下网址下载:https://www.nordicsemi.com/eng/Products/nRF52840#Downloads。根据自己的IDE,选择相应的插件:
注:上述所有插件都有2个版本,2个版本的功能是一模一样的,只是版权会有点不同。
以Keil5插件为例,Keil5的插件是Device family pack(其实上文已经提到它了),其安装界面如下所示(安装过程中有可能会报错,不要管它!)
- 安装nRF5x Command Line Tools。nRF5x command line tools为Nordic开发的一些命令行工具,主要包括Jlink驱动,nrfjprog,nrfutil以及mergehex等。下载链接为:https://www.nordicsemi.com/eng/Products/nRF52840#Downloads,选取如下选项之一。
以Windows系统为例,下载上图中的红圈中的win32版本,得到“nRF5x-Command-Line-Tools_9_7_2_Installer.exe”之类的可执行文件,双击安装,界面如下所示:
安装过程中,不要去更改默认选项,直接按照默认选项去安装即可。不过如下界面,一定要选择“select all”
2. 推荐安装项
- 安卓版nRF connect或者iOS版nRF connect。nRF connect是Nordic开发的一个通用性BLE app,以支持BLE扫描,BLE连接,BLE广播,BLE监视,BLE服务发现,BLE连接后交互等功能。iOS版nRF connect请到苹果app store下载,搜索“nRF”即可以找到。安卓版nRF connect是放在Google play里面的,如果你无法访问Google play,那么可以到Nordic Github官网上下载,下载链接为:https://github.com/NordicSemiconductor/Android-nRF-Connect/releases
安装成功后,你将看到如下所示的nRF connect:
- 桌面版nRF connect。下载链接为:https://www.nordicsemi.com/eng/Products/nRF52840#Downloads。选择如下选项之一:
桌面版nRF connect安装成功后,将如下所示:
确切地说,桌面版nRF connect更像一个容器,它可以装载各种不同的应用,前面提到的手机版nRF connect只是桌面版nRF connect的一个“Bluetooth Low Energy”应用。点击“Add/remove apps”,可以安装或者卸载Nordic其他的应用。另外,你也可以基于桌面版nRF connect(使用HTML5或者Javascript)来开发自己的应用,比如量产测试程序。
注:桌面版nRF connect前身是Master Control Panel(MCP),Nordic现已正式停止对MCP的支持,MCP所有功能都可以通过桌面版nRF connect来取代和实现。
3. 可选安装项
- 安卓版或者iOS版nRF toolbox。nRF toolbox是Nordic开发的一系列BLE应用集,包括心率应用,蓝牙透传应用,DFU等。iOS版nRF toolbox请到苹果app store下载,搜索“nRF”即可以找到。安卓版nRF toolbox是放在Google play里面的,如果你无法访问Google play,那么可以到Nordic Github官网上下载,下载链接为:https://github.com/NordicSemiconductor/Android-nRF-Toolbox/releases。nRF Toolbox代码(包括iOS版和安卓版)是开源的,可以直接到上述Nordic Github上下载。
安装成功后,你将看到如下所示的nRF toolbox:
- nRFgo studio。图形化的Flash烧写工具,以及nRF24系列开发工具,而且还集成有DTM,DFU升级等功能,不过随着桌面版nRF connect功能越来越多,nRFgo studio越来越被边缘化,因为大部分nRFgo studio的功能都可以被桌面版nRF connect取代,比如Flash烧写,DFU等。nRFgo studio下载链接为:https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRFgo-Studio/(language)/eng-GB#Downloads。安装nRFgo studio的时候,请按照默认选项来安装(不要去更改默认的安装目录!),安装成功后,界面如下所示:
注:nRFgo studio安装包也自带Jlink驱动安装包,如果你前面通过nRF5x command line tools已经把jlink驱动装好了,那么安装nRFgo studio的时候就不要再安装Jlink驱动了。
- nrfjprog(必选)。nrfjprog用于代码擦除烧写读取,芯片复位,存储器访问等,其使用界面(Windows命令行或者Linux命令行或者MacOS命令行)如下所示:
由于在安装nRF5x command line tools的时候,系统就会自动安装nrfjprog,因此你不需要再额外安装nrfjprog。对于Windows系统,nrfjprog将位于如下目录“C:\Program Files (x86)\Nordic Semiconductor\nrf5x\bin” 你只需在Windows path变量(环境变量)中包含此目录,就可以直接在Windows‘Command Prompt’中执行nrfjprog命令了。
- Sniffer。Sniffer用于抓取空中蓝牙包以debug通信问题,sniffer包括硬件和软件两部分,硬件就是一个nRF51的dongle或者PCA10028开发板或者PCA10040开发板(将来还会支持PCA10056开发板以及PCA10059 dongle),硬件连接图如下所示:
软件就是Wireshark,界面如下所示:
Sniffer详细使用说明请参考:http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.tools%2Fdita%2Ftools%2Fsniffer%2Fsniffer_intro.html&cp=5_4
- 低版本(0.x.x)nrfutil。低版本nrfutil主要用于明文OTA/DFU时生成手机端新固件zip包,安装nRFgo studio的时候,会自动安装nrfutil,nrfutil所在目录为“C:\Program Files (x86)\Nordic Semiconductor\nRFgo Studio”。 你只需在Windows path变量(环境变量)中包含此目录,就可以直接在Windows‘Command Prompt’中执行nrfutil命令了
低版本nrfutil工作界面如下所示:
- 高版本nrfutil(>1.5.0)。高版本nrfutil用于签名OTA/DFU时生成手机端新固件 zip包,以及生成公私钥对,生成settings page,执行DFU操作等,高版本nrfutil和低版本nrfutil是两个完全不兼容的软件,使用的时候,一定要“二选一”,一般来说只有在早期的SDK9/10/11进行明文DFU的时候,才会用到低版本nrfutil,除此之外,都是要使用高版本nrfutil的。
高版本nrfutil安装说明及使用说明请参考链接:
可通过“nrfutil version”来得知当前nrfutil是高版本还是低版本,如下所示:
低版本nrfutil版本号一般为0.x.x,而高版本nrfutil版本号大于1.5.0。如果发现nrfutil版本弄错了,请通过修改Windows path变量(环境变量)来指向正确的nrfutil版本。