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.

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

Other Parts Discussed in Thread: TLV320AIC3106

      我使用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是什么啊???