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.

[参考译文] BT-MSPAUDSOURCE:I2S 格式和 CLK/FSYNC 方向

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/988602/bt-mspaudsource-i2s-format-and-clk-fsync-direction

器件型号:BT-MSPAUDSOURCE
主题中讨论的其他器件: TLV320ADC3101CC2564CCC2564

您好、专家、

我的客户购买了用于使用 A2DP 接收器进行蓝牙耳机连接测试的 BT-MSPAUDSOURCE 板。
下面我有关于 U12和 U5连接的问题。

Q1)信号格式 AUD_IN:  I2S 格式? 以及使用了哪些位(位数)?
Q2) AUD_CLK 和 AUD_FSYN 的方向: "U12至 U5"或"U5至 U12"?

U12:TLV320ADC3101 U5:CC2560RVM

此致、
Saito

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

    您好、Saito San、

    查看 BT-MSPAUDSOURCE 上使用的示例代码项目 HAL.c 中的 TLV 编解码器设置代码、看起来 AUD_IN 应该是 DSP 模式、具有16位数据长度。 如果您希望在控制编解码器的演示源代码的以下部分中仔细检查这些设置:

    /*    A2DP Source - Enable TLV320ADC3101 Playback       */
    /*    Configuration 2 -> PLL_CLKIN = BCLK               */
    /*                    -> Fs = 44.1KHz, BCLK = 3.528MHz  */
    /*                    -> Fs = 48KHz, BCLK = 3.840MHz    */
    /*                    -> Line-In                        */
    /*    Reference: ADC3101 Datasheet Page 40              */
    const unsigned char TxData_Line_In[] =
    {
      ///////////////// Initialization //////////////////
      // Px, P0              Switch to Page 0
      0x00, 0x00,
      // Software Reset Register
      // P0, R1, b0.         Reset = SW Reset - Internal Registers
      0x01, 0x01,
    
      ////////////// Digital Configuration //////////////
      // Px, P0              Switch to Page 0
      0x00, 0x00,
      // Clock Setting Register 1 - Multiplexers
      //    -> PLL_CLK = (PLL_CLKIN x R x J.D)/P
      //           - PLL_CLKIN = PCM_Fs x XX
      //    -> 84.672MHz = (3.528MHz  x 1 x 24.0)/1 --> For Fs = 44.1KHz
      //    -> 92.160MHz = (3.840MHz  x 1 x 24.0)/1 --> For Fs = 48KHz
      // P0, R4, b3-2.       PLL_CLKIN = BCLK (01)
      // P0, R4, b1-0.       CODEC_CLKIN = PLL_CLK (11)
      0x04, 0x07,
      // Clock Setting Register 2 - PLL P and R Values
      // P0, R5, b7.         PLL = Power Up (1)
      // P0, R5, b6-4.       PLL Divider P = 1 (001)
      // P0, R5, b3-0.       PLL Divider R = 1 (0001)
      0x05, 0x91,
      // Clock Setting Register 3 - PLL J Value
      // P0, R6, b5-0.       PLL Divider J = 24 (11000)
      0x06, 0x18,
      // Clock Setting Register 4 - PLL D Value
      // P0, R7, b5-0. (MSB) PLL Divider D = 0
      // P0, R8, b7-0. (LSB)
      0x07, 0x00,
      0x08, 0x00,
      // Clock Setting Register 18 - NDAC Values
      // P0, R18, b7.        NDAC = Power Up
      // P0, R18, b6-0.      NDAC = 3 (DAC_CLK = CODEC_CLKIN / NDAC)
      0x12, 0x83,
      // Clock Setting Register 19 - MDAC Values
      // P0, R19, b7.        MDAC = Power Up
      // P0, R19, b6-0.      MDAC = 8 (DAC_MOD_CLK = DAC_CLK / MDAC)
      0x13, 0x88,
      // DAC Setting Register 1 - AOSR Value
      //     -> ADC_Fs = CODEC_CLK_IN / (NDAC.MDAC.AOSR)
      //     -> 44.1KHz = 84.672MHz / (3.8.80)
      //     -> 48KHz = 92.160MHz / (3.8.80)
      //     -> MDAC * AOSR >= ResourceClass * 32
      //            - 8 * 80 >= 8 * 32 (256)
      //     -> 2.8MHz < AOSR x ADC_Fs < 6.2MHz
      //            - 80 * 44,100 = 3.528MHz
      //            - 80 * 48,000 = 3.840MHz
      //     -> AOSR must be a multiple of 8 (48KHz High-Performance)
      //     -> AOSR = 64, for Low-Power Mode
      //     -> AOSR = 128, for High-Performance Mode
      // P0, R20, b7-0       AOSR = 80 (ADC_Fs = ADC_MOD_CLK / AOSR)
      0x14, 0x50,
      // Audio Interface Setting Register 1 - Configuration
      // P0, R27, b7-6.      Interface Mode = DSP Mode (01)
      // P0, R27, b5-4.      Data Length = 16bits (00)
      // P0, R27, b3.        BCLK = Input (0)
      // P0, R27, b2.        WCLK = Input (0)
      0x1B, 0x40,
      // Audio Interface Setting Register 2 - Data Offset
      // P0, R28, b7-0.      Data Offset = 1
      0x1C, 0x01,
      // ADC Processing Block Set
      // Default PRB_P1
      // P0, R60, b4-0.     Processing Block: PRB_P1
      //    -> Filter A should be used for 48KHz High-Performance operation
      //    -> PRB_R1 - PRB_R6
      0x3D, 0x01,
    
      ////////////// Analog Configuration //////////////
      // Px, P0              Switch to Page 0
      0x00, 0x00,
      // Left ADC Volume Control Register
      // P1, R83, b6-0      Left ADC Volume = 0dB(000 0000)
      0x53, 0x00,
      // Right ADC Volume Control Register
      // P1, R84, b1-0      Right ADC Volume = 0dB(000 0000)
      0x54, 0x00,
      // Px, P1              Switch to Page 1
      0x00, 0x01,
      // MICBIAS Control Register
      // P1, R51, b6-5      MICBIAS1 = Power Down(00)
      // P1, R51, b4-3      MICBIAS2 = Power Down(00)
      0x33, 0x00,
      // Left ADC Input Selection for Left PGA Control Register
      // P1, R52, b1-0      LCH_SEL1 = IN1L(P) Single Ended 0dB (00)
      0x34, 0xFC,
      // Right ADC Input Selection for Right PGA Control Register
      // P1, R55, b1-0      LCH_SEL1 = IN1R(M) Single Ended 0dB (00)
      0x37, 0xFC,
      // Left Analog PGA Setting Register
      // P1, R59, b7        Left PGA is not muted (0)
      // P1, R59, b6-0      Left PGA Gain = +0dB (000 0000)
      0x3B, 0x00,
      // Right Analog PGA Setting Register
      // P1, R60, b7        Right PGA is not muted (0)
      // P1, R60, b6-0      Right PGA Gain = +0dB (000 0000)
      0x3C, 0x00,
    
      //////////////////// Power On ///////////////////
      // Px, P0              Switch to Page 0
      0x00, 0x00,
      // ADC Digital Register
      // P0, R81, b7.        Left Channel ADC Power = Power Up (1)
      // P0, R81, b6.        Right Channel ADC Power = Power Up (1)
      // P0, R81, b1-0.      Soft-Step Control = Enabled, 1 Step/2*Fs (01)
      0x51, 0xC1,
      // ADC Fine Volume Control Register
      // P0, R82, b7.        Left Channel Mute = No (0)
      // P0, R82, b6-4.      Left ADC Channel Gain =0dB (000)
      // P0, R82, b3.        Right Channel Mute = No (0)
      // P0, R82, b2-0.      Right ADC Channel Gain =0dB (000)
      0x52, 0x00
    };

    至于 AUD_CLK 和 AUD_FSYN 的方向、应从 CC256x 器件到 TLV、从 U5到 U12。

    如果您需要对此演示中的 I2S 设置进行更多说明或有其他问题、请告诉我。

    此致、

    Michael

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

    您好、Michael、

    您提到了这一点
    >本演示中的 I2S 设置

    然后、客户得到了波形。  e2e.ti.com/.../20210421_5F00_waveform.zip

    Q1) 但是 、它不是 I2S 格式。 就像下面所示的 TDM 格式一样。 是这样吗?


    Q2)如果这在 BT-MSPAUDSOURCE 板上不是 I2S 格式,是否可以更改为 I2S 格式? 请告诉我们如何更改为 I2S 格式。

      CC2564C 数据表(SWRS199B)显示:
        6.4.3.2 I2S
        当编解码器接口配置为支持 I2S 协议时、建议使用以下设置:
         •双向全双工接口
         •每帧两个时隙:左声道音频数据的时隙0;右声道音频数据的时隙1
         •每个时隙的长度可配置为多达40个串行时钟周期、而帧的长度可配置为多达80个串行时钟周期

    感谢你的帮助。
    此致、
    Saito

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

    您好、Saito San、

    正如我在上一篇文章中提到的、音频接口配置为 DSP 模式操作、而不是 I2S。 此模式的详细说明可在编解码器数据表的第10.3节: https://www.ti.com/lit/ds/symlink/tlv320adc3101.pdf 中找到

    如果要将其更改为 I2S 模式、您需要执行两项主要操作:

    1.您需要在 HAL.c 的 HAL_ConfigureCodec 中更改 TLV 编解码器配置、以启用 I2S 而不是 DSP 模式。 这是您需要自行执行的操作、或者在需要时向相应的编解码器组寻求帮助-我在这方面没有专业知识。

    2.您需要将 CC2564设置为输出 I2S 格式的 PCM 而不是 DSP 格式。 为此,您需要修改 A3DPDemo_SRC.c 的 ReconfigureA3DPStream()函数,特别是 VS_PCM_Codec_Config()函数。 BTVS.c 中有有关该函数本身的文档、需要匹配编解码器设置。

    此致、

    Michael