Nordic官网:https://www.nordicsemi.com/chi_simple
nRF51822 是功能强大、高灵活性的多协议 SoC,非常适用于 Bluetooth® 低功耗和 2.4GHz 超低功耗无线应用。 nRF51822 基于配备 256kB flash + 16kB RAM 的 32 位 ARM® Cortex™ M0 CPU 而构建。 嵌入式 2.4GHz 收发器支持蓝牙低功耗及 2.4GHz 操作,其中 2.4GHz 模式与 Nordic Semiconductor 的 nRF24L 系列产品无线兼容。
nRF51822 还具备丰富的模拟和数字周边产品,可以在无需 CPU 参与的情况下通过可编程周边产品互联 (PPI) 系统进行互动。 灵活的 31 引脚 GPIO 映射方案可使 I/O(例如串行接口、PWM 和正弦解调器)根据 PCB 需求指示映射到任何设备引脚。 这可实现完全的设计灵活性及引脚位置和功能。
nRF51822 支持 S110 蓝牙低功耗协议堆栈及 2.4GHz 协议堆栈(包括 Gazell),这两种协议堆栈在 nRF518 软件开发套件中均免费提供。nRF51822 需要单独供电,如果供电范围在 1.8-3.6V 之间,用户可选择使用芯片上的线性整流器,如果供电范围在 2.1-3.6V 之间,可以选择直流 1.8V 模式和芯片上的 DCDC 变压器。DC-DC 变压器的使用可在工作期间动态控制,并使 nRF51822 工作期间的射频峰值电流低于 10 mA @ 3V 供电 (TX @ 0 dBm & RX)。
nRF51822 具有 6x6mm 48 引脚 QFN 封装和 3.5x3.8mm 64 球形晶片水平芯片级封装 (WLCSP)。
nRF51822 提供 256k 或 128kB Flash 容量的不同版本。
低功耗
- 6.3mA - TX at -4dBm (3V using on-chip DC-DC)
- 8.0mA - TX at 0dBm (3V using on-chip DC-DC)
- 11.8mA – TX at +4dBm (3V using on-chip DC-DC)
- 9.7mA – RX (3V using on-chip DC-DC)
- 13mA – RX at 1Mbps (No DC-DC)
- 10.5mA – TX at 0dBm (No DC-DC)
- 0.6µA – SYSTEM-OFF, no RAM retention
- 1.2µA - SYSTEM-OFF, 8KB RAM retention
- 2.6µA - SYSTEM-ON, All peripherals in idle mode
- +4dBm to -20dBm output powerin 4dBm steps
- -30dBm output power in whisper mode
- -96dBm RX sensitivity at 250kbs
- -90dBm RX sensitivity at 1Mbps
- -85dBm RX sensitivity at 2Mbps
- 2 Mbps, 1 Mbps and 250kbs supported data rates
- Excellent co-existence performance
- 32-bit ARM® Cortex™ M0 32-bit CPU
- 256/128KB embedded flash
- 32KB/16KB RAM
- 3 x 16/24-bit 带计数器模式的定时器
- 16 通道可编程周边产品互联 (PPI) 系统
- Encryption -128-bit AES ECB/CCM/AAR协处理器
- 随机数发生器(RNG)
- 实时时钟(RTC)
- 温度传感器
- 可随意映射的GPIO引脚配置
- 31个可用GPIO
- 4路PWM
- SPI-主/从, IIC, UART
- 正交解码器
关于正交解码器:正交解码器用于正交编码器的输出,正交解码器感应对象(鼠标,轨迹球,自动控制轴等)的当前位置,轨迹,速度和方向。
此外,正交解码器还用于精确测量点机转子的速度,加速度和位置,并结合旋钮确定用户的输入。
- 8/9/10 bit ADC – 8个可配置通道
- 低功耗的比较器
- 16MHz XO
- 16MHz RCOSC
- 32MHx XO
- 32kHz XO
- 32kHz RCOSC
- 宽电压范围 (1.8v to 3.6V)
- 灵活的电源管理组合
- 内置 DC/DC 转换器
- 600nA @ 3V OFF mode
- 2.6µA @ 3V ON mode, all blocks in idle mode
- 1.2µA @ 3V OFF mode + 1 region RAM retention
Nordic提供了一系列的HW和SW工具,用户可以用这些工具来做软件开发和调试。
Nordic 硬件
NRF51822的硬件开发工具包括开发板和USB DONGLE两个版本。nRF51 DK和nRF51DONGLE包含了nRF51822和nRF51422 SoCs,支持蓝牙智能、ANT和2.4 GHz的专有技术开发。
nRF51 DK
nRF51 DK是一个多功能的单板开发工具包,通过Arduino UNO兼容的插座或标准的pin头,提供所有nRF51系列IO的访问权限。nRF51 DK支持通过Jlink(Segger OB)和Mbed进行编程和调试。 |
nRF51 Dongle
nRF51 Dongle是一个小型的USB接口,它具有与nRF51 DK相同的程序和调试功能。它的主要目的是与基于PC的开发工具和Nordic的实用工具进行交互,使其可以作为原型设备使用,用于监视空中交通,也可以看成实是一个超小型的开发板。 |
参考layouts
由于nRF51系列设备都是无线通信的SoCs,所以PCB布局的质量是最重要的,以确保良好的无线电性能。官方的nRF51参考布局可以在官网下载到。
软件
软件分为两个主要部分:
nRF51 SDK
nRF51软件开发工具包(SDK)是nRF51系列软件开发的起点。它包含源代码库和示例应用程序,包括:
- 无线和应用程序示例
- 蓝牙智能和ANT+配置文件
- Nordic的2.4 GHz专有堆栈Gazell
- NRF51的所有外设库
- Bootloaders
- 有线和空中(OTA)FW升级
- RTOS 用例
- Nordic软设备的序列化库
nRF51 SDK建立在ARM的CMSIS标准之上,并支持以下的SW开发工具:
- Keil MDK-ARM
- GCC
- IAR Embedded Workbench
- ARM mbed
常用的为KEIL MDK
SDK可在官网下载
工具
Nordic提供了一系列工具,使用户能够与原型/产品进行交互和监视:
工具 | 描述 |
nRFgo Studio | PC工具,允许在nRF51设备上编程和无线电性能测试 |
Master Control Panel | 一个对等设备模拟器,它允许您直接连接到产品中的蓝牙服务,并与之直接交互。这是一个很好的工具来检查你的产品以正确的方式识别自己和它的功能,并测试它如何响应对等设备中的正确和不正确的操作。 MCP是Windows PC的应用程序(使用nrf51-dongle)。 |
nRF Master Control Panel | 一种强大的通用工具,可以让你扫描和探索你的蓝牙智能设备,并与它们进行交流。nRF MCP是一个在Android上的应用程序。 |
ANTware | 一个用于在PC上运行的ANT协议的对等设备模拟器,它与nrf51-dongle一起运行。这是一个很好的工具,可以检查您的产品是否能够识别自己和它的功能,以及它如何响应对等设备中的正确和错误的操作。 |
nRF Sniffer | 如果与3个蓝牙智能就绪对等点的通信不像预期的那样工作,nRF Sniffer使您能够通过链路建立、安全协商来监视您和对等点之间的所有空中通信。 |
nRF51-BLE-Driver | 将MCP与nRF51适配器连接起来的Windows dll。为PC应用程序提供了一个类似于我们的软设备的API,使它成为您自己的基于PC的测试和演示工具的理想选择。 |
nRFjprog (part of nRF51 toolset installer) | 命令行实用程序,通过Jlink编程器/调试器支持nRF51设备的编程。 |
Mergehex (part of nRF51 toolset installer) | 由于Nordic的软件预编译的是hex文件,在添加您自己的应用程序时,至少会生成2个HEX文件, mergehex是一个命令行实用程序,可以将多个hex文件合并到一个。 |
JlinkARM (part of nRF51 toolset installer) | jlink调试器的驱动程序 |
可以在官网找到相关工具。
软件开发准备
-
- 开发板
- SDK
- 协议栈
- NRF GO STUDIO
- KEIL MDK
首先安装KEIL MDK5.0以上版本,破解。
然后安装NRF GO STUDIO.
开发板第一次下载程序的时候,需要使用NRF GO烧录协议栈。
然后用KEIL MDK打开SDK中的例程,编译完点击load即可下载程序到芯片内部FLASH.
注意: Nordic的SDK和协议栈是分开的,并且协议栈版本和SDK版本需要对应才可以使用,当你第一次下载协议栈到芯片的内部FLASH中时,如果下一次使用了不一样版本的SDK,需要先用NRF GO STUDIO擦除协议栈才可以使用。