This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] WL1837MOD:蓝牙上电问题

Guru**** 657500 points
Other Parts Discussed in Thread: WL1837MOD
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1206138/wl1837mod-bluetooth-power-on-issues

器件型号:WL1837MOD

我们有两个独立的产品、都采用了 TI 的无线模块  一个使用 C2564MODN、另一个使用 WL1837MOD。   我们注意到了 C2564MODN 版本和 WL1837MOD 版本在行为上电成功与否以及启用蓝牙所需的时间方面存在差异。  以下是每个堆叠成功加电的记录时间:

 

C256x:

- BluetopiaPM 守护程序重新启动:  1.152秒

-设置由 BluetopiaPM 发送和完成的开机命令:  3.414秒

-由 BluetopiaPM 发送和完成的上电配置命令:  0.419秒

  -设置波特率

  -设置名称

  -设置设备类别

  -设置编解码器

  -注册验证

  -注册耳机配置文件事件回叫

  -注册免提配置文件事件回叫

  -输入发现

-无重试的总启动时间:  4.987秒

 

WL18xx:

- BluetopiaPM 守护程序重新启动:  7.250秒

-设置由 BluetopiaPM 发送和完成的开机命令:  9.215秒

-由 BluetopiaPM 发送和完成的上电配置命令:  0.283秒

-无重试的总启动时间:  16.749秒

您可以看到、与 C256x 版本相比、WL18xx 守护程序启动需要~6秒、然后再~6秒即可为芯片上电。  此外、我们从未看到有必要使用 C256x 构建来实现任何重试机制(即、它似乎总是启动而没有任何问题);因此 C256x BT-On 时间似乎始终约为5秒。  但是、我们必须解决的一个奇怪问题是确保 WL18xx 编译模块的蓝牙能够可靠启动—我们的解决方案是只要 Set Power 命令失败、我们就会重新初始化 BluetopiaPM 守护程序并重试 Set Power 命令。  在对此进行测试时、我发现 WL18xx 蓝牙始终最终会启动、但很有可能(例如~17%) BluetopiaPM 启动失败、此过程需要复位。  通常、加电命令会导致故障、因此我们可以看到16.5秒后需要重试、然后执行重试。  因此、启动的单次重试版本大约需要33秒;如果需要第二次重试、我们将需要50秒左右的时间。  据统计、在 WL18xx 上使用蓝牙大约需要16秒的时间超过80%。

有没有更好的方法可以在 Set Power-On 命令失败后重试它—就像我能告诉的那样,如果该失败发生,唯一的恢复方法是重新启动守护进程,这非常耗时。  此外、是否有办法加快 WL18xx 启动时间?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jonathan 您好、您能否详细介绍您的设置、例如主机、内核版本以及为 WL18xx 运行的服务包版本?  

    如果您能够探测 WL18xx 的引脚、您是否能够确保按照 数据表 第 8.21.2节及以下部分中所述出现正确的启动序列?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Daniel、您好!

    主机是 OMAP2。  Linux 内核3.2.102、有一些反向端口应用于 WiFi。  WL18xx 的服务包为 R8.7_SP3。

    我确认启动序列符合数据表中的要求。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jonathan、这是我所参考的服务包、 WL18XX-BT-SP 驱动程序或库| TI.com、包含的文件 TIInit_11.8.32.bts 是启动时发送到芯片 ROM 的初始化脚本、最新版本为 v4.8、在文件中标记为 P2.148。 如果您可以确保您正在上传此脚本的最新版本、那将会很受欢迎。  

    关于加快 WL18xx 启动时间的主题、据我所知、或许可以加快 UART 通信、但该时间应该可以忽略不计。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Daniel、您好!

    我们正在使用的 BTS 文件为 TIInit_11.8.32BT4.2.bts。   虽然这个文件是二进制的,但我在一个文本编辑器中打开它,看到了这些文本:

    兼容性        :185x/189x 8.0.32 ROM"
    上次更新时间       :2021年6月28日 03:25:12"
    修补程序版本            :TI_P2.148"
    所有相关附属项             :仅在 Diamond ROM 设备上使用此脚本(FW v8.0.32)"

    我们是否应该 在没有"BT4.2"的情况下使用 TIInit_11.8.32.bts?  我们的堆栈支持 BT 5.1、所以这个 BTS 看起来好像仅适用于 BT 4.2?

    关于 HCI 波特率、器件默认 为115200波特、但我们在启动期间使用特定于供应商的命令更改为3000000波特。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jonathan、您可以尝试使用非 BT4.2版本吗? 如果这样不起作用、我们可能需要使用以下工具获取 HCI 命令的日志以进一步调试问题: Wilink-BT_WIFI-WIRELESS_TOOLS 应用软件和框架| TI.com

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Daniel、您好!我们刚刚尝试了非 BT4.2 BTS 文件版本、但仍然观察到相同的开机问题。  我使用 BT 记录器获取日志、并能够捕获问题。  由于我们的重试机制、上电花费了大约75秒。  已验证日志的软件包 ID 为 P2.148。  您能否查看日志并告诉我您是否发现任何问题?  以下链接:

    BT 日志.lgr 文件

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请改用分析此日志。  我忘记将 HCI/LMP 日志添加到之前的日志了。  谢谢。

    BT Logger 和 HCI/LMP 日志 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jonathan、 在浏览日志后、发送的 HCI 命令与发回的 Event Complete 消息中的所有三个上电序列完全相同、这意味着此处的固件不应是问题。 然而、调试这个问题会变得更加困难。

    可以尝试这样做的一个方法虽然只是略微缩短引导时间、甚至可以缓解故障问题、但这可以在启动时加快/减慢 UART 接口的速度。 由于.bts 文件包含 HCI 命令、因此可使用 HCITester (包含在 WILINK-BT_WIFI-WIRELESS_TOOLS 中)将 Send_HCI_VS_Update_UART_HCI_Budrate 0xFF36、UART_BAUD 添加 到脚本中、以该波特率运行、而不是等待以后更新速度。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我应该将  Send_HCI_VS_Update_UART_HCI_Budrate 0xFF36命令放在 BTS 文件中的什么位置?  在第一条命令(Send_HCI_VS_Start_VS_Lock 0xFE37、0x08、0x20)之前的顶部?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jonathan 您好、是的、请将命令放在 VS_Lock 之前的脚本开头。

    (可选)您也可以添加此命令:(COM_SetParams 115200、1)。 此命令与 WiLink 器件无关、它会更新 HCITester 中的配置、以防您将该配置用于测试。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Daniel、您好!

    当 WL1837MOD 通电时、其内部默认波特率为115200。  主机上的波特率还必须设置为115200才能进行通信。  上电后、将 BTS 文件下载到模块中时波特率开始为115200波特、如果 HCI_VS_Update_UART_HCI_Budrate 命令位于 BTS 文件顶部、以将 HCI 波特率更改为3000000、假设 那么、主机如何知道将主机 COM 端口上的波特率也更改为3000000?   除非我在这里遗漏了一些内容、否则我不知道具体的工作原理、因为 HCI 波特率将为3000000、但主机波特率仍为115200。  请告知。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jonathan、您好、是的、主机在发送该命令后需要更新自己的波特率。 如果需要、可在发送 BTS 文件之前发送 Update_HCI_Budrate。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    那么我们如何才能在下载 BTS 文件之前调整波特率呢?  

    我们似乎无法修改 UART 速度、直到 Bluetopia 完成将 BTS 下载到模块中之后、这那时太晚了。  我们需要在开始时更改波特率、以加快该过程。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Jonathan、您可以发送一条类似于 HCI 命令/数据包的 UART 消息。 此链接包含所有特定于供应商的命令和 HCI: CC256x VS HCI 命令的数据包结构(TI.com)