| 评测一 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 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.1 STM32WB55 Nucleo board(MB1355C-02)烧录测试固件图2.2 STM32WB55 Dongle(MB1293C-02)烧录测试固件打开STM32CubeMonitor-RF,可看到支持IEEE 802.15.4(ZigBee/Thread)、BLE,本文仅讨论BLE,点击BLE就行,进入后如果固件烧录不对连接时会报错“STM32Cube device under test not responding”:图 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.1 广播测试2.1.2 扫描测试勾选Discover remote service,可以看到控制蓝牙控制器里的发射功率、MAC地址等,保持默认,选好后点击STCAN,开始捕捉ADV_REPORT事件,停止后可以在Select Device下拉框选中扫描到的设备连接,此处连接老是提示Could not connect peer错误,应该是server端拒绝了:图4.2 扫描测试2.2 RF Test收发误码测试2.2.1收发测试图5 收发双方两个STM32CubeMonitor-RF操控界面开启两个STM32CubeMonitor-RF,一个串口连上STM32WB55 dongle充当发方,一个串口连上STM32WB55 Nucleo board充当收方,然后默认配置点进去后先点收方的START RX按钮,然后再点发方的START TX按钮,结束后反过来先点发方的STOP TX,再点收方的STOP RX按钮,就能在上面呈现看到发包、收包统计数量:图6 收发测试包统计不知道为什么,我这里收方有丢包,而且有点多。2.2.2 误码测试图7 收发双方一个STM32CubeMonitor-RF显示误码率界面结果跟刚才上面收发测试一样,也有0.81%的误码率,这个待追查。2.3 Beacon无连接测试iBeacon在几年前很流行,现在已经基本少见了,不妨填上最初微信退出的摇一摇周边UUID、Major、Minor:| UUID | Major | Minor | | ---------------------------------- | ------- | ------- | | FDA50693A4E24FB1AFCFC6EB07647825 | 000A | 0007 | 图8 ibeacon无连接包测试2.4 脚本测试图9 加载脚本文件执行命令弄过BlueZ协议栈的应该对这个熟悉,主要是下发HCI命令给下层,比如OCF、OGF域设置,脚本命令首字母要大写,不然会报错,详细格式查看软件手册,详细指令查看Core Spec,比如设置设备名为“风云”,就可以填入“0709E9A38EE4BA91”(此处为小端存储),效果见上图图10 脚本指令解析举例脚本内容如下:
本主题由 STMCU-管管 于 2023-6-25 08:48 审核通过 9 脚本.gif (4.84 MB, 下载次数: 0) |