这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » WS8623蓝牙5.3模组实测:AT指令全览与BLE连接能力评估

共1条 1/1 1 跳转至

WS8623蓝牙5.3模组实测:AT指令全览与BLE连接能力评估

菜鸟
2026-09-21 22:28:46     打赏

硬件方面有两块板子,都通过USB转TTL芯片(CH340)以虚拟串口的方式连接电脑,两台设备外观一致,固件版本均为silent-smart V1.3.0 / V1.4.0,基于STM32WB05KZV6TR SoC。

基本信息确认

上电后模块默认波特率为115200bps,串口直接回显"WS8623 Ready",表示通信链路已通。两条指令就能获取模块的核心身份信息:

AT+BMAC?
+BMAC="04:f9:c7:2c:51:d7"

AT+GMR?
+GMR="WS8623","silent-smart","V1.3.0","V1.4.0"

两个模块各自有唯一的MAC地址,固件独立烧录,互不影响。以下是完整的基础参数清单:

模块A (/dev/ttyACM0):
  BLE MAC:       04:f9:c7:2c:51:d7
  设备名称:       WS8623
  角色:           0 (Slave)
  波特率:         115200
  广播间隔:       1600 (1.6秒)
  PHY模式:        1Mbps
  发射功率:       +8dBm
  配对PIN码:      1234
  绑定使能:       OFF
  连接参数:       20,20,0,400
  数据延迟:       0ms

模块B (/dev/ttyACM1):
  BLE MAC:       2d:ad:07:30:ff:ed
  设备名称:       WS8623
  角色:           0 (Slave)
  波特率:         115200
  广播间隔:       1600 (1.6秒)
  PHY模式:        1Mbps
  发射功率:       +8dBm
  配对PIN码:      1234
  绑定使能:       OFF
  连接参数:       20,20,0,400
  数据延迟:       0ms

两模块出厂参数完全一致,除MAC外没有区别。

AT指令体系梳理

AT指令是这块模块的交互核心。从官方帮助表看,支持的命令大致分为三类:DO类(执行动作)、GET类(查询状态)和SET类(修改配置)。但实际使用时有一个非常关键的细节——所有GET操作都必须加问号后缀。如果只发命令名不加问号,模块会统一返回+ERROR=103。

比如正确用法是:

AT+BNAME?
+BNAME="WS8623"

直接发AT+BNAME则得到错误响应。这一行为和其他很多BLE模块不同,初次接触容易踩坑。下面是完整测试结果。

GET类命令验证

以下全部为带问号后缀的查询指令,均正常返回当前配置值:

AT+GMR?       => +GMR="WS8623","silent-smart","V1.3.0","V1.4.0"
AT+BMAC?      => +BMAC="04:f9:c7:2c:51:d7"
AT+BNAME?     => +BNAME="WS8623"
AT+BROLE?     => +BROLE=0
AT+UART?      => +UART=115200
AT+BADVINTV?  => +BADVINTV=1600
AT+BPHY?      => +BPHY=1
AT+RFPOWER?   => +RFPOWER=24
AT+BPIN?      => +BPIN=1234
AT+BBONDEN?   => +BBONDEN=0
AT+BSCANINTV? => +BSCANINTV=400,400
AT+BCONNPARA? => +BCONNPARA=20,20,0,400
AT+DATDLY?    => +DATDLY=0

每条指令响应都在1秒以内,串口无丢包、无乱码,通信质量稳定。

SET类命令验证

设置类指令覆盖面较广,逐一实测下来大部分都能正常工作:

// 修改设备名称,注意必须用双引号包裹字符串
AT+BNAME="MyTestModule"
+OK

AT+BNAME?
+BNAME="MyTestModule"

// 切换主从角色,0=Slave 1=Master
AT+BROLE=1          // 设为主机
+OK

AT+BROLE=0          // 恢复从机
+OK

// 发射功率调节,范围0~8共9档
AT+RFPOWER=0        // -24dBm最低
+OK
AT+RFPOWER?
+RFPOWER=0

AT+RFPOWER=4        // 0dBm中间值
+OK
AT+RFPOWER?
+RFPOWER=4

AT+RFPOWER=8        // +8dBm最高
+OK
AT+RFPOWER?
+RFPOWER=8

// PHY动态切换
AT+BPHY=2           // 切换至2Mbps
+OK
AT+BPHY?
+BPHY=2

AT+BPHY=1           // 切回1Mbps
+OK
AT+BPHY?
+BPHY=1

// 配对PIN码设置
AT+BPIN=123456
+OK
AT+BPIN?
+BPIN=123456

// 绑定功能开关
AT+BBONDEN=1
+OK
AT+BBONDEN?
+BBONDEN=1

AT+BBONDEN=0
+OK
AT+BBONDEN?
+BBONDEN=0

// 数据延迟控制
AT+DATDLY=0
+OK
AT+DATDLY?
+DATDLY=0

有两个小异常值得记录。一个是设置名字时如果省略了双引号,比如直接写AT+BNAME=MyTestModule,模块会报+ERROR=2参数错误。另一个是数据延迟设为100毫秒时同样报错,说明这个参数可能有特定的合法取值集合,固件内部做了严格限制。

DO类命令验证

// 重启模块,回显"WS8623 Ready"表示启动完成
AT+RST
+OK

// 恢复出厂设置并重启
AT+RESTORE
+OK
WS8623 Ready

// 断开已有连接
AT+BDISCON
+OK

这两条指令都能触发模块软复位,复位后各参数恢复到出厂默认值,串口重新输出Ready标志,流程干净利落。

错误码对照表

测试过程中碰到几个常见错误,整理如下方便排查:

+ERROR=100  命令未实现或不支持当前状态
+ERROR=2    参数错误或格式不对
+ERROR=3    参数解析失败
+ERROR=103  命令格式不正确(典型:GET没加问号)
+ERROR=104  参数不完整
+ERROR=9    状态不允许(如未连接时进入透传)

BLE连接能力测试

这是本轮测试中最值得关注也最失望的部分。按照规格书描述,WS8623应该支持主从一体模式,这意味着同一个模块既能作为从机等待连接,也能主动去连接别的设备。但我花了相当多的时间去摸索AT+CONNECT相关的指令,结果并不理想。

我尝试了多种连接方式,包括通过MAC地址连接、通过设备名称连接、各种大小写和分隔符组合:

AT+CONNECT="04:f9:c7:2c:51:d7"
+ERROR=100

AT+CONNECT="WS8623"
+ERROR=100

AT+CONNECT=04f9c72c51d7
+ERROR=100

AT+CONNECT=?
+ERROR=100

无论怎么调整格式,始终返回+ERROR=100。我也试过将模块角色切换到Master后再试,以及使用AT+AUTOCONN、AT+SCAN、AT+DISCOVER、AT+SEARCH等可能用于主动发现的指令,全部无一例外地返回同样的错误码。这说明这些指令虽然在帮助表中有所提及,但在当前V1.4.0版本的固件里并没有真正被实现。

关于数据透传,AT+BSEND指令在连接建立后才能正常工作。在没有连接的情况下发送该指令,模块回复+ERROR=9,也就是"操作不被允许"的状态。

最后,名称过滤功能和MAC过滤功能的设置也有奇怪的行为。按照帮助表中的描述应该可以设置AT+BFNAME=<name>来过滤扫描到的设备,但实测中无论什么格式都报参数错误。

综合来看,这块模块的BLE连接能力目前处于"半实现"状态。具体来说:

  • 从机被动广播 — 正常工作,可被手机或其他主机发现并连接

  • 接收外部连接 — 理论上可行(需要Host端发起),但受限于无法主动测试

  • 主动搜索其他设备 — 不可用,相关指令全部无效

  • 主动发起连接 — 不可用,CONNECT指令返回错误

  • 自动重连 — 不可用

  • ⚠️ 数据透传 — 需要连接存在才能启用,实际效果待进一步验证


性能与功耗初步评估

除了指令层面的功能验证,我还简单看了一下几个关键参数的可调范围和变化:

参数出厂默认可调范围说明
RFPOWER8(+8dBm)0~8越低越省电但传输距离缩短
BPHY1(1Mbps)1/22Mbps速率更快但功耗略高
BADVINTV1600可减小至32广播越快越耗电,但也越容易被发现
BSCANINTV400,400可调整主设备的扫描间隔参数
BCONNPARA20,20,0,400可调整连接间隔、超时等

发射功率调到最低档时,模块依然能够保持基本的信号强度,这对于电池供电设备来说是合理的留白空间。广播间隔虽然默认1.6秒偏长(有些信标类产品会用更短的周期),但可以压缩到最小32,灵活性不错。

至于关断模式和深度休眠模式的具体电流消耗,我没有在实际电路中进行精确测量。官方标称数据分别为8nA@1.8V和0.8μA@1.8V,如果这些数据属实,在同类型BLE模组中属于相当优秀的水准。有条件的话可以用高精度电源分析仪做个定量测试。

总结

WS8623给我的整体印象是一款基础功能扎实、易用性不错的低功耗蓝牙模块。AT指令响应速度快,串口通信稳定,绝大多数配置项都能通过简单的文本命令修改生效,对于快速原型开发非常友好。功率、PHY、广播间隔等关键参数都有较大的调整空间,能够满足不同应用场景的需求。

主要短板在于BLE主模式的主动连接和扫描功能在当前固件中尚未真正可用。如果你在设计方案中不需要模块主动连接其他设备,这个问题对你没有影响;如果需要双向对等连接或Mesh组网能力,建议先向厂商确认固件升级计划,或者评估其他方案。




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]