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.

[参考译文] CC2564MODN:在某些电路板中无法建立 BLE 传感器连接、错误0x3E

Guru**** 2595805 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/605305/cc2564modn-ble-sensor-connection-failed-to-be-established-in-some-boards-error-0x3e

器件型号:CC2564MODN

您好!

在我们的项目中、我们将 CC2564MOD 与 MediaTek Linkit7688集成在一起。 处理器模块在 OpenWRT 上运行、并在115200上通过 UART 与 CC2654进行通信。 我们使用 gatttool 连接   到 BLE 传感器、包括 TI 传感器标签。 目前我们面临的问题是、在某些电路板中、我们无法连接传感器。 而在其他一些产品中、我们不会面临任何问题。

我们采取的步骤和观察结果如下:

首先、我们尝试使用 hool citlescan 扫描 BLE 传感器。

然后、从 MACID 列表中、我们尝试使用 gatttool -i hci0 -b 启动交互式会话进行连接 -t public -i、然后发出命令 connect。

3.在工作情况下,连接成功消息将会亮起。 在不工作的情况下、在连接成功消息后不久、我们将收到一条错误消息"连接无法建立"、错误代码为"0x3E"。

4.当我们将 Linkit7688与 CC2654 TI 评估套件连接时、我们已尝试隔离问题并发现相同的问题。

5.我们尝试测试了两种电路板的连续传输功率水平,它们是相当的。

6.在处理器模块中使用相同的软件和固件时,我们无法正确地得出问题的结论并找到合适的解决方案。

请有人就此为我们提供指导。

PFA:包含 hcidump 详细信息的屏幕截图、用于两种情况。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们的 BT 专家将进行审核并很快回来。

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

    以下是我们在测试和调试之后进行的更新。

    我们用于初始化的初始化脚本只有 initscripts-TIInit_6.7.16_ble_add-on.bts、我们将其重命名为 TIInit_6.7.16.bts 并放置在/lib/firmware/ti-connectivity.中
    {但我们不理解为什么某些电路板使用相同的固件运行正常。}

    2.我们尝试在 processors.wiki.ti.com/.../CC256x_Service_Pack_User's_Guide 之后创建新的 init 脚本。

    但是,在进行此更改后,设备未进行正确的初始化,并抛出错误“Can't init device hci0:device or resource busy (16) Can't initialize device:device or resource busy”,同时发出“hciattach /dev/ttyS0 Texas 115200”。

    我们观察到的情况是、在 TI 的 hcitester 工具中重新打开组合 TIInit_6.7.16.bts 时、保存前被替换为"任何"的"0x00"本身仍然为"0x00"。

    5.我们假设,当处理器尝试初始化 CC2654时,除成功(0x00)外,使用'ANAIN'其他返回值时,初始化失败,因为等待调用需要0x00。

    我们请求您提供 TIInit_6.7.16.bts 的正确工作副本、其中组合的 initscripts-TIInit_6.7.16_bt_spec_4.1.bts 和 initscripts-TIInit_6.7.16_ble_add-on.bts、所有0x00都替换为"任何"、以便我们尝试初始化和测试相同的内容。

    还希望了解为什么在某些情况下、具有 initscripts-TIInit_6.7.16_ble_add-on.bts 的电路板运行正常。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Krr、

    请使用以下 git 中的 TIInit_6.7.16.bts。
    git.ti.com/.../initscripts

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

    Vihang、您好!

    感谢您的回答。

    我们尝试从 指定的 GitHub 位置使用 TIInit_6.7.16.bts 文件。 在我们发出命令"hciattach /dev/ttyS0 Texas 3000000"后。 我们获得如下输出:

    root@mylinkit:/# hciattach /dev/ttyS0 Texas 3000000
    找到了德州仪器的芯片!
    固件文件:/lib/firmware/ti-connectivity/TIInit_6.7.16.bts
    已加载 BTS 脚本版本1
    TExaS:将波特率更改为3000000、将流控制更改为1
    初始化超时。

    我们尝试了115200、波特率也是如此、结果是类似的、与我们之前的占空比相当。

    在使用 hcitester 工具进一步检查 BTS 文件时、我们发现脚本与我们之前尝试过的相同、所有"数字 HCI 命令"和"状态"均为0x00、而不是任何命令。

    您能否确认一下、为什么 这样、当 processors.wiki.ti.com/.../CC256x_Service_Pack_User's_Guide 提到需要将所有"0x00"转换为"任何"时、以及为什么 hcitester 工具不起作用、不允许我们以正确的方式保存 BTS。

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

    e2e.ti.com/.../TIInit_5F00_6.7.16.bts.txtHello所有、

    我们对编辑的 BTS 文件进行了一些递归测试、更改了状态、命令数量和波特率、并发现对于状态的 FF 值以及"等待"调用中的命令数量、 波特率 为115200时、我们能够正确初始化器件。 我们还能够在以前的非工作场景中验证 BLE 传感器的连接能力。

    附加 BTS 文件、以便 TI 一方进一步验证。 (已将其重命名为 TIInit_6.7.16.bts.txt、因为此处不支持 BTS 附件。)

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

    HCI 命令的状态/数量值"ANE"与"0x00"是特定于 hcitester 的。 只有当尝试从 HCITester 运行脚本时、HCI 命令参数的数量才需要为"任何"。 当该脚本被保存以便与主机处理器上的任何其他 BT 堆栈一起使用时、该参数必须为"0x00"。 这就是 HCITester 在保存脚本时将此参数更改为"0x00"的原因。

    我能够将 Git 中未经修改的 TIInit_6.7.16.bts 与 TI 双模蓝牙堆栈和 BlueZ 配合使用。 因此、除非在 bluez 源代码中进行了更改、否则此操作不会发生任何更改。 关于状态中的0xFF 值和命令数参数、蓝牙规范中没有定义0xff 状态代码、因此不建议更改此代码。

    此致、
    Vihang