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

1

[复制链接]
topdreams 发布时间:2023-7-25 11:22

| 评测一 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)

本主题由 STMCU-管管 于 2023-6-25 08:48 审核通过

9 脚本.gif (4.84 MB, 下载次数: 0)

9 脚本.gif

1 收藏 评论0 发布时间:2023-7-25 11:22

举报

0个回答

所属标签

相似分享

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