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:cc2564MODA I2S 问题

Guru**** 2589275 points
Other Parts Discussed in Thread: CC2564MODA, CC2564C

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1063395/cc2564moda-cc2564moda-i2s-issue

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

大家好、团队、

我们正在使用 cc2564MOD 蓝牙模块、我们能够加载初始化脚本(TIInit_6.7.16.bts)、并且能够使用 A2DP 配置文件通过 UART 配对、连接和播放歌曲。

我们已将蓝牙配置为从设备、并提供采样率为48kbps 的3MHz BCLK。 当我们尝试使用 HFP 协议进行呼叫时、我们将获得具有大量噪声的音频。 我们在音频引脚上使用示波器探测、我们观察到只有一个通道能够看到数据、而在另一个通道上、我们无法看到数据。

在脚本中添加以下命令后、我们能够获取 I2S 上的数据。

SEND_HCI_VS_Write_CODEC 配置0xFD06、0x0c00、0x01、0x0000bb80、0x0001、 0x00、0x00、0x00、0x0020、0x0001、 0x00、0x0020、0x0001、0x01、0x40、 0x0000、0x0000、0x00、0x0000、0x0000、 0x01、0x00

WAIT_HCI_Command_Complete_VS_Write_Code_Config_Event 5000、0x00、0xfd06、0x00

我在下面附上了示波器图像。

您能帮我们解决这个问题。

谢谢、此致、

Shivasagar。

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

    您好、Shivasagar、

    对于示波器捕获、您是否探测了 AUD_IN 器件引脚? 这些 I2S 示波器捕获吗? 您提到了使用 UART 和 I2S、为了获得最佳音频质量、我建议使用 I2S 外设。

    您似乎没有为第二个通道配置数据大小。 通道1数据大小为0x20、通道2数据大小为0x00。 我建议对两个通道使用相同的大小、但请确保通道2的偏移量是通道1的偏移量。 例如、要在发送通道1数据后立即开始读取通道2、应使用0x21的数据偏移量(通道1数据大小+ 1)。 尝试以下新设置:

    SEND_HCI_VS_Write_CODEC 配置0xFD06、0x0c00、0x01、0x0000bb80、0x0001、 0x00、0x00、0x00、0x0020、0x0001、 0x00、0x0020、0x0001、0x01、0x40、 0x0020、0x0021、0x00、0x0020、0x0021、 0x01、0x00

    将同步乘法器设置为0x40的原理是什么?

    谢谢、
    Jacob

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

     您好、Jacob、

    感谢你们的支持

    问:对于示波器捕获、您是否探测了 AUD_IN 器件引脚? 这些 I2S 示波器捕获吗?  

    无论我们捕获到的是在 AUD_OUT 引脚上探测到的任何内容、都意味着我们在进行呼叫时从蓝牙获取数据、目前我们仅测试单向通信。

    正如您建议的、我们已修改如下设置。

    SEND_HCI_VS_Write_CODEC 配置0xFD06、0x0c00、0x01、0x0000bb80、0x0001、 0x00、0x00、0x00、0x0020、0x0001、 0x00、0x0020、0x0001、0x01、0x00、 0x0020、0x0021、0x00、0x0020、0x0021、 0x01、0x00

    我们仍然没有收到有关负周期的数据、请找到以下附件。 黄色为 framesync (48kbps)、绿色为 AUD_OUT。

    如何仅从一个通道获取数据? 根据数据表、我们也只能启用一个通道、如果可能、您可以共享配置。

    我们需要如下所示的数据。

    请建议我们如何获得上述数据。

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

    您好、Shiva、

    我正在检查您如何仅配置一个通道。 您是否还可以尝试将帧同步占空比增加到与通道大小相同的长度? 例如、您将通道大小设置为0x20、您可以尝试将帧同步占空比设置为相同的值吗? 完成此操作后、您是否可以再次共享 I2S 捕获?

    此外、请确保 CC2564MODA 帧同步边沿使用的边沿与音频编解码器正在采样/置位的边沿相反。 如果音频编解码器在上升沿生效、则应使用 CC2564MODA 上的下降沿。  

    谢谢、
    Jacob

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

    您好、Jacob、

    正如您说    过的、我们将帧同步占空比更改为与通道大小的长度相同、但仍然得到相同的波形。 我更新了以下屏幕截图、请找到。

    请帮助我们按照上述对话的预期获得波形。

    谢谢、此致、

    Shivasagar。

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

    您好、Shiva、

    您将哪款微控制器与 CC2564MODA 配合使用? 您是将 我们的蓝牙堆栈 之一与微控制器配合使用、还是仅发送 HCI 命令?

    谢谢、
    Jacob

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jacob、
    我们使用的是将与 Linux OS 一起运行的 imx6 ultra lite 处理器,我们通过 UART 4线制 BlueZ 堆栈连接了模块,我们正在 Linux 中使用。
    通过使用 bluetoothctl 命令、我们能够进行配对、信任和连接。
    谢谢、此致、
    Shivasagar。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Shiva、

    此时、我认为我们应该验证编解码器是否正确处理了器件上的音频。 您能否尝试使用 刚刚尝试过的 Send_HCI_VS_Write_CODEC 配置命令、但将 PCM 方向更改为0x00 (主器件)? 这一点很重要 、以便 CC2564B 器件驱动时钟。 接下来、 您能否立即运行 HCI_VS_SET_PCM_Loopback _Enable (0xFE28)命令以在器件上循环音频? 然后、您应该能够收听发送到器件的音频、或者使用 AUD_IN 和 AUD_OUT 引脚来确保音频不会损坏。 此测试不需要蓝牙连接、因为它是 PCM 接口的本地测试。

    如果您观察到噪音和/或数据损坏、则 PCM 配置是问题所在。 否则、这是蓝牙问题。

    谢谢、
    Jacob

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

    您好、Jacob、

    我使用您的输入进行了测试、我使用命令"HCI_VS_SET_PCM_Loopback _Enable"启用了回路、通过此命令后、我们 能够在不连接蓝牙的情况下查看帧同步和 BCLK 时钟。 ( 正在生成3MHz BCLK 和48K 帧同步)。

    我们为 AUD_IN 引脚提供了1.8V 电压、此时我们能够看到 AUD_OUT 上的1.8V 电压。

    谢谢、此致、

    Shiva sagar。

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

    您好、Shiva、

    AUD_IN 是否与 AUD_OUT 的波形匹配? 这两个信号是否相同? 数据是否仅在帧同步期间出现?

    您可能需要参考此 E2E 主题

    谢谢、
    Jacob

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

    您好、Jacob、

    AUD_IN 是否与 AUD_OUT 的波形匹配?   这两个信号是否相同?

    是的、AUD_IN 和 AUD_OUT 波形是匹配的、两者在1.8V 电压下是相同的。

    2.数据只在帧同步期间出现?

    我们通过提供以下配置测试了一种情况

    SEND_HCI_VS_Write_CODEC 配置0xFD06、3072、0x00、0x0000bb80、0x0000、 0x01、0x00、0x00、0x0010、0x0001、 1、0x0010、0x0001、0x00、0x00、 0x0010、0x0011、1、0x0010、0x0011、 0x00、0x00

    ->而不 是我们在 PCM 配置中给出的32位。

    ->我们在 AUD_IN 上提供了1.8V,但在 AUD_OUT 上 ,我们仅在第一个通道(正周期)上获得了相对于帧 同步的1.8V,我们附加 了下面的波形。  

    ->但是、将数据位更改为16至32后、我们在 AUD_OUT 上连续获得1.8V 电压(1.8V 直线电压)、在本例中、AUD_IN 和 AUD_OUT 是相同的。

    SEND_HCI_VS_Write_CODEC 配置0xFD06、3072、0x00、0x0000bb80、0x0000、 0x01、0x00、0x00、0x0020、0x0001、 1、0x0020、0x0001、0x00、0x00、 0x0020、0x0021、1、0x0020、0x0021、 0x00、0x00

    但是、每当进行电话呼叫时、我们都无法在第二个信道上获取数据。

    谢谢、此致、

    Shiva sagar。

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

    您好、Jacob、

    我们使用的是 TIInit_6.7.16.bts、我附加了下面的 BTS 文件、请找到。 IAM 无法附加 BTS 文件、因此我转换为.txt.e2e.ti.com/.../0488.TIInit_5F00_6.7.16.txt

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

    您好、Shiva、

    我将在本周跟进。

    谢谢、
    Jacob

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

    您好、Shiva、

    请记住、您应该为 HCITester 提供十六进制格式的命令。 我不确定它将正确解释十进制"3072"。 这将是您之前在3MHz 下使用的"0xc00"值。  

    您可能应该将方向参数改回 PCM 从设备:

    您是否知道编解码器开始对音频进行采样的时钟沿方向(基于 PCM 时钟)? 如果您的编解码器在 PCM 上升时钟边沿(0x00)上采样、您应该将 CH1 IN_EDGE 和 CH2 IN_EDGE 配置为 在负时钟边沿(0x01)上采样。  CH1 OUT_EDGE 和 CH2 OUT_EDGE 应与 IN_EDGE 相对。 如果您不确定、是否可以尝试交换 in_edges 和 out_edges 的值?

    此外、您的 PCM 时钟速率应至少是帧同步频率的64倍(BCLK >= 64 * WCLK)。 这是因为您将两个32位通道用于立体声数据。 如果您使用16位通道、PCM 时钟速率仅需至少为帧同步频率的32倍。 假设您使用两个32位通道、您的 PCM 时钟速率应为:0x30000。 这可能大于 CC2564C 允许的值、因此如果不起作用、我建议使用16位通道。

    我 认为您的命令应该如下所示:

    SEND_HCI_VS_Write_CODEC 配置0xFD06、0x30000、0x01、0x0000bb80、0x0000、 0x01、0x00、0x00、0x0020、0x0001、 0x01、0x0020、0x0001、0x00、0x00、 0x0020、0x0021、0x01、0x0020、0x0021、 0x00、0x00

    WAIT_HCI_Command_Complete_VS_Write_Code_Config_Event 5000、0x00、0xfd06、0x00

    此外、在该示波器捕获中查看 PCM 时钟会很有帮助。

    谢谢、
    Jacob

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

    您好、Jacob、

    我们以十六进制格式和十进制格式(3072)配置了命令、我们配置了从器件的方向、并测试了如上所述的 IN_EDGE、OUT_EDGE、但我们仍然不会因此而感到幸运、 我们无法获取负脉冲上的数据。

    您能否使用您的器件测试此情况?

    如果您获得负脉冲的数据、请提供命令和波形。

    感谢您的支持。

    谢谢、此致、

    Shiva sagar。

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

    您好、Shiva、

    我可能能够测试这一点、但我没有与您相同的硬件设置。 您是否能够根据本指南获取 HCI 日志?  

    e2e.ti.com/.../bt_5F00_logger_5F00_tool.pdf

    根据我的判断、您的器件似乎配置为单通道。 您可能需要以蓝色查看您的个人资料设置。

    谢谢、
    Jacob