首頁 > 評測 > BLE 5遇見96Boards——BLE Nitrogen評測

BLE 5遇見96Boards——BLE Nitrogen評測

BLE5   96Boards   Nitrogen   Linux   Nordic   nRF52832   
  • 作者:SATURN
  • 來源:
  • [導(dǎo)讀]
  • 雖然是一個(gè)小板子,但是受到了我們的關(guān)注,有幾個(gè)重要的點(diǎn):1-這是一款96boards, 2-搭載了Nordic nRF52832實(shí)現(xiàn)BLE5的功能,3-使用Zephyr做為開發(fā)環(huán)境。不過BLE Nitrogen的GPIO口采用1.8V輸出,這是我們的一個(gè)黑點(diǎn)。。。

 什么是96Boards?

96的意思就是32+64,即32位和64位的統(tǒng)稱,96Boards起源于Arm的Linaro開源系統(tǒng),通過Linux操作系統(tǒng)(Linux86framework),GCC編譯系統(tǒng),電池管理和多媒體接口等軟件加速ARM軟件開發(fā) 。2015年推出96Boards,提供了一系列的軟件、硬件規(guī)范,旨在將不同類型的SoC統(tǒng)一在96Boards規(guī)范之下,提高開發(fā)效率,消除各SoC各自為政的狀態(tài)。

96Boards目前制定了三種類型的產(chǎn)品,即

• ConSumer Edition,面向手機(jī)、家庭數(shù)字類產(chǎn)品

• Enterprise Edition,主要面向網(wǎng)絡(luò)及服務(wù)器等產(chǎn)品

• IoT Edition,主要面向物聯(lián)網(wǎng)類產(chǎn)品

今天的BLE Nitrogen是IoT Edtion的一員,采用Nordic的nRF52832微控制器,64kb RAM和512kb板載閃存。易于訪問的40針低速擴(kuò)展連接器和板載天線,標(biāo)準(zhǔn)96Board IoT外形尺寸上提供各種了引出的GPIO接口。

rId21.jpg

Nitrogen開發(fā)板的尺寸大小為60x30mm,標(biāo)準(zhǔn)大小,可以參考96板IE的規(guī)格,如下

rId22.png

事實(shí)上,所有IE版本的96Board都要遵循這一規(guī)范,這樣,不管是什么類型的IE開發(fā)板,在外觀和接口上都是一致的。

rId23.jpg

背面的96Boards標(biāo)志,很是醒目,這個(gè)可是需要認(rèn)證的,不是想刷就能刷!

rId24.jpg

主角當(dāng)然是nRF52832,nRF52832 SoC是一款功能強(qiáng)大,高度靈活的超低功耗多協(xié)議SoC,非常適合藍(lán)牙低功耗,ANT和2.4GHz超低功耗無線應(yīng)用。nRF52832 SoC采用32位ARM®Cortex™-M4F CPU構(gòu)建,具有512kB + 64kB RAM。內(nèi)置2.4GHz收發(fā)器支持藍(lán)牙低功耗,ANT和專有的2.4 GHz協(xié)議棧。它與Nordic Semiconductor的nRF51系列,nRF24L和nRF24AP系列產(chǎn)品兼容。 nRF52832具有用于藍(lán)牙5的片上硬件支持。這包括高吞吐量和廣告擴(kuò)展。 nRF52832采用6x6mm 48引腳QFN封裝和3.0x3.2mm超緊湊晶圓級芯片級封裝(WL-CSP)。

nRF52832采用功能強(qiáng)大的Cortex-M4F處理器,工作主頻為64MHz,可在單芯片解決方案中實(shí)現(xiàn)具有復(fù)雜算術(shù)要求的最苛刻應(yīng)用。該IC支持DSP指令,浮點(diǎn)單元(FPU),單周期乘法和累加,以及用于計(jì)算復(fù)雜操作的節(jié)能過程的硬件劃分。

最后一點(diǎn)特別重要,96Boards使用1.8V作為接口電壓,Nitrogen當(dāng)然也是,如果要連接常用的3.3V/5V外設(shè)的話,需要level shifter來進(jìn)行轉(zhuǎn)換。

Nitrogen使用時(shí)下風(fēng)頭正勁的Zephyr做為開發(fā)環(huán)境。

Zephyr項(xiàng)目是一個(gè)可擴(kuò)展的實(shí)時(shí)操作系統(tǒng)(RTOS),支持多種硬件架構(gòu),針對資源受限的設(shè)備進(jìn)行了優(yōu)化,并在構(gòu)建時(shí)考慮了安全性。Zephyr OS使用極小的內(nèi)核尺寸,專為資源受限的系統(tǒng)而設(shè)計(jì),從簡單的嵌入式環(huán)境傳感器到復(fù)雜的智能手表和物聯(lián)網(wǎng)無線網(wǎng)關(guān)均可使用。

Zephyr內(nèi)核支持多種體系結(jié)構(gòu),包括ARM Cortex-M,Intel x86,ARC,NIOS II,Tensilica Xtensa和RISC V,以及大量 的開發(fā)板,因?yàn)殚_源和良好的社區(qū)支持,目前有更多的開發(fā)板廠商正投入到Zephyr的懷抱當(dāng)中。

Zephyr的開發(fā)環(huán)境搭建需要一個(gè)Linux系統(tǒng),無論是物理的還是虛擬的,都可以勝任。只是在虛擬環(huán)境下,有些設(shè)備的驅(qū)動(dòng)不一定能支持,所以最好的選擇還是準(zhǔn)備一臺(tái)真正的Linux系統(tǒng),本次測試使用Ubuntu 18來做為測試環(huán)境。

首先,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的使用環(huán)境,即使用交叉編譯模式來編譯代碼,宿主機(jī)大多都是X86。

其實(shí)需要安裝相關(guān)的依賴,如下

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是用來燒錄代碼的組件,注意安裝的時(shí)候使用全局安裝,小編在測試的時(shí)候使用了--user選項(xiàng)來安裝時(shí),會(huì)提示找不到pyocd-flashtool。

這樣準(zhǔn)備后,編譯用的工具鏈就基本準(zhǔn)備好了!

接下來從Github上開始把Zephyr拉下來,里面包括大量的代碼,有通用的,有板級BSP,當(dāng)然也包括大量的示例代碼,這些就是我們熟悉一個(gè)新硬件最快速有效的入口點(diǎn)了。

接下來使用Zephyr來體驗(yàn)兩件事:點(diǎn)個(gè)燈!再體驗(yàn)下BLE功能!

前面提及,96Boards使用的GPIO接口電壓均為1.8V,是不是點(diǎn)個(gè)燈都得必須搭建個(gè)電路?好在Nitrogen板載了一個(gè)LED,示例中的代碼也是使用這個(gè)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原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開放投稿

熱門標(biāo)簽
項(xiàng)目外包 more+