TI中文支持网
TI专业的中文技术问题搜集分享网站

aic3106芯片直流偏移

HI:

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

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

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

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

谢谢!

Jacky Wang(QD):

Hi,

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

yan liu2:

回复 Jacky Wang(QD):

Hi Jacky Wang(QD):

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

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

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

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

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

谢谢!

Jacky Wang(QD):

回复 yan liu2:

Hi,

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

yan liu2:

回复 Jacky Wang(QD):

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 ,这个频率太高了,

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

谢谢!

Jacky Wang(QD):

回复 yan liu2:

Hi,

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

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

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

yan liu2:

回复 yan liu2:

Hi  Jacky:

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

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

谢谢!

Jacky Wang(QD):

回复 yan liu2:

Hi,

请参考下面的链接:

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

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

yan liu2:

回复 Jacky Wang(QD):

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进行配置吗?该如何配置?

谢谢!

Jacky Wang(QD):

回复 yan liu2:

Hi,

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

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

yan liu2:

回复 Jacky Wang(QD):

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,请你帮助分析一下

谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » aic3106芯片直流偏移
分享到: 更多 (0)