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.

aic3106芯片直流偏移

Other Parts Discussed in Thread: TLV320AIC3106EVM-K, TLV320AIC3106

HI:

        我做了一个音频采集系统,使用omapl138主芯片,使用aic3106芯片采集音频。但是采集到的音频出现直流偏移现象,

而且同一个板子上的两个MIC的偏移量还不一样;甚至在不一样的开发板上直流偏移量也不一样。

偏移量在30~100之间(16位采样,范围是-32768~32767),对应-50db到-60db之间,这对我造成了困扰,希望消除这个偏移量,

是硬件问题还是软件问题?应该如何去解决呢?最好能全部消除,如果不行减弱到-70db以下也可以

谢谢!

  • Hi,

    这个你先确认一下CPU I2S接口的数据格式是否与Codec的设置是一致的。除了直流偏置外,MIC录音回来的声音听上去是正常的吗?

  • Hi Jacky Wang(QD)

         数据格式是一致的,MIC的声音也是正常的(除了直流偏移,采集的音频是没问题的)。刚刚发现Codec焊接工艺似乎影响了直流偏置的大小,

    但不能完全消除直流偏置。我不能确认是软件还是硬件问题

    我现在有几个问题比较困惑:

         1、 在工业级方面,直流偏置是否可以完全消除?如果不能,可接受范围大概是多少?

         2、 为了消除/降低直流偏移,软件和硬件上应该注意哪些方面?

    谢谢!



  • Hi,

    这个录回来的直流偏置正常来讲应该是非常小的,除非确实是外部电路或其他因素干扰到芯片的输入引脚上了。这种情况下要完全去除的话可以加一段high pass filter在EQ中,截止频率设成10Hz~20Hz。

  • Hi Jacky:

          你的意思是打开AIC3106的high pass filter吗?但是如何把截止频率设成10Hz~20Hz呢?

          AIC3106的寄存器设置如下:

          D7–D6 R/W 00    Left ADC Highpass Filter Control
          00: Left ADC highpass filter disabled
          01: Left ADC highpass filter –3-dB frequency = 0.0045 × ADC fS
          10: Left ADC highpass filter –3-dB frequency = 0.0125 × ADC fS
          11: Left ADC highpass filter –3-dB frequency = 0.025 × ADC fS

          我的采样为48K/96K,设置成48K那么frequency = 0.0045 × 48K = 206 ,这个频率太高了,

          会滤掉一些我需要的声音信号~ 

    谢谢!

  • Hi,

    那你可以用客制化的设置,参考EVM User's Guide的说明:

    Filter系数计算可以用我们的计算工具,在下面链接下载:

    http://www.ti.com/tool/coefficient-calc

  • Hi  Jacky:

          非常感谢!你的方案是OK的,

    但是我在TI官网搜索EVM User's Guide没有找到,你能发我一个文档链接吗?

    谢谢!

  • Hi,

    请参考下面的链接:

    http://www.ti.com/lit/ug/slau209a/slau209a.pdf

    http://www.ti.com/tool/tlv320aic3106evm-k

  • Hi Jacky:

         Thank you again!!!

         我在使用 Filter系数计算工具配置高通滤波器,遇到两个问题:

         1、  我的采样率是24bit,我把resolution设为24,得到的N0,N1,D1也是24位数据,但是寄存器只有16位,我该如何设置呢?

         2、  我对AIC3106进行了配置,但是没有起到作用,配置如下:

    AIC3106_writeRegister(107, 0xC0);
    AIC3106_writeRegister(AIC3106_REG_PAGESELECT, 1);

    AIC3106_writeRegister(65, 0x7E);
    AIC3106_writeRegister(66, 0x32);
    AIC3106_writeRegister(67, 0x81);
    AIC3106_writeRegister(68, 0xCE);
    AIC3106_writeRegister(69, 0x7C);
    AIC3106_writeRegister(70, 0x66);

    AIC3106_writeRegister(71, 0x7E);
    AIC3106_writeRegister(72, 0x32);
    AIC3106_writeRegister(73, 0x81);
    AIC3106_writeRegister(74, 0xCE);
    AIC3106_writeRegister(75, 0x7C);
    AIC3106_writeRegister(76, 0x66);

    不知道原因在哪?需要对register 12进行配置吗?该如何配置?

    谢谢!

  • Hi,

    AIC3106只支持16bit的系数,所以你要选成16bit的,虽然你I2S上送的是24bit的。

    客制化EQ占用的是Page1/Register1~Register20(Left Channel),Page1/Register27~Register46,跟ADC预置的High Pass Filter占用的寄存器地址不一样,不冲突。

  • Hi Jacky:

          我对寄存器做了设置,但是没有起到作用,直流偏移没有消除。

          设置参数如下:

          

    AIC3106_writeRegister(107, 0xC0);         //Programmable Coefficients are used when ADC High Pass is enabled.

    AIC3106_writeRegister(0, 1);                   //切换到page1

    AIC3106_writeRegister(65, 0x7F);           //N0设置
    AIC3106_writeRegister(66, 0xFF);
    AIC3106_writeRegister(67, 0x80);           //N1设置
    AIC3106_writeRegister(68, 0x01);
    AIC3106_writeRegister(69, 0x7F);          //D1设置
    AIC3106_writeRegister(70, 0xA1);

    相同方式对right channel进行设置

    AIC3106_writeRegister(0, 0); //返回到page0

    之后,我担心是 ADC High Pass is not enabled,我打开了page0/register 12 ,但是我发现我在page1设置的High Pass仍然没有其作用,

    我查看的tlv320aic3106的文档,但是没有理解如何去使用实现High Pass,请你帮助分析一下

    谢谢!