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.

[参考译文] CC2564B:Openstack()不能#39;t return

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/666490/cc2564b-openstack-doesn-t-return

器件型号:CC2564B

您好 TI。 我目前正在尝试在 EK-TM4C123GXL + CC2563B 上启动 A3DP_Sink 演示。 BOOST-CC2564MODA 版本中的第二个(SWRU444用户指南)。 我在 Windows 10上使用最新的 Code Composer Studio。 我已经将 A3DPDemo_SNK 示例从 DK-TM4C123G 移植到 EK-TM4C123GXL:所有代码都成功编译和刷写。 但是、当我启动系统调试控制台时、仅输出

Openstack()。 

似乎程序卡在某个位置

结果= BSC_Initialize (HCI_DriverInformation、0); 

因为如果我输入

显示("结果:%d.\r\n\r\n、结果); 

在执行此命令后、它永远不会打印。 但是、如果我激活断点并转至分步调试接口、则会显示结果值为-4。 实际上,即使 在整个 Bluetopia 栈文件夹中搜索,我也找不到 BSC_Initialize()函数的实现... 此外,调试器显示 HCITR_COMOpen()函数返回-1,因此我认为主机无法建立 HCI UART。 但是、为什么控制台上没有错误指示是一种奇怪的行为。 那么、什么是正确的连接? 我已经使用 STM32F401RE + BTSTACK 以及4条 UART 线和1 nSHUTD 测试了该模块、因此电路板绝对不会损坏。 我目前决定以相同的方式将模块连接到 Tiva:使用外部电线、而不是 BoosterPack 的 J1-4 (尽管引脚排列看起来完全兼容)。 我的电流引脚分配为(Tiva -> BoosterPack):

  • HCI UART:UART1 -> UART_1、
  • RX:PB0 -> TX:UART_TX_1、
  • TX:PB1 -> RX:UART_RX_1、
  • RTS:PF0 -> CTS:UART_CTS_1、
  • CTS:PF1 -> RTS:UART_RTS_1、
  • HCI_RESET:PB2 -> BT_nSHUTD_1 (复位什么? nSHUTD1/2或 RST?)、
  • LED_0:PF3 (红色)、
  • 按钮:PF4 (SW1)(此按钮的用途是什么? 为什么它的定义尚未被标头采用?)。

我还尝试在两个电路板上连接 RST 引脚(没有区别)。 电源从 Tiva 进入 BoosterPack 3V3引脚。 当系统上电时、BoosterPack 上的绿色 LED 亮起(成功的复位例程)、但在1-2秒后熄灭、Tiva (堆栈的 LED_0)上的红色 LED 亮起。

另一个问题是有关修补程序的问题。 进行一些搜索后、我发现 Bluetopia 栈中的 CC256XB_patch 可能已过时。 那么、我开始处理这个问题:

  • 下载 适用于 CC256xB 的蓝牙服务包
  • 安装 无线工具 (桌面上的一组图标)、
  • 注释掉此处建议的指定波特率的前两行
  • 尝试由 HCITester 生成.h 文件-> BTS 转换失败(与 Bluetopia 文件夹中的.h 看起来完全不同)、
  • 尝试在 Internet 上查找修补程序
  • 尝试安装蓝牙硬件评估工具失败、
  • 在 VM 上安装 Windows XP 并最终生成头文件、

最后是某种解决方案。 但是 、Bluetopia 文件夹中的.h 还包含#ifdef 指令、2种类型的补丁(BasePatch、LowEnergyPatch)、DATA_SECTION #pragma 等。 我认为 TI 还应提供这些补丁作为完整的.h 文件、开发人员可以轻松地将其集成到工具链中。

我的帖子可能会有点混乱(或很多)、但当示例演示应用程序无法正常工作时、这会令人沮丧和烦恼。 请提供任何帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您采取了哪些步骤来尝试使用 BTS Transform 转换文件?

    此外、在编译器(在 CCS 中)中、您预先定义了哪些符号?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1. HCI 测试仪->命令库窗格->更改 HCI 库->添加"TIInit_6.7.16.xml"->打开"initscripts-TIInit_6.7.16_bt_spec_4.1.bs"->单击 BTS 转换->更改所有尝试实现与 Bluetopia' CC256XB.h 文件格类似的选项。 不用担心,我现在可以在 VM 中启动 WinXP,将 BTS 转换为.h (也可以禁用睡眠模式,正如在 CC256X Wiki 中所说的(BHET ->修改 SP ->睡眠模式)),BHET 的输出无论如何都与所需的格式最为相似(尽管它不包含 pragma,ifdefs...)。 我一次打开了三个 BTS 脚本中的一个、并将它们另存为.h、然后将它们合并到单 个 CC256XB.h 中、就像在原始脚本中一样。

    2. 项目的预定义符号:

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

    好的、我稍微更改了引脚、现在 Tiva UART RTS 和 CTS 上分别为 PC4和 PC5、因为我建议开关 SW1和 SW2及其上拉电阻器可能以某种方式影响连接。 现在、BoosterPack 上的绿色 LED 在加电后亮起、并保持此状态、并且 Bluetopia 栈的红色 LED 未亮起。 HCITR_COMOpen()现在返回1,我认为这也是一个好的标志。 尽管演示仍然不起作用,而且我无法跟踪确切的调用栈,因为没有像我之前提到的那样的某些函数源,如 BSC_Initialize()。 即使我调试和查看调用栈、也没有明确的函数调用顺序、因此我无法确定下一步将执行的步骤:

    我监听 MCU 之间的 UART 流量、发现两侧都以115200的速率接收和传输几个字节:

    • Tiva RX: 04 0E 04 01 03 0C 00 04 0E 04 01 03 0C 00 FC 04 0E 04 01 03 0C 00 (3次复位后)
    • Tiva TX: 01 03 0C 00 01 03 0C 00 01 03 0C 00 (同样在3次复位之后)

    这些信息可能会有所帮助。

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

    您在移植方面做了哪些更改? 我只是想确保在检查堆栈之前采取了所有正确的步骤、因为演示应该开箱即用。

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

    因此、我将 A3DPDemo_SNK CCS 项目作为参考、并首先对其进行编译、以确保我实际上可以使用工具。 似乎有些路径应该位于 C:\、因此我将"Bluetopia"和"Hardware"文件夹复制到 C:\。 我在两个路径(C:\和 C:\ti\Connections\CC256X BT\CC256x M4 Bluetopia SDK\v1.2 R2\Cortex_M4)上填充以下所有更改。 然后我复制了该项目并开始修改它。 在 CCS 中、我创建了新配置:调试- EK-TM4C123GXL、并仔细 检查了所有属性以匹配当前系统状态。 我编辑了

    C:\ti\Connectivity \CC256X BT\CC256x M4 Bluetopia SDK\v1.2 R2\Cortex_M4\BuildScriptsSetTivaWarePath.bat

    添加一个构建脚本并创建

    C:\ti\Connectivity \CC256X BT\CC256x M4 Bluetopia SDK\v1.2 R2\Cortex_M4\BuildScriptsTivaWarePath_EK_TM4C123GXL_CCS.txt

    文件。 当然、我已经修改了 HALCFG.h 和 HALCFG.c 中的引脚 移植工程的最终视图为:

    内存分配:

      您可以在附加的文件中找到两个项目的构建日志、BuildScriptsSetTivaWarePath.bat、BuildScriptsTivaWarePath_EK_TM4C123GXL_CCS.txt 和新项目。 遗憾   的是、HALCFG.h、HALCFG.c、CC256XB.h 和其他相关文件不会通过 CCS 导出、因此我已单独插入它们。

    e2e.ti.com/.../8304.A3DPDemo_5F00_SNK_5F00_EK_2D00_TM4C.zip

    e2e.ti.com/.../0602.HALCFG.h

    e2e.ti.com/.../3326.HALCFG.c

    e2e.ti.com/.../1768.CC256XB.h

    e2e.ti.com/.../TivaWarePath_5F00_EK_5F00_TM4C123GXL_5F00_CCS.txt

    e2e.ti.com/.../SetTivaWarePath.bat.txt

    e2e.ti.com/.../A3DPDemo_5F00_SNK_5F00_build_5F00_log.txt

    e2e.ti.com/.../A3DPDemo_5F00_SNK_5F00_EK_2D00_TM4C_5F00_build_5F00_log.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的第一个建议是切换到作为主机的 MSP432、但我知道此时可能不可行。 如果没有、您是否有 DK-TM4C123G 可用于测试原始应用? 这对于确保已正确完成对 HALCFG 文件的所有移植可能很有用。 如果不是、我建议探测您在 HALCFG 文件中所做的每一行更改、以确保所有操作都符合预期、因为应用程序陷入 OpenStack 中、这一事实仍然让我相信这是由移植引起的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、我终于找到了问题的原因:我忘记粘贴了

    控制台 IntHandler, // UART0 Rx 和 Tx 

    在 startup_ccs.c 中、这就是 OpenStack ()失败的原因。 现在、我看到完整的控制台和演示实际上在工作。 但 BCK 输出的输出频率太高、大约为3.53MHz 而不是44.1kHz、因此当我插入外部音频编解码器时、质量太差:许多失真等(对于 UDA1334A 音频有噪声、而对于 PCM5102A 则根本没有音频)。

    控制台输出示例:

    Openstack()。
    HCI_VS_InitializeAfterHCIReset
    VS_Update_UART_Baud_rate 成功。
    HCI_VS_InitializeAfterHCIReset 成功
    结果:1.
    蓝牙协议栈 ID:
    1 A3DP 接收功能已启用。
    器件芯片组:4.1
    BD_ADDR:b048f49d3c
    支持的格式:
    频率:44100、通道:2、标志:0
    频率:48000、通道:2、标志:0
    频率:48000、通道:1、标志:0
    频率:44100、通道:1、标志:0标志
    
    
    *命令选项:查询、DisplayInquiryList、Pair、 *
    * EndPairing、PINCodeResponse、PassKeyResponse、*
    UserConfirmationResponse、 *
    * SetDiscoverabilityMode、SetConnectabilityMode、*
    SetPairabilityMode、SetBaudRate *
    * ChangeSimplePairingParameters、 *
    * GetLocalAddress、GetLocalName、SetLocalName、*
    GetClassOfDevice、SetClassOfDevice、 *
    * GetRemoteName、OpenSink、CloseSink、 *
    * RemotePlay、RemotePause、RemoteNext、 *
    * RemotePrevi,帮助 *
    
    
    A3DP+SNK>openink
    A3DP 端点已成功打开。
    
    A3DP+SNK>
    atLinkKeyRequest:0x8058f84f9b46
    
    GAP_Authentication_Response 成功。
    
    A3DP+SNK>
    atIOCapabilityResponse:0x8058f84f9b46
    功能:显示是/否
    
    A3DP+SNK>
    atIOCapabilityRequest:0x8058f84f9b46
    
    身份验证成功。
    
    A3DP+SNK>
    atUserConfirmationRequest:0x8058f84f9b46
    
    自动接受:454046
    
    GAP_Authentication_Response 成功。
    
    A3DP+SNK>未处理的授权。 事件。
    
    A3DP+SNK>
    atLinkKeyCreation:已
    存储0x8058f84f9b46链接密钥。
    
    A3DP+SNK>
    etAUD_Signaling_Channel_Open_Indication
    BD_ADDR:0x8058f84f9b46
    
    A3DP+SNK>
    etAUD_Stream_Open_Indication
    BD_ADDR: 0x8058f84f9b46
    MediaMTU:1008
    流类型:SNK
    A3DP 打开:0
    流格式:
    频率:44100
    通道:2
    标志: 0
    
    A3DP+SNK>
    etAUD_Remote_Control_Open_Indication
    BD_ADDR: 0x8058f84f9b46
    
    A3DP+SNK>
    etAUD_Stream_State_Change_Indication
    BD_ADDR: 0x8058f84f9b46
    StreamType:SNK
    StreamState:Started
    A3DP Start:0 

    这适用于 CC256XB 补丁(默认和1.6)。 也许我应该将 AVRCP 补丁上传到 CC2564B? 在原始 CC256XB.h 文件中、只有 BasePatch 和 LowEnergyPatch。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、您将需要适用于音频应用的 AVRCP 补丁、例如 A3DP_SNK。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经添加了 AVRCP 补丁、但似乎没有帮助。 我已经通过蓝牙硬件评估工具转换了 initscripts-TIInit_6.7.16_avpr_add-on.bts。 进行了线性连接

    RET_val = Download_Patch (BluetoothStackID、AvprPatchLength、AvprPatch); 

    我认为该补丁应该上传到 CC2564B。 调试器显示 RET_val 为1 (成功)、我还会在"Memory Allocation"窗格中看到"BasePatch"和"AvprPatch"。 不包括 LowEnergy 补丁、因为它表示一次只应上传一个补丁。 我还错过了什么?

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

    您是否有完整的 AVRCP 补丁? 我的回答似乎不正确:上传与否没有区别。

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

    您好!

    请参阅附件中的 CC256XB.h 文件。 此文件基于 CC256XB-BT-SP 的版本1.6、并经过转换后可与适用于 CC256XMS432BTBLESW 等其他 MCU 平台的 TI 蓝牙堆栈搭配使用。 但是、我很肯定、它也可以在 Tiva 堆栈版本中正常工作。

    此致、

    Vihang

    e2e.ti.com/.../CC256XB_5F00_BT_5F00_SP_5F00_v1.6_5F00_C_5F00_array.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    遗憾的是、使用此补丁、结果仍然相同(SCLK 输出频率过高)。 也许我的 BOOST-CC2564MODA 副本在某种程度上损坏了。 我没有任何 DK-TM4C123G 或 MSP432板可供测试。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    [引用 user4299601"]不幸的是,使用此修补程序,结果仍然相同(SCLK 输出频率太高)。[/引用]

    该补丁是 CC256xB 固件的服务包/错误修复。 不应首先解决您可能遇到的任何主机端问题(或与音频编解码器 IC 相关的问题)。 我共享了转换后的文件、因为您提出了对它的需求。

    [引用 user4299601]BOOST-CC2564MODA 的副本可能 会因某种原因损坏。 我没有 任何 DK-TM4C123G 或 MSP432板可供测试。

    这很有可能。 同时、SDK 中的示例应用旨在开箱即用地在特定的硬件平台上工作。 SDK 用户指南中详细介绍了示例应用的特定硬件要求。 因此、请使用我们已测试示例应用的推荐硬件、然后从该硬件开始您的移植工作。

    [报价用户="user4299601"]也许我的帖子有点混乱(或很多),但当示例演示应用程序不起作用时,它令人沮丧和烦恼。

    示例应用确实可以在其设计的硬件上开箱即用。 之后执行的任何移植都会导致您看到的错误。 因此、请参阅我在上面的评论、系统地移植示例应用、而不是简单地对其执行 Ping 操作。

    此致、

    Vihang