Thread组网一:Nordic nRF21540-DK烧写hex文件进行ping测试

Posted 何事误红尘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Thread组网一:Nordic nRF21540-DK烧写hex文件进行ping测试相关的知识,希望对你有一定的参考价值。

目录

一、概述

本文主要是记录下使用Nordic nRF21540-DK板测试hread组网的过程。

二、烧写hex文件

官方是有hex测试文件的,直接烧写即可。刚开始使用nRF Command Line Tools命令行的方式烧写,后来改成更为方便的Programmer。所以舍弃2.1节,直接看2.2即可。

2.1 nRF Command Line Tools

2.1.1 安装

进入官网下载nRF Command Line Tools(单击进入)。我的电脑系统信息如下:

所以我选择了安装nrf-command-line-tools-10.15.4-x64.exe,下载后安装:

之后还会提示安装jlink:

结果报错:

最后卸载了,安装的32位nrf-command-line-tools-10.15.4-x86.exe
安装完成后,桌面和开始目录下,都没有增加什么软件。要进入安装目录C:\\Program Files (x86)\\Nordic Semiconductor\\nrf-command-line-tools\\bin,添加到电脑的环境变量中:

进入shell下查看:

测试版本:

nrfjprog -v

2.1.2 下载程序

擦除

nrfjprog -e -f UNKNOWN


烧录
我把hex文件直接拷贝到了安装目录C:\\Program Files (x86)\\Nordic Semiconductor\\nrf-command-line-tools\\bin下,省了输入路径,输入文件前几个字母,直接tab补全即可:

nrfjprog --program .\\zephyr.hex -f UNKNOWN   ;注意program前面有两个短横线


参考链接:

  1. Nordic nRF51/nRF52开发环境搭建:1.2节安装nRFx command line tools。
  2. Nordic蓝牙芯片固件擦写 – 玩转nrfjprog:参考命令。

2.2 Programmer

2.2.1 安装

进入官网下载nRF connect(单击进入


安装后如下图,继续点击安装Programmer:

2.2.2 下载程序

open进入Programmer:

先选择设备:

加载hex文件:

下载:

参考链接:

  1. Nordic nRF51/nRF52开发环境搭建:2. 推荐安装项。

三、测试程序已运行

下载完程序,如何确认程序正常运行呢?需要使用putty通过串口方式连接nRF21540-DK板。
首先安装一个putty(点击进入官网):

下载后无需安装,直接运行。通过串口连接开发板,速率选为115200:

连接后显示如下信息,则说明程序已经运行(当然,这个应该和下载的程序有关):

参考链接:

  1. PuTTY的下载安装和基本使用方法教程

四、Thread组网ping测试

测试需要在putty终端输入命令行,官方网站有启动方法:点击进入。滑到中间部分可以到:

channel panid networkkey 这三个参数一样,就可以入同一个网络。

//不带参数,为查询指令
ot channel
ot panid 
ot networkkey

//带参数,为设置指令
ot channel 11 
ot panid 0xabcd
ot networkkey 00112233445566778899aabbccddeeff

所以在两个板子的putty终端分别输入:

重复输入比较麻烦,可以把指令单独存放在记事本,每次复制指令后,在终端鼠标右键一下,就完成粘贴了。设置完成后,需要启用 Thread 网络:

ot ifconfig up
ot thread start

仍然是在两个板子的putty终端分别输入:

现在两个板子应该是在同一网络了,使用ping指令进行测试。相关指令如下:

  1. 获取当前 Thread 网络的 IP 地址:
    ot ipaddr
    
  2. 使用ping指令进行测试:
    ot ping fdde:ad00:beef:0:a3dd:2a74:67c9:43e4 
    

ping指令结果如下:

压力测试1000次指令如下:

ot ping fdde:ad00:beef:0:a3dd:2a74:67c9:43e4 100 1000 1 1

想要了解ping指令各参数的含义:点击进入,可以看到参数定义和解释:

五、ping失败

一版程序测试过程中,发现ping失败了:

和FAE沟通,查询两个都是leader。怀疑是设置的参数没有生效,需要ot factoryreset指令进行reset,然后重新设置参数。不过查看参数是生效的,reset后重新设置仍然是两个leader:

查看之前ping通的程序,应该是一个leader,其他是child状态:

最终更新了一版本程序。

六、总结

用到的指令如下:

//查询指令
ot channel
ot panid 
ot networkkey

//设置指令
ot channel 11 
ot panid 0xabcd
ot networkkey 00112233445566778899aabbccddeeff

//开启网络
ot ifconfig up
ot thread start
ot state
ot ipaddr

ot dataset active //重设一下,然后ot dataset commit active,存储参数
ot factoryreset	//reset,之后重新设置panid,channel,networkkey

以上是关于Thread组网一:Nordic nRF21540-DK烧写hex文件进行ping测试的主要内容,如果未能解决你的问题,请参考以下文章

Thread组网一:Nordic nRF21540-DK烧写hex文件进行ping测试

NRF52833蓝牙5.1可用于105℃环境温度的Nordic蓝牙5.1 SoC能实现更广泛的并发多协议低功耗蓝牙mesh和Thread应用

Thread组网二:nRF Connect SDK的安装和VS Code编译工程

Thread组网二:nRF Connect SDK的安装和VS Code编译工程

Thread组网二:nRF Connect SDK的安装和VS Code开发环境搭建

Nordic nRF51/nRF52硬件开发流程说明