你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32WB55评测】评测一 DTM射频&ACI事件测试

[复制链接]
MingXJ 发布时间:2023-6-24 16:56

评测一 DTM射频&ACI事件测试

由于这期评测内容有点多,涉及到控制器的HCI指令、脚本、蓝牙协议栈、CW载波定频、信号噪声等,主要从ACI Utilities主从机测试、RF Test收发误码测试、Beacon无连接测试、脚本测试(下发HCI命令)一系列STM32CubeMonitor-RF射频集成工具集来展开,休絮赘言。

1、 测试环境准备

STM32Cube系列工具功能齐全:

名称 功能
STM32CubeProgrammer 烧录器
STM32CubeMonitor 图形化低代码流程编辑器
STM32CubeMonitor-RF 射频测试
STM32CubeIDE 1.12.1 编辑器
STM32CubeMX 图形化代码生成器

本次由于测试要对其烧录透明模式HCI固件以及射频测试,因此软件环境STM32CubeProgrammer和STM32CubeMonitor-RF必须要先装上。硬件环境如下:

板子 编号 串口
P-Nucleo-WB55 MB1355C-02 Nucleo board ST-Link Virtual COM
P-Nucleo-WB55 MB1293C-02 dongle USB串口COM

1板子.jpg

图1 STM32WB55 Dongle和Nucleo board

装好后,STM32WB Nucleo Board要烧录透明模式固件,路径见STM32Cube_FW_WB_V1.16.0\Projects\P-NUCLEO-WB55.Nucleo\Applications \BLE

\BLE_TransparentMode\Binary\BLE_TransparentMode_reference.hex;同理STM32WB Dongle也要烧录透明模式固件,路径见STM32Cube_FW_WB_V1.16.0\Projects\P-NUCLEO-WB55.USBDongle\Applications\BLE\BLE_TransparentModeVCP\Binary BLE_TransparentModeVCP_reference.hex。由于STM32WB55 dongle没有引出Jlink ISP之类的接口,需要IAP烧录,具体是拔下掉电把SW2拨动开关打到boot0位置再插上,打开STM32CubeProgrammer,虽然有串口,但应切到USB,选择上述文件烧录即可;STM32WB55有板载ST-Link,烧录就简单很多,可以用前期的ST-link Utility或者后来替代者STM32CubeProgrammer来烧录,只需选择ST-Link连接方式,或者还可以工程烧录,见工程文件夹。

2.1cubeNecloprogrammer.PNG

图2.1 STM32WB55 Nucleo board(MB1355C-02)烧录测试固件

2.2cubeprogrammer_done.PNG

图2.2 STM32WB55 Dongle(MB1293C-02)烧录测试固件

打开STM32CubeMonitor-RF,可看到支持IEEE 802.15.4(ZigBee/Thread)、BLE,本文仅讨论BLE,点击BLE就行,进入后如果固件烧录不对连接时会报错“STM32Cube device under test not responding”:

3cubemonitor-rf.PNG

图 3 STM32CubeMonitor-RF Lanuch Splash页面

接下来开始测试。

2、 STM32CubeMonitor-RF 工具

2.1 ACI Utilities主从机测试

2.1.1广播测试

勾选Advertising,可以看到控制蓝牙控制器里的基带定频、MAC地址、广播通道参数等,保持默认,选好后点击START ADVERTISING,在手机ST BLE Toolbox里能看到dongle刚才的广播包,同样由于连接是空包,安卓端读不到属性数据库从而连接不上,iOS可以建立连接:

4.1adv.PNG

图4.1 广播测试

2.1.2 扫描测试

勾选Discover remote service,可以看到控制蓝牙控制器里的发射功率、MAC地址等,保持默认,选好后点击STCAN,开始捕捉ADV_REPORT事件,停止后可以在Select Device下拉框选中扫描到的设备连接,此处连接老是提示Could not connect peer错误,应该是server端拒绝了:

4.2scan.gif

图4.2 扫描测试

2.2 RF Test收发误码测试

2.2.1收发测试

5射频.PNG

图5 收发双方两个STM32CubeMonitor-RF操控界面

开启两个STM32CubeMonitor-RF,一个串口连上STM32WB55 dongle充当发方,一个串口连上STM32WB55 Nucleo board充当收方,然后默认配置点进去后先点收方的START RX按钮,然后再点发方的START TX按钮,结束后反过来先点发方的STOP TX,再点收方的STOP RX按钮,就能在上面呈现看到发包、收包统计数量:

6射频收发测试.PNG

图6 收发测试包统计

不知道为什么,我这里收方有丢包,而且有点多。

2.2.2 误码测试

7误码测试.PNG

图7 收发双方一个STM32CubeMonitor-RF显示误码率界面

结果跟刚才上面收发测试一样,也有0.81%的误码率,这个待追查。

2.3 Beacon无连接测试

iBeacon在几年前很流行,现在已经基本少见了,不妨填上最初微信退出的摇一摇周边UUID、Major、Minor:

UUID Major Minor
FDA50693A4E24FB1AFCFC6EB07647825 000A 0007

8Beacon.PNG 图8 ibeacon无连接包测试

2.4 脚本测试

9脚本.gif

图9 加载脚本文件执行命令

弄过BlueZ协议栈的应该对这个熟悉,主要是下发HCI命令给下层,比如OCF、OGF域设置,脚本命令首字母要大写,不然会报错,详细格式查看软件手册,详细指令查看Core Spec,比如设置设备名为“风云”,就可以填入“0709E9A38EE4BA91”(此处为小端存储),效果见上图

10脚本解析.PNG

图10 脚本指令解析举例

脚本内容如下:

Send(HCI_RESET)

Wait(1000)

Send(ACI_HAL_SET_TX_POWER_LEVEL;0x00;0x1F)

Wait(1000)

Send(ACI_HAL_WRITE_CONFIG_DATA;0x00;0x06;0x665544332211)

Wait(1000)

Send(ACI_GATT_INIT)

Wait(1000)

Send(ACI_GAP_INIT;0x03;0x00;0x00)

Wait(1000)

Send(HCI_LE_READ_ADVERTISING_CHANNEL_TX_POWER;0x01;0x07;0x20;0x00)

Wait(1000)

Send(HCI_LE_SET_ADVERTISING_PARAMETERS;0x0800;0x0800;0x00;0x00;0x00;0x665544332211;0x01;0x00)

Wait(1000)

Send(ACI_GAP_SET_DISCOVERABLE;0x00;0x0080;0x00A0;0x00;0x00;0x07;0x91BAE48EA3E909;0x03;0x180d02;0x0000;0x0000)

Wait(1000)

Send(ACI_GAP_UPDATE_ADV_DATA;0x03;0x000A02)
9 脚本.gif
1 收藏 评论4 发布时间:2023-6-24 16:56

举报

4个回答
STMCU-管管 回答时间:2023-6-25 09:15:49
谢谢分享
y369369 回答时间:2023-6-25 10:34:47
楼主用心了,写的很详细啊
+ |) I- x* P  e; k
bitterheart 回答时间:2023-6-25 11:09:47

强,虽然有点看不懂

MingXJ 回答时间:2023-7-11 22:35:54

这编辑器实话说用过就不想用第二次,markdown自动把首行“引用”,去除引用就会内容清除,极易误操作;markdown编辑器无法缩进、字体、颜色设置;上传图片有时会无动静,真是后台已有,然后文章末尾就会出现一堆多余的图片,用过就知道多难用,很多时间耗在排版上

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版