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前面有两个短横线
参考链接:
- Nordic nRF51/nRF52开发环境搭建:1.2节安装nRFx command line tools。
- Nordic蓝牙芯片固件擦写 – 玩转nrfjprog:参考命令。
2.2 Programmer
2.2.1 安装
进入官网下载nRF connect(单击进入)
安装后如下图,继续点击安装Programmer:
2.2.2 下载程序
open进入Programmer:
先选择设备:
加载hex文件:
下载:
参考链接:
- Nordic nRF51/nRF52开发环境搭建:2. 推荐安装项。
三、测试程序已运行
下载完程序,如何确认程序正常运行呢?需要使用putty通过串口方式连接nRF21540-DK板。
首先安装一个putty(点击进入官网):
下载后无需安装,直接运行。通过串口连接开发板,速率选为115200:
连接后显示如下信息,则说明程序已经运行(当然,这个应该和下载的程序有关):
参考链接:
四、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指令进行测试。相关指令如下:
- 获取当前 Thread 网络的 IP 地址:
ot ipaddr
- 使用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编译工程