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.

TLV320aic3204录音效果受音量大小影响

硬件环境:C67+aic3204


验证步骤:1.C67通过IIS将音频数据输出至右声道。
                  2.将DAC_R输出到LOL。
                  3.通过调节DAC_R增益验证LOL端录音效果。
验证结果:当DAC_R增益较小时录音清晰无杂音,但是当提高DAC_R增益后录音效果变差且有杂音。


分析1:怀疑通过DAC_R调节音量不合理,修改为保持DAC_R增益为之前测试时效果好的一个较小增益,通过调节后端的HP增益来提高音量,发现还是存在该问题!
分析2:改为C67同时向左右声道输出相同数据,codec通过DAC_L进行录音,同样发现调节后端的HP增益来提高音量同样导致录音效果变差。


希望贵司能帮忙解惑,谢谢!

  • 硬件环境:C67+aic3204
    验证步骤:1.C67通过IIS将音频数据输出至右声道。
                      2.将DAC_R输出到LOL。
                      3.通过调节DAC_R增益验证LOL端录音效果。
    验证结果:当DAC_R增益较小时录音清晰无杂音,但是当提高DAC_R增益后录音效果变差且有杂音。
    分析1:怀疑通过DAC_R调节音量不合理,修改为保持DAC_R增益为之前测试时效果好的一个较小增益,通过调节后端的HP增益来提高音量,发现还是存在该问题!
    分析2:改为C67同时向左右声道输出相同数据,codec通过DAC_L进行录音,同样发现调节后端的HP增益来提高音量同样导致录音效果变差。

    希望贵司能帮忙解惑,谢谢!

  • 你好, 

    我现在也有在调试aic3204 codec,还没能抓取到声音,请问可以提供下他的寄存器初始化配置吗? aic3204做从, 采样率配为48k,MCK为12.256Mhz, 接的是In3_L/In3_R。 

  • 技术手册有样例配置,你要先确保时钟波形无问题
  • 是按照配置来的,slaa577.pdf 4.04/4.05章节来配的 时钟波形 现在是看mclk正常,sda 数据线 没有数据
  • 可以把你的配置发出来帮你看下
  • 配置如下:是使用In3_L/In3_R 单端接入的,

    aic3204_write(IIC_device_addr[num], 0, 0x0); // Select page 0
    aic3204_write(IIC_device_addr[num], 1, 0x1); // Reset Codec
    mdelay(10);

    /* PLL and clocks config and Power Up */
    // mclk=12.288m, fs=48K, config: p=R=1, j=7, D=0, madc=2, nadc=7, aosr=128
    aic3204_write(IIC_device_addr[num], 0, 0x0); // Select page 0
    aic3204_write(IIC_device_addr[num], 27, 0x1); // BCLK and WCLK is set as input AIC3204(slave) 00: audio InteRFace = i2s
    aic3204_write(IIC_device_addr[num], 28, 0x0); // Data ofset = 0
    aic3204_write(IIC_device_addr[num], 4, 0x3); // PLL setting: PLLCLK <- MCLK, CODEC_CLKIN <-PLL CLK
    aic3204_write(IIC_device_addr[num], 5, 0x91); // PLL setting: Power up PLL, P=1 and R=1
    aic3204_write(IIC_device_addr[num], 6, 0x7); // PLL setting: J=7
    aic3204_write(IIC_device_addr[num], 7, 0x0); // PLL setting: HI_BYTE(D)
    aic3204_write(IIC_device_addr[num], 8, 0x0); // PLL setting: LO_BYTE(D)
    aic3204_write(IIC_device_addr[num], 11, 0x82); // Power up NDAC and set NDAC value to 2
    aic3204_write(IIC_device_addr[num], 12, 0x87); // Power up MDAC and set MDAC value to 7
    aic3204_write(IIC_device_addr[num], 13, 0x01); // Hi_Byte(DOSR) for DOSR = 256 decimal or 0x01080 DAC oversamppling
    aic3204_write(IIC_device_addr[num], 14, 0x00); // Lo_Byte(DOSR) for DOSR = 256 decimal or 0x0100
    aic3204_write(IIC_device_addr[num], 18, 0x87); // Power up NADC and set NADC value to 7
    aic3204_write(IIC_device_addr[num], 19, 0x82); // Power up MADC and set MADC value to 2
    aic3204_write(IIC_device_addr[num], 20, 0x80); // AOSR = 128 (default).
    ///aic3204_write(IIC_device_addr[num], 30, 0x80); // For 32 bit clocks per frame in Master mode ONLY BCLK=DAC_CLK/N =(12288000/8) = 1.536MHz = 32*fs

    aic3204_write(IIC_device_addr[num], 60, 0x0C);
    aic3204_write(IIC_device_addr[num], 61, 0x04); // ADC Singal Processing Block PRB_R4 ADC Signal Processing Block Control Register


    /* ADC ROUTING and Power Up */
    aic3204_write(IIC_device_addr[num], 0, 1 ); // Select page 1
    aic3204_write(IIC_device_addr[num], 2, 0x9);
    aic3204_write(IIC_device_addr[num], 1, 0x8); // DisabLED weak connection of AVDD with DVDD
    aic3204_write(IIC_device_addr[num], 2, 0x1); // Enable analog Blocks, use LDO power (is LDO power being used? If it is, then this register needs to be set correclty to use LDO).
    aic3204_write(IIC_device_addr[num], 10, 0x7B); // 0x3B, [6]=1
    aic3204_write(IIC_device_addr[num], 61, 0x0); // Select ADC PTM_R4
    aic3204_write(IIC_device_addr[num], 3, 0x0); // Select DAC PTM_P3/4
    aic3204_write(IIC_device_addr[num], 4, 0x0);
    aic3204_write(IIC_device_addr[num], 71, 0x32); // 3.1ms
    aic3204_write(IIC_device_addr[num], 123, 0x1); // 3.1ms

    aic3204_write(IIC_device_addr[num], 52, 0x04); //IN3L is routed to Left MICPGA with 10K resistance
    aic3204_write(IIC_device_addr[num], 54, 0x40); // CM is routed to Left MICPGA via CM2L with 10K resistance
    aic3204_write(IIC_device_addr[num], 55, 0x04); //IN3R is not routed to Right MICPGA
    aic3204_write(IIC_device_addr[num], 57, 0x40); // CM is routed to Left MICPGA via CM2L with 10K resistance
    aic3204_write(IIC_device_addr[num], 59, 0x0C); // MIC_PGA_L unmute
    aic3204_write(IIC_device_addr[num], 60, 0x0C); // MIC_PGA_R unmute

    aic3204_write(IIC_device_addr[num], 51, 0x68); //Power-up MIC BIAS 0x68

    aic3204_write(IIC_device_addr[num], 0, 0); // Select page 0
    aic3204_write(IIC_device_addr[num], 81, 0xC0); // Powerup Left and Right ADC
    aic3204_write(IIC_device_addr[num], 82, 0x00); // Unmute Left and Right ADC
  • 您好,
    您将输入端经电容接地,然后将DAC_R增益或HP增益设置较大,看是否有噪音输出
    音频CODEC和ADC常见噪声原因有以下原因:
    1、带外噪声
    2、PLL配置不正确
    3、ASI(音频串行接口)配置不正确
    4、地平面噪声耦合
    5、电源
    所以也请检查PLL和ASI是否配置正确
    下面链接希望对您排查噪音有帮助:
    【分享】音频CODEC和ADC:常见噪声问题:e2echina.ti.com/.../200067
  • 你好,
    请帮忙看下另外一个问题, aic3204 没有采集到声音, 已经按文档配置了寄存器, 具体配置见 上面时间点回复:“2021-3-9 7:48”, 谢谢。
  • 你好,感谢回答。您提供的链接我之前已经看过,现在的问题主要点还不是噪声。
    问题关键为:通过DAC录音,改变HP会对录音效果造成影响,还希望继续帮忙分析下。
  • 你的BCLK配置的不对吧
  • 执行了这个选项:aic3204_write(IIC_device_addr[num], 30, 0x80);
    读取page0 寄存器1到寄存器32的值分别是:(如下,冒号左边是寄存器编号,右边是值);
    0x1: 0x0
    0x2: 0x60
    0x3: 0x0
    0x4: 0x3
    0x5: 0x91
    0x6: 0x7
    0x7: 0x0
    0x8: 0x0
    0x9: 0x0
    0xa: 0x0
    0xb: 0x82
    0xc: 0x87
    0xd: 0x1
    0xe: 0x0
    0xf: 0x2
    0x10: 0x0
    0x11: 0x8
    0x12: 0x87
    0x13: 0x82
    0x14: 0x80
    0x15: 0x1
    0x16: 0x0
    0x17: 0x4
    0x18: 0x0
    0x19: 0x0
    0x1a: 0x1
    0x1b: 0x1
    0x1c: 0x0
    0x1d: 0x0
    0x1e: 0x80
    0x1f: 0x0
    0x20: 0x0

    pll的配置是参考:Table 2-27. PLL Example Configurations, fs=48kHz的项, 实际mclk给出的是12.288, 所以D值修改为0。 录制出来的还是没有声音, 还请帮忙再看看,谢谢。
  • bclk 问题,
    1. aic3204芯片是做从设备, bclk配置为输入,目前主芯片mclk=8*bclk; 配置了寄存器page0_30, 值为0x88;
    录制 还是没有声音。
  • 我不太明白您是在录音还是通过IIS进行播放?录音的话,需要使用ADC而不是DAC
    如果您是通过IIS进行播放的话,那么当DAC_R增益较小时清晰无杂音,是否可能因为噪音较小,增益小时噪音不明显,而当增益大时,噪音同时被放大,使得听出有噪音?
  • 问题已经解决,录音端设备配置问题,异常配置,在这种特殊情况下能录到声音通道,而不是通过数据录到。