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.

[参考译文] LAUNCHXL-CC1352P:SimpleLink 音频插件 BLE 双向音频演示项目上的按钮无响应

Guru**** 2511415 points
Other Parts Discussed in Thread: CC1352P, CC3200AUDBOOST

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/915690/launchxl-cc1352p-buttons-unresponsive-on-simplelink-audio-plugin-ble-bidirectional-audio-demo-project

器件型号:LAUNCHXL-CC1352P
主题中讨论的其他器件:CC1352PCC3200AUDBOOST

我正在尝试从 SimpleLink 音频插件运行 BLE 双向音频演示项目、虽然初始 PuTTY 输出看起来正确、但按钮没有响应。 我在 CCS 连接到电路板的情况下尝试过相同的结果。 我尝试使用 CCS 运行、并在 central_bidirectional audio.c 第703行的 Button press event 函数 CentralAudio_handleKeys ()处设置断点、但代码永远不会出现。  当我在最初运行演示后停止 CCS 时、堆栈窗口包括以下跟踪:

中央_双向_音频_CC1352P_2_LAUNCHXL_tirtos_ccs [Code Composer Studio -器件调试]
德州仪器(TI) XDS110 USB 调试探针/Cortex_M4_0 (挂起)
__asm__11_driverlib_c_a91c79fe__CPUwfi () at cpu.h:189 0x1000060A
driverlib.c 的 PRCMDeepSleep ():3、580 0x100036C4
llResetRadio()[C:/Users\a0322160\Documents\CCS_Workspaces\CCS10_AUDIO_BLE\central_bidirectional 音频_CC1352P_2_LAUNCHXL_tirtos_CCS\Debug\central_bidirection_audio_CC1352P_2_LAUNCHXL_tirtos_ccs.out],地址为0x2000B4
driverlib.c 的 PRCMDeepSleep ():3、580 0x100036C5
0x10000000 (未定义符号)

下面是我的设置的详细信息:

当我为电路板加电或从 CCS 运行时、我会在 PuTTY 上获得以下输出、但按钮没有响应。

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

    我不确定这是否是对某人有用的线索,但在使用 CCS 四处走动之后,我发现在启动之后的早期,代码会在  CentralAudio_processHCIMSg()中遇到 HCI_BLE_hardware_ERROR_EVENT_CODE 切换案例。 请参阅以下 HCI 事件错误结构的屏幕截图:

     我希望这对他人来说意味着什么、并能带来更多有关错误的信息。

    R、

    Ruben

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

    我确认 launchpad 和音频 Booster Pack H/W 都可以正常工作、因为我能够从 SL 音频插件成功运行音频回声演示。  我还可以在此 Launchpad 上通过 simplelink_cc13x2_26x2_SDK_3_30_00_03成功运行简单的中央示例。 该板可通过该演示正常工作、包括按按钮进行菜单导航以及射频扫描等  

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

    尊敬的 Ruben:

    我是否可以要求您验证堆栈大小是否正确? 您可以在 CCS 上使用 ROV 来实现该目的。

    另一个想法是基本上增加堆栈大小。

    此致、

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

    Clement、

    感谢您的观看。 请参阅随附的具有未更改演示设置的 ROV 视图。 我还尝试将系统堆栈加倍至2048、并确认没有效果。

    -Ruben

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

    我为 数据对齐启用了硬件异常、现在我得到了一个异常。 这似乎是一个好线索、但我不确定如何解决。 应用程序/堆栈的链接方式是否存在问题?

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

    嗨、Ruben、

    感谢您提供的所有额外详细信息以及 ROV 捕获和所有内容。

    根据以下文章、在 llRfSetup 中看到该异常是预期的: https://e2e.ti.com/support/wireless-connectivity/bluetooth/f/538/t/634898?CCS-LAUNCHXL-CC2640R2-simple-peripheral-causes-unaligned-exception-when-enabled-in-BIOS-start-

    我们可以确认这一点以排除它。  

    就 HCI 错误代码而言、错误代码似乎是0x03、在 BLE 规范中定义为 HCI_ERROR_CODE_HW_FAILURE、该规范说明如下:

    硬件故障错误代码向主机指示中的内容
    控制器出现故障的方式无法描述任何其它错误
    代码。 此错误代码中隐含的含义取决于实现方式。

    鉴于此异常来自链路层、并且对硬件故障的描述似乎可能重合、因此我们可以要求 RND 团队查看这是否是真正预期的异常、或者是否可能是问题。  

    我需要 Clement 亲自测试一下、因为他目前是唯一一个拥有因办公室限制而重新创建此项所需硬件的个人、所以他可以查看该项是否可复制。  

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

    谢谢 Evan。 我也看到了关于未对齐访问故障的帖子、我同意这是一个错误。 我通过使用 CC2642R1 Launchpad 运行音频流演示来证明这一点。 开箱即用的音频流演示在该 Launchpad 上正常工作、如果我取消屏蔽未对齐的访问异常、我在该电路板上也会收到一个异常。 因此、该异常不是 CC1352P-2电路板上问题的原因、应禁用该异常。

    我还确认了 CC2642R1板报告相同的 HCI 错误代码、即使它工作正常且上面的按钮响应也是如此。 因此、相信这一点也可以忽略不计。

    我们需要在 CC1352P-2电路板上进行此工作、因为应用需要 PA 来实现扩展范围。

    请告诉我团队对此有何发现。

    -Ruben  

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

    尊敬的 Ruben:

    非常感谢您的耐心等待。

    事实证明、问题是由 PIN 中断引起的。 由于用于按钮的 GPIO 上存在错误(例如、CC1352P Launchpad 上用于按钮的引脚与 CC26X2略有不同)、因此无法正确处理按钮引起的中断。

    我是否可以要求您修改文件 ti_drivers_config.h? 该文件应位于 CCS 工程的根目录下。

    /* LaunchPad 按钮 BTN-1 (左)、父信号:CONFIG_GPIO_BTN1 GPIO 引脚、(DIO15)*/
    #define CONFIG_PIN_BTN10x0000000f
    // LaunchPad 按钮 BTN-2 (右)、父信号:CONFIG_GPIO_BTN2 GPIO 引脚、(DIO14)*/
    #define BTN2_PIN_0x0000000e

    此致、

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

    Clement、

    非常感谢您调试该问题。 我没想到它会是这样的。 更改 GPIO 分配后、按钮现在工作。 虽然我可以在电路板之间建立音频流链路、但我的可靠性很差、因为链路经常断开。 即使电路板在我的办公桌上放置了3英尺、这种情况也会发生、所有4种配置选项似乎都是如此。 这是预期的行为、或者演示项目是否仍然存在其他问题。

    -Ruben

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

    下面从中央侧摘录的日志是我断开连接时通常看到的内容。 尽管我还看到它断开连接、并显示另一条关于缓冲器正在流动的消息。


    #000010 [ 38.861]信息:(BLE_AUDIBLE.c:517)在0连接句柄上完成音频服务发现,
    #000011 [ 41.912 ]信息:(BLE_AUDIBLE.c:1003)音频流已启动
    #000012 [426.520]警告:(BLE_AUDIBLE.c:427)连接事件错误:错过事件
    #000013 [441.823]警告:(BLE_AUDIBLE.c:427)连接事件错误:错过事件
    #000014 [ 915.631 ]警告:(BLE_AUDIBLE.c:427)连接事件错误:错过事件
    #000015 [915.684]警告:(BLE_AUDIBLE.c:627)音频服务返回错误,TX:18
    #000016 [915.707] INFO:(central _bidirectional audio.c:645)从20:00:21:00:00:00断开
    #000017 [915.707]信息:(central 双向音频.c:646)数字控制:0

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

    尊敬的 Ruben:

    您正在使用哪种配置(BLE PHY、编解码器、编解码器的比特率、采样频率)?

    您看到的断开连接可能是由于连接丢失。 缺少一些 连接事件并不是一件大事(当您在与其他 BLE/蓝牙/Wifi 设备一起使用的办公环境中运行 BLE 连接时、这是一件很值得期待的事情)。 这里的问题是缺少这些连接事件、您丢失了一些音频数据、而 I2S 模块的音频数据用完了。

    一种不太智能的解决方案可能是添加更多缓冲区(因此、在发生3个错过的连接事件后、您不会断开连接、而是会在发生4个连接事件后丢失连接)。

    一个更好的解决方案是有一种方法来重新填充缓冲器。 此解决方案尚未在我们的代码示例中实现。

    此致、

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

    Clement、

    再次感谢您对此主题的帮助。 我将关闭它、因为您已经解决了原始问题以及更多问题。 遗憾的是、我们无法以我们希望的方式使用该演示、因为可靠性非常差。 为了回答您的最后一个问题、我已经尝试了下面的所有 PHY/编解码器配置、它们都表现出类似的行为。 我想知道 CC1352所需的跳线是否会带来问题。  

    PHY:1M、编解码器:Opus、FS:8kHz、比特率:16000 >
    PHY:1M、编解码器:mSBC、FS:16kHz
    PHY:1M、编解码器:ADPCM、FS:16kHz
    PHY:1M、编解码器:ADPCM、FS:8kHz
    PHY:编码 S=8、编解码器:Opus、FS:16kHz、比特率:24000

    -Ruben

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

    尊敬的 Ruben:

    我忘记了跳线。 他们可能会在这里扮演角色。 尽量保持其紧固。 我通过将导线直接焊接到 BoosterPack 上获得了最佳效果。

    此致、

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

    我尝试将导线缩短到小于1"、结果相同。  

    • 当我使用选项1)[Phy:1M、Codec:Opus、FS:8kHz、Bitrate:16000]时、音频流从30秒到几分钟不等、然后停止。  
    • 当我使用选项4)[PHY:编码 S=8、编解码器:Opus、FS:16kHz、比特率:24000]时、音频流持续时间小于30秒、然后停止。

    在这两种情况下 、电路板之间的距离都大约为3英尺。 错误消息是相同的(见下文)。

    #000011 [ 21.785]信息:(BLE_AUDIBLE.c:1003)音频流已启动
    #000012 [22.715]警告:(BLE_AUDIBLE.c:427)连接事件错误:CRC 错误
    #000013 [24.620]警告:(BLE_AUDIBLE.c:427)连接事件错误:CRC 错误
    #000014 [24.660]警告:(BLE_AUDIBLE.c:427)连接事件错误:CRC 错误
    #000015 [28.135]警告:(BLE_AUDIBLE.c:427)连接事件错误:错过事件
    #000016 [28.135]警告:(BLE_AUDIBLE.c:432)错过的数据包>缓冲区长度、停止流和连接
    #000017 [28.152] INFO:(BLE_AUDIBLE.c:1019)流已停止,正在断开连接
    #000018 [28.153]错误:(central 双向音频.c:874)未知 Cmd 状态:0x0406:0x00
    #000019 [28.207] INFO:(central _bidirectional audio.c:645)从00:00:00:00:03断开
    #000020 [28.202] INFO:(central _bidirectional _audio.c:646)数字控制器:0

    如果您发现他的代码存在任何其他问题、请告诉我、这些问题可能会对您的代码进行解释。

    谢谢

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

    您好!

    为清晰明了、较短的跳线仅会影响音频质量(音频噪声更小)。 此修改对 BLE 链路的可靠性没有影响。

    如前所述、您遇到的断开连接是由于 I2S 驱动程序数据不足、基本上要求 BLE 堆栈关闭 BLE 连接。I2S 驱动程序数据不足、因为 BLE 堆栈错过了一些连接事件。
    这个问题只能通过改进抖动缓冲器的处理方式来解决。 TI 尚未完成此操作、客户有责任对此进行改进。

    此致、