首页 > 评测 > BLE 5遇见96Boards——BLE Nitrogen评测

BLE 5遇见96Boards——BLE Nitrogen评测

BLE5   96Boards   Nitrogen   Linux   Nordic   nRF52832   
  • 作者:SATURN
  • 来源:
  • [导读]
  • 虽然是一个小板子,但是受到了我们的关注,有几个重要的点:1-这是一款96boards, 2-搭载了Nordic nRF52832实现BLE5的功能,3-使用Zephyr做为开发环境。不过BLE Nitrogen的GPIO口采用1.8V输出,这是我们的一个黑点。。。

 什么是96Boards?

96的意思就是32+64,即32位和64位的统称,96Boards起源于Arm的Linaro开源系统,通过Linux操作系统(Linux86framework),GCC编译系统,电池管理和多媒体接口等软件加速ARM软件开发 。2015年推出96Boards,提供了一系列的软件、硬件规范,旨在将不同类型的SoC统一在96Boards规范之下,提高开发效率,消除各SoC各自为政的状态。

96Boards目前制定了三种类型的产品,即

• ConSumer Edition,面向手机、家庭数字类产品

• Enterprise Edition,主要面向网络及服务器等产品

• IoT Edition,主要面向物联网类产品

今天的BLE Nitrogen是IoT Edtion的一员,采用Nordic的nRF52832微控制器,64kb RAM和512kb板载闪存。易于访问的40针低速扩展连接器和板载天线,标准96Board IoT外形尺寸上提供各种了引出的GPIO接口。

rId21.jpg

Nitrogen开发板的尺寸大小为60x30mm,标准大小,可以参考96板IE的规格,如下

rId22.png

事实上,所有IE版本的96Board都要遵循这一规范,这样,不管是什么类型的IE开发板,在外观和接口上都是一致的。

rId23.jpg

背面的96Boards标志,很是醒目,这个可是需要认证的,不是想刷就能刷!

rId24.jpg

主角当然是nRF52832,nRF52832 SoC是一款功能强大,高度灵活的超低功耗多协议SoC,非常适合蓝牙低功耗,ANT和2.4GHz超低功耗无线应用。nRF52832 SoC采用32位ARM®Cortex™-M4F CPU构建,具有512kB + 64kB RAM。内置2.4GHz收发器支持蓝牙低功耗,ANT和专有的2.4 GHz协议栈。它与Nordic Semiconductor的nRF51系列,nRF24L和nRF24AP系列产品兼容。 nRF52832具有用于蓝牙5的片上硬件支持。这包括高吞吐量和广告扩展。 nRF52832采用6x6mm 48引脚QFN封装和3.0x3.2mm超紧凑晶圆级芯片级封装(WL-CSP)。

nRF52832采用功能强大的Cortex-M4F处理器,工作主频为64MHz,可在单芯片解决方案中实现具有复杂算术要求的最苛刻应用。该IC支持DSP指令,浮点单元(FPU),单周期乘法和累加,以及用于计算复杂操作的节能过程的硬件划分。

最后一点特别重要,96Boards使用1.8V作为接口电压,Nitrogen当然也是,如果要连接常用的3.3V/5V外设的话,需要level shifter来进行转换。

Nitrogen使用时下风头正劲的Zephyr做为开发环境。

Zephyr项目是一个可扩展的实时操作系统(RTOS),支持多种硬件架构,针对资源受限的设备进行了优化,并在构建时考虑了安全性。Zephyr OS使用极小的内核尺寸,专为资源受限的系统而设计,从简单的嵌入式环境传感器到复杂的智能手表和物联网无线网关均可使用。

Zephyr内核支持多种体系结构,包括ARM Cortex-M,Intel x86,ARC,NIOS II,Tensilica Xtensa和RISC V,以及大量 的开发板,因为开源和良好的社区支持,目前有更多的开发板厂商正投入到Zephyr的怀抱当中。

Zephyr的开发环境搭建需要一个Linux系统,无论是物理的还是虚拟的,都可以胜任。只是在虚拟环境下,有些设备的驱动不一定能支持,所以最好的选择还是准备一台真正的Linux系统,本次测试使用Ubuntu 18来做为测试环境。

首先,Zephyr有自己专用的工具链,不过也可以使用arm-none-eabi来编译代码

# On Debian or Ubuntu

sudo apt-get install gcc-arm-none-eabi

# On Linux

unset GCCARMEMB_TOOLCHAIN_PATH

export ZEPHYR_TOOLCHAIN_VARIANT=cross-compile

export CROSS_COMPILE=/usr/bin/arm-none-eabi-

后面的代码是配置GCC的使用环境,即使用交叉编译模式来编译代码,宿主机大多都是X86。

其实需要安装相关的依赖,如下

sudo apt-get install --no-install-recommends git cmake ninja-build gperf \

ccache doxygen dfu-util device-tree-compiler \

python3-ply python3-pip python3-setuptools python3-wheel xz-utils file \

make gcc-multilib autoconf automake libtool

pip3 install --user -r scripts/requirements.txt

# install pyocd

sudo pip3 install pyocd

最后的pyocd是用来烧录代码的组件,注意安装的时候使用全局安装,小编在测试的时候使用了--user选项来安装时,会提示找不到pyocd-flashtool。

这样准备后,编译用的工具链就基本准备好了!

接下来从Github上开始把Zephyr拉下来,里面包括大量的代码,有通用的,有板级BSP,当然也包括大量的示例代码,这些就是我们熟悉一个新硬件最快速有效的入口点了。

接下来使用Zephyr来体验两件事:点个灯!再体验下BLE功能!

前面提及,96Boards使用的GPIO接口电压均为1.8V,是不是点个灯都得必须搭建个电路?好在Nitrogen板载了一个LED,示例中的代码也是使用这个LED来Blink,也就没问题了。

看代码,顺便熟悉下Zephyr的工作模式

/*

* Copyright (c) 2016 Intel Corporation

*

* SPDX-License-Identifier: Apache-2.0

*/

#include

#include

#include

#include

/* Change this if you have an LED connected to a custom port */

  • 本文系21ic原创,未经许可禁止转载!

网友评论