微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > 关于TLV320AIC3106设置High Pass去除直流偏移

关于TLV320AIC3106设置High Pass去除直流偏移

时间:10-02 整理:3721RD 点击:

      我使用TLV320AIC3106进行音频采集时出现直流偏移现象,因此我打算设置高通滤波器来去掉直流偏移。

我设置了 page0/register12 为0xA0,得到一个高通滤波。但是,我发现这个寄存器只能设置三种高通滤波,最小的经计算得到206Hz。

我希望保留50Hz~206Hz的音频,因此这种方式是不可行的。我打算使用page1来实现自定义的High Pass。我使用软件得到一个结果,如下:

我做了如下设置:

AIC3106_writeRegister(107, 0xC0);   // page0/register 107 设置High Pass模式

AIC3106_writeRegister(0, 1);

AIC3106_writeRegister(65, 0x7F);
AIC3106_writeRegister(66, 0xA1);
AIC3106_writeRegister(67, 0x80);
AIC3106_writeRegister(68, 0x5F);
AIC3106_writeRegister(69, 0x7F);
AIC3106_writeRegister(70, 0x44);

AIC3106_writeRegister(71, 0x7F);
AIC3106_writeRegister(72, 0xA1);
AIC3106_writeRegister(73, 0x80);
AIC3106_writeRegister(74, 0x5F);
AIC3106_writeRegister(75, 0x7F);
AIC3106_writeRegister(76, 0x44);

AIC3106_writeRegister(0, 0);

但是,直流偏移没有被消除,我想知道如何正确的去自定义设置High Pass?

谢谢!

Hi,

你还要设置一下Page 0/Register 12,使能ADC的High Pass Filter,选三种模式中的一种就行了,它加载系数时就不是预置的了,而是你设置的了。

Hi Jacky :

             我设置了Page 0/Register 12,但是发现不是我要的40Hz,而是Page 0/Register 12的设置起作用了。

             我把page0/Register107 设置成0XC8,还是不行!我的配置如下,请问错误在哪里?

AIC3106_writeRegister(12, 0x00);
AIC3106_writeRegister(107, 0xC08);

AIC3106_writeRegister(AIC3106_REG_PAGESELECT, 1);

AIC3106_writeRegister(65, 0x7F);
AIC3106_writeRegister(66, 0xFF);
AIC3106_writeRegister(67, 0x80);
AIC3106_writeRegister(68, 0x01);
AIC3106_writeRegister(69, 0x7F);
AIC3106_writeRegister(70, 0x54);

AIC3106_writeRegister(71, 0x7F);
AIC3106_writeRegister(72, 0xFF);
AIC3106_writeRegister(73, 0x80);
AIC3106_writeRegister(74, 0x01);
AIC3106_writeRegister(75, 0x7F);
AIC3106_writeRegister(76, 0x54);

AIC3106_writeRegister(AIC3106_REG_PAGESELECT, 0);
AIC3106_writeRegister(12, 0x60);

谢谢!

             

Hi Jacky:

           我测试了一下,结果和预期的不相符。 加载系数时是预置的了,而不是我在page2设置的。

           我的修改如下:

AIC3106_writeRegister(12, 0x00);
AIC3106_writeRegister(107, 0xC08);

AIC3106_writeRegister(AIC3106_REG_PAGESELECT, 1);

AIC3106_writeRegister(65, 0x7F);
AIC3106_writeRegister(66, 0xFF);
AIC3106_writeRegister(67, 0x80);
AIC3106_writeRegister(68, 0x01);
AIC3106_writeRegister(69, 0x7F);
AIC3106_writeRegister(70, 0x54);

AIC3106_writeRegister(71, 0x7F);
AIC3106_writeRegister(72, 0xFF);
AIC3106_writeRegister(73, 0x80);
AIC3106_writeRegister(74, 0x01);
AIC3106_writeRegister(75, 0x7F);
AIC3106_writeRegister(76, 0x54);

AIC3106_writeRegister(AIC3106_REG_PAGESELECT, 0);
AIC3106_writeRegister(12, 0xF0);

是我的设置有问题吗?

谢谢!

Hi,

AIC3106_writeRegister(107, 0xC08)这个要设成0xC8,不是C08。另外要注意ADC的programmable filter只支持一阶的,只有N0、N1和D1系数,用工具计算时只能选butterworth1型的。

设置的时候先写page1的系数,再写page0的控制寄存器。

Hi Jacky:

             Thank you very much!The problem has been solved!

Best Wish For You!

你好,我看到手册里有那个高通的公式,请问那个要怎么算啊  z是什么啊?

上一篇:音频功放选型
下一篇:PCM1704U

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top