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.

[参考译文] CC2564:多次重新连接后停止生成 HCI CMD 读取远程扩展特性

Guru**** 2589280 points
Other Parts Discussed in Thread: CC2564

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/946314/cc2564-stops-generating-hci-cmd-read-remote-extended-features-after-multiple-reconnects

器件型号:CC2564

您好!

成功连接多个设备后、我们无法重新连接远程 BT 控制器。 使用的硬件设置为:
-主机控制器 CC2564B、带 STM32F401 (Cortex-M4)、使用 RTOS KeilRTX:4.82.0、托管 BT 协议栈版本1.8。
-具有集成 BT 堆栈 PAN1026的远程控制器

我们使用 SPP 协议并通过 SPP_Open_Remote_Port 函数打开端口。 我们将测试两个 BT 模块之间的数据传输、因此正常过程是:
-主机触发与远程控制器的连接请求。
-建立连接后,数据传输开始。
-将所有数据发送到远程控制器后,断开连接,然后重复此操作。

奇怪的是、当任意侧面(主机或远程侧)软重启时、可以轻松地重新建立 BT 连接。
一段时间后、可以重新建立与远程控制器的连接、但在大多数情况下仍会失败。
当没有重新启动模块时、CC2564B 可以与其他远程控制器建立连接、而不会出现任何问题。  

已捕获 HCI 日志、成功连接的唯一区别是、在使用 SPP_Open_Remote_Port 函数后、主机控制器不发送读取远程扩展功能命令。
日志文件已附加。 可以在时间戳号找到成功的连接请求 5且日志文件末尾处的失败连接请求为否 90872.


e2e.ti.com/.../updating_5F00_hci_5F00_logs.log

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

    您好!

    1.对于 updating_hci_logs.log 文件、这是解码的.lgr 文件、还是从 TX_DBG 引脚捕获原始 HCI? 它似乎不是解码日志、因此如果您可以按照此处的说明对日志进行解码、我们将不胜感激: https://processors.wiki.ti.com/index.php/CC256x_Logger_User_Guide

    2.您正在使用什么蓝牙堆栈? TI 提供的堆栈是 Bluetopia 堆栈、我们不太熟悉其他堆栈。 如果您使用 Bluetopia 栈和提供的 SPPDemo、您是否看到相同的错误?

    此致、

    Michael

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

    您好!

    感谢您的快速响应。  
    我正在尝试将项目 SPPDemo 调至 STM32F401。 同时、我要向您发送日志文件、以便您可以查看。

    1.当然可以。 我附加了2个日志文件- ok.IGR 和 fail.IGR... 第一个示例演示了正常操作、第二个示例演示了主机控制器何时无法与远程控制器建立连接。

    2.当然、我们使用的是 Bluetopia 栈版本1.8。 正在处理...

    此致、
    Marko

    e2e.ti.com/.../log_5F00_files.zip

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

    您好、Marko、

    感谢您提供解码日志。 仔细看一下它们、就会发现超时的原因是页面超时。 仅当远程端是 PAN1026时、此问题才可重现吗? 或者、如果您尝试在 Android 手机上运行相同的测试、它是否也会重现?

    此外、您是否能够收集 BT 监听器日志? 这些将有助于了解页面超时的发生原因、以及它是由 CC2564未启动分页过程还是由远程端未响应导致的。

    此致、

    Michael

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

    您好、Michael、

    很遗憾、我无法在 Android 手机上提供错误复制、因为我们的应用非常具体、需要大量工作来提供此类示例。 但是、我已经测试了主机 CC2564和较早的远程 BT PAN 模块(PAN1322)之间的 BT 连接。 问题相同。 我在附件中提供了日志。

    我们不拥有 BT 空气嗅探设备、因此无法实现这一目标。

    同时、我尝试在 STM32F401上启动 SPPDemo 项目、但没有成功(尝试使用 FreeRTOS 和 Noos 的 SPPDemo)、结果是相同的。
    MCU 在 BSC_Initialize (HCI_DriverInformation、0);函数中挂起。
    我已正确配置 HCIFR UART、TXD、RXD、RTS、CTS 以及复位端口和引脚。 DMA 配置也是如此(从当前工作示例复制粘贴)。
    还尝试将 FreeRTOS 更新到最新版本、但未成功。  

    此致、

    Marko

    e2e.ti.com/.../fail_5F00_log_5F00_pan1322.zip

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

    您好、Michael、

    有关此事的任何新闻?


    此致、

    Marko

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

    您好、Marko、

    我在您的最新日志中记录了一个日志,它表现出与先前失败日志相同的行为-页面超时会阻止成功建立连接。

    您是否在测试期间使用了自己的定制板? 您是否曾尝试使用 CC2564B EVM、并将所需信号从 STM 主机连接到 EVM 上的控制器、以查看行为是否有任何变化? 可能是硬件问题导致您看到的行为。

    至于如何使 SPPdemo 正常工作,调用 BSC_Initialize()时程序在哪里挂起? 当您的器件调用该函数时、您能否捕获 HCI 日志? 您的应用程序的硬件设置中可能会出现一些错误、查看 HCI 日志可以说明错误的位置。

    此致、

    Michael

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

    您好、Michael、

    是的、我们在测试过程中使用定制板、但我认为这不会导致问题、因为当主 BT 远程设备发生这种情况时、BT 主机可以与其他远程 BT 设备连接。 尽管如此、我还是使用 Saleae Logic 2.3.9软件及其逻辑分析仪捕获了数据、以确认硬件是否按预期工作。

    至于 SPPdemo、我设法使其正常工作、并将在测试开始后立即提供结果。

    此致、

    Marko

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

    您好、Michael、

    我已经运行 SPPdemo 3天了、它可以毫无故障地打开和关闭远程服务器。 但我们的代码也是如此。 当服务器打开、数据从主机控制器发送到远程客户端、然后定期关闭服务器时、就会出现问题。 在该循环页超时随机发生后。

    您建议我们下一步尝试什么?

    此致、
    Marko

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

    您好、Michael、

    我已使用提供的 SPP 演示项目功能将我们的 BT 更新过程应用到您的 SPP 演示。 问题仍然存在。 BT 页面超时发生在 X 更新后的先前回复中。  

    您建议我们下一步尝试什么? 是否有关于此事的任何更新?  

    此致、
    Marko

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

    您好、Michael、

    在这方面有什么进展?

    谢谢

    kr

    Vincenzo

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

    您好、Marko、

    感谢您查看 SPP 演示并查看您是否遇到了相同的问题。 如果您在 SPP 演示中看到相同的问题、您的堆栈可能不是问题的原因、但我们需要更仔细地查看控制器固件和配置。

    调整页面超时和扫描窗口/间隔是否会改变此问题的任何行为? 或者,重试次数类似后是否仍然出现页面超时?

    如果您还可以提供用于重现 SPP 演示问题的确切命令和步骤、这将非常有用。 在我可以使用 BT 监听器检查空中交通的终端上重现您的问题将极大地有助于调试。

    此致、

    Michael

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

    您好、Michael、

    我们使用的是 SPP 协议、在 LE 通信中使用了扫描窗口/间隔。 但是、我尝试将 L2CAP_LINK_TIMEOUT_DEFAULT_VALUE 从0x4E20 (20000ms)调整为0x2710 (10000ms)并对其进行了测试。 测试协议包括使用 SPP_Open_Remote_Port 连接主机和远程控制器。 之后、我冷重启远程控制器以验证 L2CAP_LINK_TIMEOUT_DEFAULT_VALUE。 在这两种情况下、在20000ms 后、超时值和模块断开时的通知保持不变。 而调整页面超时、我没有找到任何定义。  
    如果我犯了任何错误、请随意引导我走向正确的道路。

    至于命令流、我将附加更新过程流。

    此致、

    Marko

    e2e.ti.com/.../bt_5F00_ti_5F00_update_5F00_process.pdf

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

    您好、Michael、

    我们能否在这方面取得进展?

    非常感谢您的参与

    kr

    Vincenzo

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

    您好、Marko、

    感谢您提供测试结果和详细介绍程序流程的图。

    目前、我无法重现您的问题、因为我没有机会在 SPP 演示应用程序上执行修改以适应您的测试用例、因为我不在办公室。

    仔细思考复制路径、看看您在末尾对 SPP 演示执行了所需的修改并再现了问题、您是否想与我分享您修改的 SPPdemo.c? 您可以将其附加到此处、或将其发送给 Vincenzo、如果文件包含敏感信息、则可将其内部传递给我。

    此致、

    Michael