nRF51822上手指南
- 格式:pdf
- 大小:3.92 MB
- 文档页数:50
OHTCOMTechnology Ltd.nRF51822 Application KitnRF51822User Guide v0.9Copyright © 2013 Ohtcom Technology. All rights reserved.1 介绍nRF51822 Bluetooth® low energy/2.4 GHz Application Kit (AK) 提供了一整套的测试和应用nRF51822的解决方案。
nRF51822是nRF51 系列中的一员,它是一个超低功耗(ultra-low power),单片系统 (SoC) 的2.4 GHz 无线通信解决方案.1.1 最小系统要求• nRFgo Studio v1.14 或更高版本• Windows XP or Windows 71.2 外部资源• Keil MDK-ARM Lite v4.54或更高版本https:///demo/eval/arm.htm• J-Link Software v4.52b或更高版本/jlink-software.html1.3 Writing conventions这篇用户指南遵从了一些排版规则,这样能够使文章更加连贯,更加易于阅读。
以下是使用到的协作约定::• 命令使用Lucida Console.• 芯片管脚使用Consolas.• 文件名和用户接口使用bold.• 内部关联采用斜体并使用semi-bold.1.4 Application kit 发布说明Date Kit version Description2013年8月10日0.1Init.2013年8月19日0.2 加入蓝牙测试部分2013年8月25日0.3整合USB Dongle介绍.2013年8月26日0.31 确认使用USB Dongle下载可以解决Jlink不兼容的问题。
2013年8月28日0.4 完成度50%,增加200%的内容。
蓝牙BLE开发板ɑHooLink32CK
使用说明书
(ver1.00)
一、开发板ɑHooLink32CK介绍
本开发板采用母板和核心板分离式设计,采用2x10x2.0mm排针连接。
(核心板目前采用的IC是nRF51822/nRF51422。
)
采用这种方式,主要是考虑将来转换BLE设计平台的需要,比如切换到TI 265x,或者DA1458x,或者其他ARM核的IC;届时,只需要更换核心板即可。
母板板载JLINK V9.2硬件,并根据目前主流的蓝牙BLE方案,优化了JLINK V9.2的硬件电路。
仅包含SWD所需的RESET/SWIO/SWCLK/VCC/GND五根调试线。
在某些方案中,比如nRF51x22系列,RESET和SWIO是复用脚,所以仅4根调试线。
SWD接口采用跳线方式连接,目的是:
(一)为了可以完全隔离电源,方便评估功耗;
(二)为了可以将母板直接当做烧录器来使用,真正实现一板多用。
因此,母板包含的板载硬件有:
(1)JLINK V9.2硬件,出厂包含JLINK V9最新固件;
(2)4个轻触按键+ 1个复位键(预留);
(3)1个五向键;
(4)1个蜂鸣器,采用跳线隔离;
(5)5个LED灯,采用跳线隔离;
(6)1个1220纽扣电池盒;
(7)1个电流评估模块INA216A4(预留);
(8)1个电源切换开关,可以切换核心板的供电方式;
(9)多达8组GPIO引出接口,均采用2x6排针引出,每组引出线均包含电源和地,方便调试。
BLE-NRF51822教程3-sdk程序框架剖析【IT168 技术】本讲为框架介绍,不会牵涉到太多代码细节。
51822的官方SDK其实是没有框架依耐性的。
什么叫框架,比如TI的BLE SDK中就有一个操作系统抽象层(OSAL)他是一个轮训的调度。
你需要按照他的方式去创建任务等等。
而51822的SDK本质上只是提供了各种调用接口,比如开启初始化协议栈,初始化一些硬件功能模块,开始广播,发起链接等等。
这些接口怎么用完全取决于自己。
不过一般固件开发都是一些类似的流程各种资源的初始化,51822也不例外。
所以sdk中的作为从机的例子main函数都是类似如下的步骤:以官方的串口BLE 为例:int main(void){leds_init(); //非必须,只是该例子中用到了timers_init(); //非必须,只是该例子中用到了buttons_init(); //非必须,只是该例子中用到了uart_init(); //非必须,只是该例子中用到了串口ble_stack_init(); //必须gap_params_init(); //必须services_init(); //跟自己创建的服务相关,不同的服务细节不同但大体建立//过程基本一致,通常在直接使用官方的例子修改一些参数即可advertising_init(); //广播数据初始化,必须conn_params_init(); //是情况而定,如果连接后不需要连接参数的协商,该初始化也//可不要sec_params_init(); //安全参数初始化,如果没用到配对绑定相关这个也可以不初始化advertising_start(); //开启广播,必须// Enter main loopfor (;;){power_manage(); //进入睡眠}}可以看到其实核心必要的只有这5个函数而已。
你可以将其他代码全都去掉,只要留下这5个函数设备一样可以运行,手机也能搜到设备并与设备通信。
6月14日开发环境的搭建:/view/a9ce127908a1284ac85043dd.html前几天学习了nrf51822芯片详解/link?url=NoIPFYcVFVQiqtgcTIVDbTFKJsfSY0MnBKiQzptXa8Cirghc3ZCx2S TEduYpEMztfAdoMTN08Xf2pFZpAyJbYF_MV7NqPxyWwA1qFPkKOoW以前已将SDK,J-Link安装好。
今天开始学习nRF51822 在MDK中创建新工程/link?url=BGtmdmEEJg3lzoEFq7HB3LBTbZn2L9fD7rGiwBPYQkbR-gEQuw ScXm5L-DIMHjifN2FNsRgbQJv9uaT03cp2AnJZUbLm5htwoIbJLu8tdv7遇到如下问题:1、注:首先选择Nordic nRF51 Series Devices才能开始选择芯片类型(安装SDK才能有)。
我买的芯片上面显示nrf51822QFACA1,该选择AA还是AB?网上搜得AA与AB的区别为只是flash与运行代码大小的区别。
淘宝介绍说该芯片为256Kbflash,所以应该是QFAA。
6月15日关于JLINK用SWD模式与nrf51822的连接。
我连接的是GND(随便哪个地),VCC(pin1),TMS(pin7),TCK(pin9). 网上说可能还得接pin15的复位脚,但是我暂时没接。
接下来就是讲程序烧录看行不行。
1、有个问题,网上找的那个创建工程中并没有用户自己的文件(即像stm32中创建的时候会建立mai.c)不是很明白。
编译能通过,但是load的时候出现问题。
2、Load时出现如下错误:但是reset菜单没找到在哪里?又出现新问题:解决方法:第一次的时候没有遇到这个问题,所以可能是连线没接好,而且后来的jlink总感觉绿灯是闪亮的,很有可能是连线问题。
网上的答案:1.确保接线正确;2. 高版本jlink固件可识别出赝品jlink,而MDK5.x版本要求SEGGER固件高于V4.78,排查是否是盗版jlink导致该问题发生。
:首先入门必看资料是在讯联给的资料包里面的EK_TM入门上手资料的几个文档。
很
多人不看入门手册或者扫一下就去操作然后碰到问题又来问我,入门手册都有详细步骤。
每天重复回答这些有详细教程的问题我也没那么大精力。
Keil和jlink的一些问题看群文件2015-10月下的两个文件
keil常见问题.txt和烧写出错问题总结.txt
以下再总结一些程序运行不正常的问题。
这里的介绍都以sdk5.1为基础的。
因为协议栈和sdk的配套的。
而不同版本的协议栈大
小不同可能导致后面所说的一些地址问题不同。
这里讲的是sdk5.1sd6.0
一:程序如果下载不成功在驱动什么都装成功的情况下。
可能是以下的几个问题1:keil的烧写算法没设置
2:将板子用Nrfgo全部擦除一下。
3:供编程算法的ram太小,修改大一点。
二:程序烧写成功但是没正确运行。
1:先烧协议栈再烧程序。
2:协议栈要和sdk是配套的。
群文件中2015-8月下有一个对照文件
SDK、NRFGO stiuo、S110S120等和KEIL各个版本的匹配表
2:如果用的是5.1sdk和6.0的sd那么看一下设置是不是正确。
DFU使用笔记BLE空中升级修订历史2017-2-8K[公司地址]目录1. 概述 (1)2. 服务创建 (1)3. 操作流程 (2)3.1下载dfu Bootload (2)3.2准备升级的image (2)3.3执行升级 (2)4. 交互过程 (3)1. 概述DFU(Device Firmware Updates设备固件升级),一般指的是在产品已经发布后,通过某种方式,更改产品的固件,来完成产品的bug修复和新特性的支持。
DFU的方式有很多种,本文档只讨论使用OTA(Over-the-Air空中升级)的方式。
DFU控制器通过BLE将升级程序传输到待升级的设备中,待升级设备将自己完成固件替换,如图1.1为两者角色关系。
一般为手机APP MWV602图1.1 角色关系注:关于DFU Controler,目前使用的是nRF Toolbox工具,现在完成的进度是手机和MWV602完成两者交互过程,并没有完成协议栈分区以及Flash实际程序更新。
由于Flash变更、协议栈以及时间的关系,没有进行下一步工作。
nRF Toolbox是Nordic公司的APP,没有对源码进行任何修改,MWV602的DFU也是从官方移植过来。
蓝牙SIG组织并没有规定DFU的传输协议,由厂商自由发挥,本文档参考的是Nordic 定义的一套升级协议。
2. 服务创建DFU升级服务使用了两个特征值,一个特征值用于传输升级程序,另外一个特征值用于完成整个控制信息,两者缺一不可。
表2.1 特征值要求创建服务后的效果如图2.1所示。
图2.1 dongle发现的DFU服务3. 操作流程3.1 下载dfu Bootload打开DFU工程所在路径:{…}\jm_soc_1.1\Project\prj_dfu\Keil直接下载即可。
3.2 准备升级的image1)获取app的二进制镜像文件,在Keil环境下可添加以下命令生成。
fromelf --bin --output . <outfile.bin><infile.axf>假设生成的文件名称为ble_app_hrs.bin。
BLE-NRF51822教程3-sdk程序框架剖析【IT168 技术】本讲为框架介绍,不会牵涉到太多代码细节。
51822的官方SDK其实是没有框架依耐性的。
什么叫框架,比如TI的BLE SDK中就有一个操作系统抽象层(OSAL)他是一个轮训的调度。
你需要按照他的方式去创建任务等等。
而51822的SDK本质上只是提供了各种调用接口,比如开启初始化协议栈,初始化一些硬件功能模块,开始广播,发起链接等等。
这些接口怎么用完全取决于自己。
不过一般固件开发都是一些类似的流程各种资源的初始化,51822也不例外。
所以sdk中的作为从机的例子main函数都是类似如下的步骤:以官方的串口BLE 为例:int main(void){leds_init(); //非必须,只是该例子中用到了timers_init(); //非必须,只是该例子中用到了buttons_init(); //非必须,只是该例子中用到了uart_init(); //非必须,只是该例子中用到了串口ble_stack_init(); //必须gap_params_init(); //必须services_init(); //跟自己创建的服务相关,不同的服务细节不同但大体建立//过程基本一致,通常在直接使用官方的例子修改一些参数即可advertising_init(); //广播数据初始化,必须conn_params_init(); //是情况而定,如果连接后不需要连接参数的协商,该初始化也//可不要sec_params_init(); //安全参数初始化,如果没用到配对绑定相关这个也可以不初始化advertising_start(); //开启广播,必须// Enter main loopfor (;;){power_manage(); //进入睡眠}}可以看到其实核心必要的只有这5个函数而已。
你可以将其他代码全都去掉,只要留下这5个函数设备一样可以运行,手机也能搜到设备并与设备通信。
OHTCOMTechnology Ltd.nRF51822 Application KitnRF51822User Guide v0.9Copyright © 2013 Ohtcom Technology. All rights reserved.1 介绍nRF51822 Bluetooth® low energy/2.4 GHz Application Kit (AK) 提供了一整套的测试和应用nRF51822的解决方案。
nRF51822是nRF51 系列中的一员,它是一个超低功耗(ultra-low power),单片系统 (SoC) 的2.4 GHz 无线通信解决方案.1.1 最小系统要求• nRFgo Studio v1.14 或更高版本• Windows XP or Windows 71.2 外部资源• Keil MDK-ARM Lite v4.54或更高版本https:///demo/eval/arm.htm• J-Link Software v4.52b或更高版本/jlink-software.html1.3 Writing conventions这篇用户指南遵从了一些排版规则,这样能够使文章更加连贯,更加易于阅读。
以下是使用到的协作约定::• 命令使用Lucida Console.• 芯片管脚使用Consolas.• 文件名和用户接口使用bold.• 内部关联采用斜体并使用semi-bold.1.4 Application kit 发布说明Date Kit version Description2013年8月10日0.1Init.2013年8月19日0.2 加入蓝牙测试部分2013年8月25日0.3整合USB Dongle介绍.2013年8月26日0.31 确认使用USB Dongle下载可以解决Jlink不兼容的问题。
2013年8月28日0.4 完成度50%,增加200%的内容。
2013年8月28日0.5 完成度70%2013年8月30日0.6 完成度80%2013年8月30日下午0.7 完成度85%2013年9月5日0.8 修改一些排版错误,加入AK board和USB dongle的特点介绍2013年9月7日0.9 增加文档目录树及说明2 套件内容nRF51822 Application Kit 的硬件以及相关软件和文档。
可以从https:///overheat1984/nRF51822_STUDY处下载。
2.1 nRF51822 Application Kit + USB Dongle硬件Figure 1 nRF51822 硬件2.2 可下载的资源nRF51822 Application Kit 包括固件程序,文档,硬件原理图等。
需要索取资料者,请联系销售客服索取。
2.2.1 nRF51822 相关资料目录结构2.2.2 文件说明资料中所包含的文件说明,请详见附录A。
2.2.3 原理图PDF文件包括 Application Kit的原理图,物料清单,以及PCB。
.3 Quick s tart这一节演示了如何设置nRF51822 Application Kit ,并且提供了一个快速编程的实例。
注册, 下载, 和安装1. 如果你已经安装了Keil MDK-ARM Lite 请跳到第2步。
否则,请下载并安装Keil MDK-ARM Lite 。
https:///demo/eval/arm.htm Keil 会安装到c:\Keil\ ,除非你修改了安装路径。
2. 下载并安装J-Link for Windows /jlink-software.html可以使用518002693这个serial number来下载程序。
.3. 在安装过程中,请准确选择需要支持的IDE,之后才会正确的更新相应的SEGGER DLLs。
选择Keil MDK 和其他你想要SEGGER支持的IDE。
4. 如果你使用的是 Keil v4.54, 请登录:/IDE_Integration_Keil.html#knownproblems.下载JL2CM3 并把它copy到<keil>/ARM/Segger。
这个补丁可以使SEGGER能够正常调试程序。
5. 请联系销售客服索取资料。
6. 下载并安装nRF51 SDK,并确保选择了Keil MDK-ARM安装选项。
3.1 nRF51822 Application board (PCA10001)主要特性: • 兼容官方nRF51822-EK PCA10001.• 兼容2.4 GHz nRF24L 系列芯片• 支持Bluetooth low energy (低功耗蓝牙4.0) • 用于电流检测的Current Shunt Monitor (CSM)• PCB 印制天线• 加速度计• 陀螺仪• 微型震动马达• 五个独立可编程LED (共阴极)• 两个用户按键• 标准的4pin SWD 调试接口• 支持iOS 应用,提供源码注意:本开发板由于集成了六轴传感器MPU6050c ,震动马达,以及5个LED 等。
所以极为适合开发穿戴式设备,如计步器、体感遥控器等。
Figure 2 nRF51822 AK 3D 效果图Figure 2 nRF51822 AK 3D 效果图开始 Blinky 工程(闪灯)1. 进入 Blinky project ,在<keil path>\ARM\Device\Nordic\nRF51822\Board\PCA10001\blinky_example\arm.2. 在Keil μVision中打开 Blinky 工程,或者双击blinky.uvproj 文件。
3. 从 Select Target 下拉列表中选择nRF51822_xxaa(256K),然后点击Build 或者按键盘上的F7编译 Blinky工程。
4. 点击Load 图标,下载并运行 Blinky 演示程序。
LED 0 和LED 1 应该开始连续的闪烁了。
注意:由于Jlink固件与nordic SDK配合的问题,部分KEIL无法正常下载。
此时,请使用nRFgo Studio 左下的”nRF51 Programming”,之后点击”Program Application“选项框下载。
具体请参考3.3蓝牙低功耗接近传感器演示程序。
使用nRF51822 USB Dongle下载程序则没有上述问题。
3.2 nRF51822 USB Dongle (PCA10001)Figure 3 nRF51822 USB Dongle 3D效果图主要特性:•兼容官方nRF51822-EK PCA10000(串口数据需要外接USB转串口数据线).•兼容2.4 GHz nRF24L 系列芯片•支持Bluetooth low energy(低功耗蓝牙4.0)•PCB印制天线•RGB用户可编程LED(七彩灯,共阳极)•两个用户可编程GPIO(也可用作UART外接接口)•标准的4pin SWD调试接口•兼容Jlink V8,并支持自动升级•支持iOS应用,提供源码注意:本开发板是nRF51822的最小系统开发板,并且集成了JLINK的下载功能(无需外接JLINK下载器),所以适合外出时随身携带。
另外,与AK board配合可以完成无线组网,对AK board编程、供电等任务。
节省空间的同时节约您的资金。
USB Dongle的 Blinky 工程(多彩LED)1. 进入 Blinky project ,在 <keil path>\ARM\Device\Nordic\nRF51822\Board\PCA10001\blinky_example\arm.2. 在Keil μVision中打开 Blinky 工程,或者双击blinky.uvproj 文件。
3. 修改main函数为:int main(void){uint8_t output_state =0;// Configure LED-pins as outputsnrf_gpio_range_cfg_output(21,23);while(true){nrf_gpio_port_write(LED_PORT,~(1<<(output_state +5)));output_state =(output_state +1)&0x03;nrf_delay_ms(100);}}4. 从 Select Target 下拉列表中选择nRF51822_xxaa(256K),然后点击Build 或者按键盘上的F7编译 Blinky工程。
5. 点击Load 图标,下载并运行 Blinky 演示程序。
多彩RGB LED 应该开始连续的闪烁了。
3.3 蓝牙低功耗接近传感器演示程序本节描述了如何在SoftDevice(蓝牙协议栈)基础上,编写一个接近器(proximity)。
它会通过BLE(Bluetooth low energy)4.0发送信号,应用程序可以通判断信号强度来确定位置。
注意:该例程使用AK board或者USB dongle均可下载 SoftDevice下载S110 nRF51822 SoftDeviceFollow these steps to program your device:1. 打开n RFgo Studio.2. 在Device Manager 中选择nRF51 Programming3. 选择Program SoftDevice 标签栏.4. 点击Browse 并找到需要下载的 SoftDevice 文件(在s110_nrf51822_xxxxxx.zip内).5. 点击Program.6. 至此蓝牙协议栈下载完毕,下面演示下载上层应用程序。
注意:当下载非蓝牙程序时,如简单的“跑马灯”等,需要使用nRFgo Studio将芯片上的蓝牙协议栈擦除,才能正常下载。
编译, 下载, 并运行b l e_a pp_pr ox im i ty演示程序1. 找到ble_app_proximity 工程,路径为 <keil path>\ARM\Device\Nordic\nrf51822\board\PCA10001\ble\ble_app_proximity\arm2. 双击ble_app_proximity.uvproj文件,打开Keil μVision3. 单击Build 图标,或者按F7编译工程.4. 打开Flash菜单,并单击Download下载程序(或者点击Load 图标).5. LED 0将会闪烁,表示它正在广播。
6. iPhone手机请安装Lightblue,打开Lightblue程序。