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.

[参考译文] RTOS/LAUNCHXL-CC2640R2:中央双向音频丢失帧

Guru**** 2468610 points
Other Parts Discussed in Thread: CC2650RC, CC3200AUDBOOST

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/714896/rtos-launchxl-cc2640r2-central-bidirectional-audio-missing-frames

器件型号:LAUNCHXL-CC2640R2
主题中讨论的其他器件:CC2650RCCC3200AUDBOOST

工具/软件:TI-RTOS

你(们)好  

我正在使用 CC2640R2的中央双向音频项目来连接和接收来自 CC2650RC 的语音、但在对信号进行流式传输时、我始终会收到如下所示的相同错误。 当我单击 MIC 按钮1或2秒时、会发生这种情况。 即使我快速单击、也会出现丢失的帧。

此外、该项目应与 CC3200AUDBOOST 配合使用以收听音频、但如果没有该项目、我如何才能实现? voice.py 也未检测到任何 USB 设备。

提前感谢、

圣保罗大公会

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有人吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否正在使用开箱即用示例? 您是否有运行此演示的 Booster Pack?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好

    我在 CC2650RC 和 CC2640R2上运行开箱即用示例、但我不使用 Booster Pack、因为我没有 Booster Pack、我想发送数据到 Booster Pack、通过 UART 或其他方式发送数据以进行处理。

    此致、
    圣保罗大公会
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您使用的是哪个版本的软件?
    您能否指定版本以便我们验证软件?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当然、我使用的是 CCS v7.4.0.00015
    编译器:TIv19.9.6.LTS
    对于 CC2640R2、我将使用 CC2640R2SDK 版本1.50.0.58

    对于 CC2650RC、我将使用 BLE SDK 版本2.2.2

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

    你好 Guilherme

    我有相同的问题、但是、如果我删除了"丢失帧"的 Display_print、即使帧仍然丢失、我也不会再得到默认的 Spinlock 错误。

    谢谢、

    João Louro

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

    您在哪里可以重现此问题 Christin?

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

    帧格式有问题。

    CC2650RC 将在五个20B 通知之间分割一个100B 语音帧。 但是、为了提高吞吐量、CC2640R2双向语音演示将使用 Data Length Extension 在单个数据包中发送整个语音帧

    为了使两者兼容、您可以修改 RC 项目以使用 DLE 和100B 帧、或修改中央项目以在将帧传递到解码函数之前从5个通知中重新汇编帧。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sean、

    如何使用 DLE 放置遥控器?它是什么?

    在我单击 MIC 按钮后、我将被分解并得到原因8。

    我将 RC 项目更改为使用100B 帧、但不确定 DLE 是什么。

    已尝试拒绝 default_enable_update_request、但如果我这样做、即使我没有按下 MIC、它也会冻结并且不会断开连接。

    此致、

    圣保罗大公会

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

    您是否有监听器可用、确切地了解无线传输的内容将非常有帮助?

    DLE 是数据长度扩展、双向项目默认使用它、以防止通知在 BLE 控制器级别被碎片化。

    原因代码0x08与连接超时一致、监听器捕获将为我们提供有关此的更多信息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Sean、

    我没有嗅探器、是否有其他方法可以找到问题?
    这是不是因为标头? 因为20B 帧的标头可能不同于双向所需的100B 帧头...

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

    您好 Sean、

    我使用了监听器、我将获得以下结果:
    [15:30:55:226]:接收到“特征值通知”事件
    [15:30:55:226]:属性句柄:0x002A
    [15:30:55:226]:值:[04]

    这是 START 命令、在此之后、如果启用了所有通知、我将不会收到任何通知并被取消选择。


    此致、
    圣保罗大公会

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

    您正是关于帧大小的。 双工音频期望帧长为100B。
    但是、它只针对命令提供1B。

    开始/停止在 AudioDuplex_processData()中进行处理,您能否设置断点并查看发送 start 命令时会发生什么情况?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sean、

    在 AudioDuplex_processData()中, 它将检查 DATA_TYPE,且 DATA_TYPE 为"AudioDuplex_start_stop",因为它是字符而不是数据。

    然后检查流的类型、它是 ADPCM、因此它会调用函数"AudioDuplex_startStreaming (AUDIO_DUPLE_STREAME_TYPE_ADPCM)"并显示"ADPCM 流已启动"。

    但在"AudioDuplex_startStreaming "中、它表示请求的流类型是 MSBC 和 ADPCM、首先将流变量分配为 ADPCM、然后将其分配为 MSBC

    此致、

    圣保罗大公会

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    一天之后、我得出结论、问题在于遥控器的发送方式、因为如果我更改通知大小、它不发送任何内容、它只发送启动命令。
    如何使 DLE 工作以检查问题是否是缺少该扩展。

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

    可以在堆栈项目的 build_config.opt 文件中启用数据长度扩展。
    在软件开发人员指南(www.ti.com/.../swru393)中 、您需要执行以下操作:

    使用 DLE 构建、第5.9节设置 EXT_DATA_LEN_CFG
    2.将 MAX_PDU_SIZE 设置为与双向音频示例相同、这将允许协商较大的 MTU
    3.更改 HIDAdvRemote_transmitAudioFramel()以发送单个100B 通知,而不是5个20B 通知。