评测一 DTM射频&ACI事件测试 由于这期评测内容有点多,涉及到控制器的HCI指令、脚本、蓝牙协议栈、CW载波定频、信号噪声等,主要从ACI Utilities主从机测试、RF Test收发误码测试、Beacon无连接测试、脚本测试(下发HCI命令)一系列STM32CubeMonitor-RF射频集成工具集来展开,休絮赘言。 1、 测试环境准备 STM32Cube系列工具功能齐全:
本次由于测试要对其烧录透明模式HCI固件以及射频测试,因此软件环境STM32CubeProgrammer和STM32CubeMonitor-RF必须要先装上。硬件环境如下:
图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:
图8 ibeacon无连接包测试 2.4 脚本测试 图9 加载脚本文件执行命令 弄过BlueZ协议栈的应该对这个熟悉,主要是下发HCI命令给下层,比如OCF、OGF域设置,脚本命令首字母要大写,不然会报错,详细格式查看软件手册,详细指令查看Core Spec,比如设置设备名为“风云”,就可以填入“0709E9A38EE4BA91”(此处为小端存储),效果见上图 图10 脚本指令解析举例 脚本内容如下:
|
STM32WBA55上手BLE点灯
使用STM32WB系列微控制器构建无线应用
STM32WB基于Custom Template实现客户定制BLE私有协议
STM32 生态系统|基于STM32WB的低功耗蓝牙应用(一)
【NUCLEO-WB09KE评测】BLE创建服务和写特征控制LED
【NUCLEO-WB09KE评测】+使用STM32CubeMX新建蓝牙工程
【NUCLEO-WB09KE评测】创建BLE工程和开启调试信息
【NUCLEO-WB09KE评测】BLE例程HeartRate及工具探索
【STM32H7S78-DK评测】移植AI框架TensorFlow【DSP指令加速篇】
【NUCLEO-WB09KE评测】使用I2C点亮一个OLED
强,虽然有点看不懂
这编辑器实话说用过就不想用第二次,markdown自动把首行“引用”,去除引用就会内容清除,极易误操作;markdown编辑器无法缩进、字体、颜色设置;上传图片有时会无动静,真是后台已有,然后文章末尾就会出现一堆多余的图片,用过就知道多难用,很多时间耗在排版上