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.

[参考译文] CC2564MODA:蓝牙堆栈(Bluetopia)-在 HCI_RESET 命令之后、BSC_Initialize ()上出现错误-4

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1002930/cc2564moda-bluetooth-stack-bluetopia---error--4-on-bsc_initialize-after-hci_reset-command

器件型号:CC2564MODA
主题中讨论的其他器件: MSP432P401RMSP432E401YCC2564C

下午好。

我们在项目中尝试使用 Bluetopia 蓝牙堆栈时面临一些挑战。 我们使用基于 MSP432E401Y MCU 修订版 B 和 CC2564MODA 修订版1.0的定制硬件。 我们的测试基于堆栈提供的 SPPDemo。 由于该示例基于 MSP432P401R、因此我们必须更新 MCU 的一些代码。 我们更新的唯一文件是:

  • Bluetopia/hcitrans/HCITrans.c
  • 平台/MSP-EXP432P401R/HAL.c
  • 平台/MSP-EXP432P401R/HAL.h
  • 平台/MSP-EXP432P401R/HRDWCFG.h

主要更改是将 MSP432P401R 函数直接转换为 MSP432E401Y driverlib 函数。 我们能够通过 UART 与 CC2564MODA 进行通信、并使用 HCI 传输层函数 HCITR_COMWrite 发送 HCI_RESET (0x01 0x03 0x0C 0x00)命令。 我们成功接收到来自 CC2564MODA 的有效响应、CC2564MODA 是命令完成事件(0x04 0x0E 0x04 0x01 0x03 0x0C 0x00)。 接收到的数据成功存储在 UARTContext.RxBuffer 中、并 由 HCITR_COMProcess 传递给_COMDataCallback。 但是、在我们将所有七个字节传递到上层后、会调用函数 HCITR_COMClose、并且 BSC_Initialize 返回  BTPS_ERROR_HCI_INITIATING_ERROR (-4)。 我们确认数据以正确的顺序正确发送到上层、并通过分解调试正确调用回调。

我们不理解为什么栈无法处理数据并继续执行初始化过程。 我们对如何处理这一问题没有什么想法。 我们还使用 CC256X_Logger 进行调试、但它仅记录数据、直到处理 HCI_Reset。 我将留下记录器以及 HCITR_COMProcess 和 HCI UART RX ISR 的屏幕截图。 HCI UART 配置有硬件流控制和115200波特率。 在示波器上、所有数据均已正确可视化。

这也是堆栈中看似奇怪的行为。  在使用最后一个字节调用_COMDataCallback 后、它指向的地址更改为0x00000000。 这是预期的行为。 在指向 HCITR_COMDataCallback_UART (0x000047DF)之前。 因此、当调用 HCITR_COMClose 时、不会在以下行中再调用回调:

/* All finished, perform the callback to let the upper layer know */
/* that this module will no longer issue data callbacks and is    */
/* completely cleaned up.                                         */
if(COMDataCallback)
   (*COMDataCallback)(HCITransportID, 0, NULL, CallbackParameter);

CC2564MODA Logger Data

HCITR_COMProcess

HCI UART RX ISR

我们还有其他问题可能会干扰堆栈的工作方式。 我们注意到、该堆栈附带了2015年的 CC256XB.h 文件。 我们下载了具有相同文件但日期为2017年的 Service Pack 1.8。 我们正在使用新的解决方案,但它仍然没有解决问题。 我们是否正确地假设我们应该为 CC2564MODA 使用文件 CC256XB.h 而不是 CC256X.h?
我们还阅读了一些论坛帖子、我们可以使用 BHET 工具将 BTS 文件转换为.H 文件、但似乎无法下载。 我们只能订阅通知。

是否可能缺少任何项目配置或文件? 我们使用 Code Composer Studio 10.1.1.00004来编译和运行该项目。

我们已经花了几周时间来解决这个问题。 我们确实需要您的一方提供一些输入。

非常感谢您的支持。

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

    我们将在几天内回来.. 在平均时间内、您是否按照版本指南中的说明尝试了 MSP432EVM 设置? (https://www.ti.com/lit/pdf/swru497)。请使用此设置作为参考、然后将其移植到您的定制板。

    谢谢

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

    你(们)好、Hari。 感谢您的回复。

    我们已经尝试过该设置。 我注意到该指南引用了蓝牙模块 CC2564C。 但是、我们使用的是 CC2564MODA。 在其页面上、它引用 了适用于 CC256xB 的蓝牙服务包、即适用于 B 型号而非 C 型号。此外、我使用的堆栈版本为4.0.3.0 (CC256XMS432BTBLESW)、与 C 版本4.2.1.1 (CC2564CMSP432BTBLESW)不同。

    哪一个是正确的?

    谢谢。

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

    是的、您需要使用 CC256XB.h 要将 BTS 文件转换为*。h 文件、您可以使用 https://www.ti.com/tool/WILINK-BT_WIFI-WIRELESS_TOOLS 中的 BTStranform 工具

    谢谢

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

    你(们)好、Hari。

    我使用的是文件夹 cc256xb_bt_sp_v1.8\CC256XB_BT_SP\v1.8\Bluetopia 上的服务包随附的 CC256XB.h。 使用此文件、我生成了先前发布的日志。

    我还尝试  使用 BTStransform 工具将文件 initscripts-TIInit_6.7.16_bt_spec_4.1.bts 转换为.h。 在论坛上的另一篇文章中、有人建议使用"仅数据"和"HCI 格式"配置。 我使用了该格式并替换了 CC256XB.h 上 BasePatch 阵列上的数据 执行此操作后、大多数主机控制器日志消失。 即使还原文件的先前版本、日志也不再正常。 接收到 HCI_RESET 响应后、堆栈仍在相同位置停止。

    我不清楚如何将 BTS 直接转换为*。h、因为没有特定的选项、并且保存类型仅为*。c 和*。*。

    另一个需要提及的重要事项是、我们不是直接使用 SPPDemo 项目。 我们在新 MCU 上编译项目时遇到了许多问题。 我们使用了使用 driverlib 的 MSP432E401Y Launchpad 的 UART_echo 示例。 我们后来将 Bluetopia 文件导入到了项目中,并使用 SPPDemo 项目中的 main()。 是否可能有任何缺失的工程配置阻止其正常工作? 我们目前没有任何编译错误。

    谢谢。

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

    关于 BTS 转换-我选择以下配置:

    a)创建一维数组 b)常量变量 c) HCI 格式 d) Bigarray。  

    将数组内容放入*。h 文件中。

    我们将回顾其他人并返回...

    谢谢

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

    您是否能够创建和集成 CC2564XB.h 头文件? 确保 BTPSVEND.C.中包含此文件  

    谢谢