ST意法半导体
直播中

何夏庄

7年用户 940经验值
私信 关注
[问答]

在BLE服务器上从Nucleo导出到自定义板时出现问题如何去调试呢

在自定义 BLE 服务器(外围角色)上工作时,我在将工作源从 Nucleo 项目 (STM32WB55) 导出到自定义板 (STM32WB55) 项目时遇到了问题。

Nucleo 上一切正常:广告、连接、双向通信等……

在自定义板子上,BLE master 看到了 advertissing slave,但是没有办法连接到它。连接失败!

Master端使用了2个软件:ST BLE Toolbox和nRF Connect。两者都给出相同的结果。
nRF 连接显示附加日志错误 133(0x85):GATT 错误。

定制板不使用 LSE 晶振。而是使用 HSE。我遵循此 URL,但在 BLE 配置中找不到 CFG_BLE_LSE_SOURCE。

我预料到这一点会有麻烦,并在知识库上找到了几张票,但没有人有解决办法:

定制板上无法进行 uart 调试。有没有办法通过 STLink/JTAG 使用自定义服务器应用程序调试跟踪?

在定制板上验证了以下项目:

- 主时钟是预期时钟,已在 MCO 引脚上验证。
- 应用程序心跳是预期的。系统正常启动以及 BLE 完整固件堆栈。
- 通过 STlink/JTAG 进行调试。
- RTC_WKUP_IRQHandler 被验证为每 100 毫秒唤醒一次(通过切换引脚)。
- BLE 主机正确接收广告名称、设备类型、tx 功率级别和标志。
- 来自主机的连接和断开连接请求触发从机通过自定义应用程序上的 Custom_APP_Notification CUSTOM_CONN_HANDLE_EVT 和 CUSTOM_DISCON_HANDLE_EVT 案例。这看起来像是在 master 上触发了超时,没有正确接收连接请求。

你有什么线索可以帮助调试情况吗?



回帖(1)

刘润生

2022-12-2 14:51:05
由于您的自定义板没有实现 LSE,您应该使用 HSE/1024 作为 RF 唤醒时钟,为此,您应该在 STM32CubeWB 包 v1.14.1 中启用对 RF 系统唤醒时钟源的校准,因此您应该具有此配置:


  • /**
  • LsSource
  • Some information for Low speed clock mapped in bits field
  • - bit 0:   1: Calibration for the RF system wakeup clock source   0: No calibration for the RF system wakeup clock source
  • - bit 1:   1: STM32W5M Module device                              0: Other devices as STM32WBxx SOC, STM32WB1M module
  • /

  • #if defined(STM32WB5Mxx)
  •   #define CFG_BLE_LSE_SOURCE  (SHCI_C2_BLE_INIT_CFG_BLE_LSE_CALIB | SHCI_C2_BLE_INIT_CFG_BLE_LSE_MOD5MM_DEV)
  • #else
  •   #define CFG_BLE_LSE_SOURCE  (SHCI_C2_BLE_INIT_CFG_BLE_LSE_CALIB | SHCI_C2_BLE_INIT_CFG_BLE_LSE_OTHER_DEV)
  • #endif

举报

更多回帖

发帖
×
20
完善资料,
赚取积分