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.

[参考译文] TLV320AIC3110:I2S 不起作用

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/876527/tlv320aic3110-i2s-does-not-work

器件型号:TLV320AIC3110

你好。 TLV320AIC3110具有许多设置、我感到困惑。 此外,STM32中的 SAI 的设置比 I2S 的设置要多得多,我不知道如何使这两个功能协同工作。

我不理解在 FrameInit 和 SlotInit 结构中指定什么。 以下是我的 STM32代码:

hsai_BlockA2.instance = SAI2_Block_A;
hsai_BlockA2.Init.Protocol = SAI_FREE_Protocol;
hsai_BlockA2.Init.AudioMode = SAI_MODEMASTER_TX;
hsai_BlockA2.Init.DataSize = SAI_DATASIZE_16;//--
hsai_BlockA2.Init.FirstBit = SAI_FIRSTBIT_MSB;
hsai_BlockA2.Init.ClockStrobing = SAI_CLOCKSTROBING_FALINGEDGE;
hsai_BlockA2.Init.Synchro = SAI_异 步;
hsai_BlockA2.Init.OutputDrive = SAI_OUTPUTDRIVE_ENABLE;
hsai_BlockA2.Init.NoDivider = SAI_MASTERDIVIDER_ENABLE;
hsai_BlockA2.Init.FIFOThreshold = SAI_FIFOTHRESHOLD_1QF;
hsai_BlockA2.Init.AudioFrequency = SAI_AUDIO_FREQUENCY 48K;
hsai_BlockA2.Init.SynchroExt = SAI_SYNCEXT_DISABLE;
hsai_BlockA2.Init.MonoStereoMode = SAI_STEOMODE;
hsai_BlockA2.Init.CompandingMode = SAI_NOCOMPANDING;
hsai_BlockA2.Init.TriState = SAI_OUTPSI_NOTRELEASED;


hsai_BlockA2.FrameInit.FrameLength = 64;//-
hsai_BlockA2.FrameInit.ActiveFrameLength = 32;//-
hsai_BlockA2.FrameInit.FSDefinition = SAI_FS_CHANNEL 标识;//-
hsai_BlockA2.FrameInit.FSSPolarity = SAI_FS_ACTIVE_LOW;//-
hsai_BlockA2.FrameInit.F失调= SAI_FS_BEFOREFIRSTBIT;//-


hsai_BlockA2.SlotInit.FirstBitOffset = 0;
hsai_BlockA2.SlotInit.SlotSize = SAI_SLOTIZE_DATASIZE;
hsai_BlockA2.SlotInit.SlotNumber = 2;
hsai_BlockA2.SlotInit.SlotActive = SAI_SLOTACTIVE_0 | SAI_SLOTACTIVE_1; 

此外、我对 TLV320AIC3110感到困惑、我需要:

1) 1)在我的 I2S (SAI)中获取 MIC1PL

2) 2)我在 I2S 上从 STM32发送到 TLV 的数据在 SPL/SPL 中重新生成

我的寄存器:
第0页:

寄存器[0] 0
寄存器[1] 0
寄存器[2] 1
寄存器[3] 86
REG[4] 0
REG[5] 17
REG[6] 5
REG[7] 4
寄存器[8] 176
REG[9] 0
reg [10] 0
REG[11] 4
寄存器[12] 2
第[13]条 0
reg [14] 128
第[15]条 128
寄存器[16] 8
REG[17] 0
reg [18] 132.
第[19]条 132.
第[20]条 48
REG[21] 128
第[22]条 4
寄存器[23] 0
REG[24] 0
REG[25] 0
REG[26] 1
REG[27] 0
REG[28] 0
REG[29] 0
reg [30] 1
寄存器[31] 0
REG[32] 0
REG[33] 0
REG[34] 0
reg [35] 0
REG[36] 192
REG[37] 136.
第[38]条 0
REG[39] 0
REG[40] 0
REG[41] 0
REG[42] 0
REG[43] 0
REG[44] 0
REG[45] 0
REG[46] 0
REG[47] 0
REG[48] 0
REG[49] 0
REG[50] 0
REG[51] 2
REG[52] 50
REG[53] 18
REG[54] 2
第[55]条 2
REG[56] 2
REG[57] 17
第[58]条规则 16
REG[59] 0
reg [60] 1
寄存器[61] 4
REG[62] 0
reg [63] 214
REG[64] 12
REG[65] 0
reg [66] 0
REG[67] 0
REG[68] 111
REG[69] 56
REG[70] 0
REG[71] 0
REG[72] 0
REG[73] 0
REG[74] 0
reg [75] 238
REG[76] 16
REG[77] 216
REG[78] 126
REG[79] 227
REG[80] 0
寄存器[81] 128
第[82]条 0
REG[83] 24
REG[84] 0
REG[85] 0
REG[86] 0
REG[87] 0
REG[88] 127.
第[89]条 0
reg [90] 0
REG[91] 0
REG[92] 0
寄存器[93] 0
REG[94] 0
REG[95] 0
reg [96] 0
REG[97] 0
REG[98] 0
REG[99] 0
REG[100] 0
REG[101] 0

REG[103] 0
REG[104] 0 REG[105]
0
REG[106]
0 REG[108]
0
REG[109] 0
REG[110] 0
REG[111] 0
REG[112] 0
REG[113] 0
REG[114] 0 REG[115]
0 REG[115] 0 REG[110] 0
REG[112] 0 REG[112] 0 REG[112] 0 REG[112] 0 REG[112] 0 REG[112] 0 REG[112] 0 REG[112] 0 REG[112] 0 REG[112







0
REG[125] 0
REG[126] 0
REG[127] 0 

第1页:

寄存器[0] 1
寄存器[1] 0
寄存器[2] 0
寄存器[3] 0
寄存器[4] 0
REG[5] 0
REG[6] 0
REG[7] 0
REG[8] 0
REG[9] 0
reg [10] 0
REG[11] 0
REG[12] 0
reg [13] 0
reg [14] 0
reg [15] 0
reg [16] 0
reg [17] 0
reg [18] 0
REG[19] 0
reg [20] 0
REG[21] 0
REG[22] 0
寄存器[23] 0
REG[24] 0
REG[25] 0
REG[26] 0
REG[27] 0
REG[28] 0
REG[29] 0
reg [30] 0
REG[31] 4
寄存器[32] 6
REG[33] 62
REG[34] 0
reg [35] 0
REG[36] 127.
第[37]条 127.
第[38]条 127.
第[39]条 127.
第[40]条 2
REG[41] 2
REG[42] 0
REG[43] 0
REG[44] 32
REG[45] 134.
第[46]条 9
REG[47] 0
REG[48] 32
REG[49] 64
REG[50] 0
REG[51] 0
REG[52] 0
reg [53] 0
REG[54] 0
REG[55] 0
REG[56] 0
REG[57] 0
REG[58] 0
REG[59] 0
reg [60] 0
REG[61] 0
REG[62] 0
reg [63] 0
REG[64] 0
reg [65] 0
reg [66] 0
REG[67] 0
REG[68] 0
REG[69] 0
reg [70] 0
REG[71] 0
REG[72] 0
REG[73] 0
REG[74] 0
reg [75] 0
REG[76] 0
REG[77] 0
REG[78] 0
reg [79] 0
reg [80] 0
寄存器[81] 0
REG[82] 0
REG[83] 0
REG[84] 0
REG[85] 0
REG[86] 0
REG[87] 0
REG[88] 0
REG[89] 0
reg [90] 0
REG[91] 0
REG[92] 0
寄存器[93] 0
REG[94] 0
REG[95] 0
reg [96] 0
REG[97] 0
REG[98] 0
REG[99] 0
REG[100] 0
REG[101] 0

REG[103] 0
REG[104] 0 REG[105]
0
REG[106]
0 REG[108]
0
REG[109] 0
REG[110] 0
REG[111] 0
REG[112] 0
REG[113] 0
REG[114] 0 REG[115]
0 REG[115] 0 REG[110] 0
REG[112] 0 REG[112] 0 REG[112] 0 REG[112] 0 REG[112] 0 REG[112] 0 REG[112] 0 REG[112] 0 REG[112] 0 REG[112







0
REG[125] 0
REG[126] 0
REG[127] 0 

我的方案:

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

    通过在 STM32支持论坛中提问、您可能会更幸运地获得问题的答案。

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

    用户、  

    您的 MCLK 和 BCLK 频率是多少?  我一定可以在编解码器配置方面为您提供帮助。

    此致、

    -Steve Wilson

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

    谢谢。

    如果我知道编解码器配置正确、那么配置 STM32会更容易。

    速率= 93.75kHz (-2.34%误差)

    BCLK = 0.046875 * 64 = 3MHz
    MCLK = 0.046875 * 256 = 12MHz

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

    用户、  

    很难知道从哪里开始..

    您说速率为93.75kHz、但您参考的是 BCLK 和 MCLK 的46.875。  为什么?  

    典型的音频速率为48K 或96k、 AIC3110具有板载 PLL、 没有理由接受如此大的误差。  您可以让 AIC3110生成 BCLK 和 WCLK (充当音频总线主控)、它可以从12MHz 生成正确的时钟、  

    2、ADC 的配置是 NADC 和 mAdc 分别为4和4和 AGSR 48。  12MHz/4/4/48 = 15.625kHz = ADC_FS  

    我不认为这是你要做的事情。  使用 PLL、 或将 NADC 更改为1、将 mAdc 更改为2、将 AOSR 更改为128。  这将为您提供48K 的 ADC_FS。 如果您想使用 PLL、 但感到困惑、 数据表中的表7-42提供了示例设置。  

    I2S 在 WCLK 边沿有1个 BCLK 偏移、 请确保 STM32正在这样做。  

    此致、

    -Steve Wilson

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

    1.我计算频率时发生了事故,实际上是46.875

    2.我尝试从 Linux 重写此驱动程序,但我有一个问题。

    git.kernel.org/.../tlv320aic31xx.c

    在第847行、我们启用 PLL。 但在代码的第854行、我们将比较 MCLK。 为什么?

    如果我们使用 PLL、那么 MCLK 根本就不涉及、或者我是不是有误解?

    我还想知道如何获取 snd_soc_params_TO_frame_size? 我在源代码中找到了公式:sampleSize * channels * tdmSlots

    如何找到这些参数? 我是否正确理解 samplpleSize 是一个整字长度?

    3.谢谢,我会考虑