首页 > 编程学习 > CC2540的手机HTML5,实测对比CC2540 BTool和nRF Connect在nRF52840 Dongle的BTool测试

9549373cefd35f1667c0eb533a4a68e8.png

BTool是一个用于蓝牙设备调试的PC软件工具,工作在Central/Master 。它可以让用户通过PC软件同Peripheral/Slave BLE设备之间建立连接。在测试蓝牙模块的直驱功能时,使用BTool可以快速开发模块的功能,缩短研发周期。

市面上主流的BTool软件有几款,CC2540 BTool和nRF Connect for Desktop较为常用,两者的BTool直驱测试体验如何,本文具体对比了CC2540 BTool和nRF Connect for Desktop的使用体验。

CC2540 BTool和nRF Connect for Desktop的体验对比如下:

1.nRF Connect for Desktop可以同时连接多个从机,并进行直驱命令操作。而CC2540 BTool只能挨个切换设备进行直驱操作。

2. nRF Connect for Desktop的直驱操作更为精简,CC2540 BTool的直驱操作非常繁复。

3. nRF Connect for Desktop优化的界面设计,易于查看关键信息。

在测试中,我们选用了信驰达科技基于nRF52840的RF-DG-40A硬件BTool工具,其性能、稳定性上要好于TI的CC2540 USB Dongle硬件,各位电子工程师们可以尝试一下这款RF-DG-40A。

当然本文重点是软件方面的实测对比,具体的测试分析过程请看下面。

首先我们需要在测试前做好软硬件准备。

本文测试中需要准备的硬件有:CC2540 USB Dongle,RF-DG-40A,信驰达科技的RF-Module EB CC254x开发套件。

准备的软件有CC2540 BTool和nRF Connect for Desktop。

一、CC2540 BTool直驱功能测试

硬件准备:CC2540 USB Dongle,RF-Module EB CC254x开发套件

软件准备:CC2540 BTool

BTool的下载链接:https://www.szrfstar.com/downloadnda/568-cn.html

在软硬件准备好之后,我们开始CC2540 BTool软件的直驱测试:

1.安装好CC2540 BTool后,将RF-Module EB CC254x开发套件上电,打开软件CC2540 BTool,确认COM号,点击OK。

9549373cefd35f1667c0eb533a4a68e8.png

2、点击Scan扫描设备,

gif;base64,R0lGODlhAQABAIAAAP

3、在Slave BAD根据MAC地址选择要连接的设备

gif;base64,R0lGODlhAQABAIAAAP

4、点击Establish连接,连接成功后在左侧会显示已连接的设备,点击Read/Write。

gif;base64,R0lGODlhAQABAIAAAP

对蓝牙模块进行直驱测试前,我们需要进行最基础的通信测试,即透传测试。

利用蓝牙模块RF-Module EB CC254x给BTool发送数据

1、在Sub-Procedure选择 Discover Characteristic by UUID,在Characteristic UUID 输入E4:FF点击Read。Status 显示Success。

gif;base64,R0lGODlhAQABAIAAAP

2、在Characteristic Value Handle 输入0x000F 在Value输入 01 00 ,点击 Write ,Status 显示Success。

gif;base64,R0lGODlhAQABAIAAAP

3、此时通过串口助手采用16进制发送的31 32 33 34 34 36 37,此时消息框中出现发送的数据。

gif;base64,R0lGODlhAQABAIAAAP

串口发送数据,BTool端接收成功后,我们测试BTOOL向蓝牙模块发送数据。

1.在Characteristic UUID 输入E9:FF点击Read。Status 显示Success,在Characteristic Value Handle 输入0x0013 在Value输入发送的数据 11 33 66 99 ,点击 Write ,Status 显示Success,串口助手显示11 33 66 99。

gif;base64,R0lGODlhAQABAIAAAP

基础的通信测试成功后,正式开始直驱功能测试。

1.PWM功能测试:

1.1 Characteristic Read中在Sub-Procedure选择 Read Using Characteristic by UUID,在Characteristic UUID 输入B1:FF,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x004D,在Value中输入01 ,点击Write,初始化全高脉宽输出。

gif;base64,R0lGODlhAQABAIAAAP

1.2 在Characteristic UUID 输入B2:FF,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x0050,在Value中输入00 00 00 00 ,点击Write,开发板的小灯亮了起来。

gif;base64,R0lGODlhAQABAIAAAP

1.3 在Characteristic UUID 输入B2:FF,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x0050,在Value中输入EE EE EE EE ,点击Write,开发板的小灯暗了一些。

gif;base64,R0lGODlhAQABAIAAAP

2.ADC功能测试

2.1 在Characteristic UUID 输入D1:FF,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x0036,在Value中输入03,点击Write,开启两路ADC。

gif;base64,R0lGODlhAQABAIAAAP

2.2 在Characteristic UUID 输入D2:FF,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x0039,在Value中输入01 F4(500ms),点击Write,设置采样周期。

gif;base64,R0lGODlhAQABAIAAAP

2.3 在Characteristic UUID 输入D4:FF,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x0041,在Value中输入01 00,采集一路ADC数据。

gif;base64,R0lGODlhAQABAIAAAP

3.IO电平采集

3.1 在Characteristic UUID 输入F1:FF,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x0017,在Value输入00 设置所有普通I/O口为输入口。

gif;base64,R0lGODlhAQABAIAAAP

3.2 在Characteristic UUID 输入F3:FF,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x001E,在Value输入01 00,点击Write,当有电平变化时,消息框就会输出值,按下开发板上的按键,电平值从3F(00111111)变化为3E(00111110)。

gif;base64,R0lGODlhAQABAIAAAP

4.定时翻转

4.1 在Characteristic UUID 输入F1:FF,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x0017,在Value输入FF,点击Write.将I/0口设置为输入口。

gif;base64,R0lGODlhAQABAIAAAP

4.2 在Characteristic UUID 输入F5:FF,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x0024,在Value输入05 DC(1.5S),点击Write。

gif;base64,R0lGODlhAQABAIAAAP

4.3 在Characteristic UUID 输入F4:FF,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x0021,在Value输入05 DC(1.5S),点击Write.可以见到开发板上连接I06的小灯以1.5S的间隔亮灭。

gif;base64,R0lGODlhAQABAIAAAP

4.4 在Characteristic UUID 输入F7:FF,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x002A,在Value输入05 DC(1.5S),点击Write。

gif;base64,R0lGODlhAQABAIAAAP

4.5 在Characteristic UUID 输入F6:FF,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x0027,在Value输入05 DC(1.5S),点击Write.可以见到开发板上连接I07的小灯以1.5S的间隔亮灭。

gif;base64,R0lGODlhAQABAIAAAP

5.自定义事件功能

5.1 Characteristic Read中在Sub-Procedure选Read Characteristic Value/Descriptor,在Characteristic Value Handle 输入0x008C, ,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x008C,在Value输入 01 00 1E FF FF FF FF FF 04 FF 00 00,点击Write。

gif;base64,R0lGODlhAQABAIAAAP

5.2在Characteristic Value Handle 输入0x0092, ,点击Read,在Characteristic Write中的Characteristic Value Handle 输入0x0092,在Value输入 08 02 00 00 00,点击Write。

gif;base64,R0lGODlhAQABAIAAAP

5.3在Characteristic Value Handle 输入0x0095, ,点击Read,在Characteristic Write中的Characteristic Value Handle 输入0x0095,在Value输入 01 02,点击Write。

gif;base64,R0lGODlhAQABAIAAAP

5.4 在Characteristic Value Handle 输入0x0086, ,点击Read,在Characteristic Write中的Characteristic Value Handle 输入0x0086,在Value输入 1F 1D 03 02 01 FF 07,点击Write.

连接P07口的小灯将在32S后熄灭。

gif;base64,R0lGODlhAQABAIAAAP

接下来我们进行nRF Connect for Desktop的测试

二、nRF Connect for Desktop直驱功能测试

硬件准备:RF-DG-40A,RF-Module EB CC254x开发套件

软件准备:nRF Connect for Desktop

nRF Connect for Desktop下载地址:

https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-desktop/Download#infotabs

1.首先打开 nRF Connect for Desktop,打开Bluetooth Low Energy的Open 按钮,如果是第一次使用,需要点击安装一下。

gif;base64,R0lGODlhAQABAIAAAP

2.将RF-DG-40A上电,选择RF-DG-40A所对应的COM口,点击Start scan。

gif;base64,R0lGODlhAQABAIAAAP

3.随后会出现附近正在广播的蓝牙设备列表。点击其中的测试的蓝牙开发板设备,会开始进入连接过程

gif;base64,R0lGODlhAQABAIAAAP

4.开始测试基础的通信,即透传测试,在FFE4中打开notify。

gif;base64,R0lGODlhAQABAIAAAP

5.使用串口助手发送数据,nRF Connect for Desktop收到从串口助手发来的数据。

gif;base64,R0lGODlhAQABAIAAAP

6.在nRF Connect for Desktop的FFE9中输入 11 33 66 99 ,在串口助手中也可以收到同样的数据。

gif;base64,R0lGODlhAQABAIAAAP

现在开始进行直驱功能测试:

1.PWM功能

1.1 在FFB1,输入00 ,全低脉宽初始化四路 PWM 通道,开发板上4个小灯全部亮起来了。

gif;base64,R0lGODlhAQABAIAAAP

1.2 在FFB2输入FF FF FF FF,设置为全高脉宽,4个灯全部熄灭。

gif;base64,R0lGODlhAQABAIAAAP

1.3 在FFB2中输入 EE EE EE EE,灯亮起来了,但亮度明显偏暗。

gif;base64,R0lGODlhAQABAIAAAP

1.4 在FFB2输入00 00 00 00,亮度恢复到最初的最亮的情况。

gif;base64,R0lGODlhAQABAIAAAP

2.ADC功能

2.1在FFD1输入03,打开两路ADC通道。

gif;base64,R0lGODlhAQABAIAAAP

2.2在FFD3中打开notify,可以收到ADC0的ADC数据。

gif;base64,R0lGODlhAQABAIAAAP

3.I/O功能

3.1 在FFF1中输入00,设置I/O为输入口。

gif;base64,R0lGODlhAQABAIAAAP

3.2 打开FFF3的notify通道,按下开发板的按键,看到从3F(00111111)到3E(00111110)再回到3F。

gif;base64,R0lGODlhAQABAIAAAP

3.3 在FFF1输入FF,设置I/O口为输出口。

gif;base64,R0lGODlhAQABAIAAAP

3.4 在FFF5输入00 00 05 DC.

gif;base64,R0lGODlhAQABAIAAAP

3.5 在FFF4输入00 00 05 DC,可以看见连接I06的小灯以1.5S的间隔亮灭。

gif;base64,R0lGODlhAQABAIAAAP

3.6 在FFF7输入00 00 05 DC。

gif;base64,R0lGODlhAQABAIAAAP

3.7在FFF4输入00 00 05 DC,可以看见连接I07的小灯以1.5S的间隔亮灭。

gif;base64,R0lGODlhAQABAIAAAP

4.事件

4.1 在FE03中输入01 00 1E FF FF FF FF FF 04 FF 00 00。

gif;base64,R0lGODlhAQABAIAAAP

4.2 在FE05中输入08 02 00 00 00。

gif;base64,R0lGODlhAQABAIAAAP

4.3 在FE06中输入01 02。

gif;base64,R0lGODlhAQABAIAAAP

4.4 在FE01中输入1F 1D 03 02 01 DD 07,连接P07的小灯在32S后熄灭。

gif;base64,R0lGODlhAQABAIAAAP

对比了CC2540 BTool和nRF Connect for Desktop的直驱功能测试后,总结出了几点:

1. CC2540 BTool每次只能对一个设备进行直驱控制操作,如果要操作另一个设备,需要切换下拉菜单,切换对用的MAC地址。如果要同时操作多个从机设备,CC2540 BTool难以实现。而nRF Connect for Desktop可以同时连接多个从机,实时显示出来,如果需要对某个具体模块进行直驱操作,直接打开对应的模块操作界面即可。

gif;base64,R0lGODlhAQABAIAAAP

2. CC2540 BTool进行直驱操作太麻烦了,从笔者上面的截图可以看到,每一次进行直驱命令时,先要输入UUID,读出句柄,再去赋值区域输入相应的参数。每进行一次操作都要至少4步以上。反观nRF Connect for Desktop就简单得多,不需要读出句柄后进行赋值,直接在对应的句柄地址FE处输入参数即可。而且其他所有句柄的参数都可以看见,CC2540 BTool的其他参数是没有办法同时看到的。

3. nRF Connect for Desktop的软件界面优化比CC2540 BTool好很多。在CC2540 BTool上进行测试时,感觉是在虚拟机上操作,可视化体验非常差。nRF Connect for Desktop优化很好,可视化展示基本可以查看所有需要的参数。

综合以上测评体验,如果选择BTool软件进行BLE模块测试的话,推荐使用nRF Connect for Desktop。抓包硬件方面,信驰达推出的RF-DG-40A比TI 原厂的CC2540 USB Dongle使用体验更好,大家有兴趣可以尝试一下。


本文链接:https://www.ngui.cc/zz/1568606.html
Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000