一.安装准备
1.keil5软件以及破解器
2.nordic52系列MDK硬件包:http://www.nordicsemi.com/eng/content/search?SearchText=Pack&SearchButton=Search
历史版本硬件包:http://developer.nordicsemi.com/nRF51_SDK/pieces/nRF_DeviceFamilyPack/
3.52810 SDK :http://www.nordicsemi.com/eng/Products/Bluetooth-low-energy/nRF52-DK
历史版本:https://developer.nordicsemi.com/nRF5_SDK/
4.python 环境的安装:
https://download.csdn.net/download/huitailang_1_1/10510394
注意:3个依次安装,安装好nrfutil后需要在环境变量中添加路径C:\Python27和C:\Python27\Scripts(注意使用上述链接中的python-2.7.13.amd64版本python才有scripts文件夹),不然是无法使用nrfutil包的
5.52810 蓝牙协议栈:
这里使用的是s112版本,需要注意的是目前nordic给提供的有两个版本的协议栈,S112和S132,区别如下:
翻译一下:
S112:
1.支持蓝牙5.0,2M的数据传输速度;
2.支持从机(x2我理解为最多支持同时被两个设备连接),广播这角色;
3.2#信道选择算法;
4.支持数据吞吐量扩展(TI的26xx系列25xx系列最多20个字节,nordic的ATT MTU可设置长度可达到251bytle)
https://www.nordicsemi.com/eng/News/News-releases/Product-Related-News/Production-ready-Nordic-S132-SoftDevice-boosts-Bluetooth-low-energy-data-throughput-by-400-and-protects-users-from-unauthorized-location-tracking/(language)/eng-GB
5.链路层ping检查;
6.1.2版本的私密保护协议;
s112协议栈提供独立的协议栈可烧录二进制文件,协议栈大小烧录文件大小约为100KB;协议栈与应用分隔独立;
s132:
1.支持蓝牙5.0,2M的数据传输速度;
2.支持主机、从机、广播者、观察者四个角色;
3.所有蓝牙角色最多连接20个设备;
4.支持数据吞吐量扩展(TI的26xx系列25xx系列最多20个字节,nordic的ATT MTU可设置长度可达到251bytle)
https://www.nordicsemi.com/eng/News/News-releases/Product-Related-News/Production-ready-Nordic-S132-SoftDevice-boosts-Bluetooth-low-energy-data-throughput-by-400-and-protects-users-from-unauthorized-location-tracking/(language)/eng-GB
5.支持数据包扩展;
6.低功耗安全链接;
7.链路层通断检查;
8.连接层私密保护协议;
9.逻辑链路控制适配支持;
s132协议栈与应用完全分离,只提供一个可烧录的二进制文件。
6.NRFgo Studio :https://www.nordicsemi.com/eng/Products/nRF52810/(language)/eng-GB
7.command line tool,用于安装segger jlink驱动。需要提醒的是,可能nrfgo studio不能对芯片识别,这个时候检查jlink连接路线,若线路连接正常则有可能是segger link的驱动没有装好,重装驱动不一定有用。这个是时候就要将nrfgo studio软件和segger link驱动卸载,注册表里的segger文件夹删掉,然后安装command line tool工具,再重新安装NRFgo Studio 。
http://www.nordicsemi.com/eng/content/search?SearchText=NRF5X
8.logo的使用,SDK的uart工程本身就是带有logo的,logo的使用:在安装好NRFgo Studio和command line tool 工具后会出现一个segger程序群,里边的link下有一个j-linkRTT viewer程序。52810的板子使用jlink下好程序后不要拔掉link以及接线,打开j-linkRTT viewer程序,选择好芯片型号就可以了看到打印的信息了。
二.工程试水
1.编译
一般的从机项目工程都是从串口工程 ble_app_uart 开始的,基于这个框架进行修改。打开 ble_app_uart 后进行编译(注意工程路径为D:安装路径\examples\ble_peripheral\ble_app_uart\pca10040e\s112\arm5_no_packs,是arm5_no_packs),可能会报错找不到core_cm4.h文件。针对这个问题在options选项卡的C/C++里面添加这文件的文件路径就好了,路径为nRF5_SDK_14.2.0_17b948a\components\toolchain\cmsis\include
2.下载
下载工具:ARM仿真器,使用其中的swd;
对接板子的vcc,gnd,dio,clk到仿真器上即可,验证是否连接成功方式:使用软件
出现如下内存分配显示,表示板子与电脑连接成功,可以烧录(一般为keil和nrfgo studio两种烧录方式)
keil烧录
打开工程的时候其实协议栈的工程路径也进来了。如下图,nrf52810_xxaa表示的是应用工程,flash_s112nrf52810_表示的是协议栈工程,但是nordic是不提供协议栈源码的,只提供烧录文件。所以这个入口等于是给同学们的一个调试窗口,下拉到协议栈工程进行下载,就能下载协议栈了。
下载程序可能会遇到找不到设备等情况,这里解决方式是先在options选项卡里的device选上25810硬件,在debug里的setting里的flash download中add相应的flash分配算法(我理解为决定芯片哪个内存地址烧哪一段程序)。
3.DFU
1.安卓升级使用的SDK:https://github.com/NordicSemiconductor
2.安装Python,在Python里安装nordic专门用于升级的加密包,详见《SDK12空中升级详细步骤操作》 :
https://download.csdn.net/download/ccdehuiji/9819441
https://www.cnblogs.com/iini/p/9314246.html