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

TLV320AIC3107: 调音过程中耳机里面的滋滋声或者台阶声无法消除

Part Number:TLV320AIC3107

您好,首先感谢百忙之中查看我们的邮件!

我们近期在调试TLV320AIC3107遇到一个问题,就是在调整增益的时候(寄存器 43、44),耳机内部会出现滋滋的声音,经过多次测试确认在调整旋钮的时候,连续为寄存器赋值的时候产生。

硬件设计如下:

我们通过单片机采集一滑动变阻器的值来确定要调节的增益值,之后通过i2c 来配置寄存器

单片机程序如下:

void tlv320set()

{      

                          uint8_t a = 0x80;

                   oldvolume = firstadcvulesave;

                          am_i2c_write(&__i2c_tlv320,1,&a,1);//Èí¼þ¸´Î»

                          GDelay(2000);

                          a = 0x32;

                          am_i2c_write(&__i2c_tlv320,102,&a,1);//CLKDIVIN use MCLK

                          a = 0x18;

                          am_i2c_write(&__i2c_tlv320,3,&a,1);//PLL disable and select Q value

                          a = 1;

                          am_i2c_write(&__i2c_tlv320,101,&a,1); //CLKIN use CLKDIV_OUT

                          a = 0xa;

                          am_i2c_write(&__i2c_tlv320,7,&a,1); //FSref = 48KHz

                          a = 0x00;

                          am_i2c_write(&__i2c_tlv320,2,&a,1); //sample

                          a = 0x00;

                          am_i2c_write(&__i2c_tlv320,8,&a,1); //SLAVE mode   ?

                          a = 0x20;

                          am_i2c_write(&__i2c_tlv320,9,&a,1); // i2s mode 24bit  ?

                          a = 0x0f;

                          am_i2c_write(&__i2c_tlv320,12,&a,1); //audio codec diital filter control register

                          a = 0x80;

                          am_i2c_write(&__i2c_tlv320,13,&a,1);

                          a = 0x80;

                 am_i2c_write(&__i2c_tlv320,14,&a,1);

                      a = 0x90;

                          am_i2c_write(&__i2c_tlv320,14,&a,1);//Headset Configuration Register     

//                  a = 0xc0;

//                       am_i2c_write(&__i2c_tlv320,25,&a,1);

//                       a = 0xc0;

//                       am_i2c_write(&__i2c_tlv320,37,&a,1); //left and right DAC power on

                          a = 0xf0;

                          am_i2c_write(&__i2c_tlv320,37,&a,1); //left and right DAC power on             

                          a = 0x00;

                          am_i2c_write(&__i2c_tlv320,41,&a,1); ///*out path select*/ 

                          //a = 0x78;

                          a = 0;

                          am_i2c_write(&__i2c_tlv320,42,&a,1);//*out path select                   a = 0;

                          am_i2c_write(&__i2c_tlv320,43,&firstadcvulesave,1);       /*left DAC not muted*/

                          am_i2c_write(&__i2c_tlv320,44,&firstadcvulesave,1);       /*right DAC not muted*/

                          a = 0x80;

                          am_i2c_write(&__i2c_tlv320,47,&a,1);        //DAC_L1 to HPLOUT Volume Control Register

                          a = 0x80;

                           am_i2c_write(&__i2c_tlv320,64,&a,1);//DAC_R1 to HPROUT Volume Control Register         

               a = 0xd;

                          am_i2c_write(&__i2c_tlv320,51,&a,1);

                          a = 0xd;

                          am_i2c_write(&__i2c_tlv320,65,&a,1);                         

                          a = 0x80;

                      am_i2c_write(&__i2c_tlv320,82,&a,1);                

                   a = 0x0c;

                    am_i2c_write(&__i2c_tlv320,73,&a,1);           

}

 

// normaladcvulesave 即为采到的AD值对应到的R43/44寄存器的值

void TLV320volumeset()

{

if(normaladcvulesave != oldvolume)

         {               

am_i2c_write(&__i2c_tlv320,43,&normaladcvulesave,1);

           am_i2c_write(&__i2c_tlv320,44,&normaladcvulesave,1);             

           oldvolume = normaladcvulesave ;

}

}

 

我们按照贵司的芯片使用手册介绍做以下尝试

一、手册指导

  1. 静音(R43\44高位置1)
  2. 配置寄存器(R43\44 1xxx xxxx)
  3. 解除增益(R43\44 0xxx  xxxx)
  • 拓展
  • 静音所有相关寄存器 (R43\44 R47\64 R51\65)
  • 配置增益寄存器(R43、44)
  • 解除静音(R43\44 R47\64 R51\65)
  • 解决滋滋声方案
  1. 我们采取粗调 (R43\44寄存器增益值每次递增大于1)

根据第三个方案,如果我们把R43\44增益值间隔变大,声音调节不连续,声音有突变,且随着间隔值的变大,突变越明显,有一种类似台阶一样的阶梯感。

 

无论是阶梯感还是滋滋声都无法满足我们这边的需求

请问还有什么好的办法来消除这些噪音?或者有哪些细节我们没有注意?

Amy Luo:

您好,

关于原理图中未使用的输入,建议按照下面链接FAQ连接:

[FAQ] Audio ADCs/CODECs: What should I do with unused inputs on the TLV320ADC and TLV320AIC family of devices?

我感觉这应该与soft-stepping功能的使用有关,我去确认下这个soft-stepping功能具体应该怎样使用

,

JIANFENG WEI:

您好,我们按照320的寄存器配置要求配置输出,并没有采用ADC的数据,ADC的输入端还会对输出数据产生影响吗?

,

Amy Luo:

可能会对输出产生影响,因为设备有混音功能,如果仅是期望输出数字音频数据,建议您关闭ADC功能

同时也建议,将立体声DAC输出直接传递到输出驱动器,绕过模拟音量控制和混音网络:

赞(0)
未经允许不得转载:TI中文支持网 » TLV320AIC3107: 调音过程中耳机里面的滋滋声或者台阶声无法消除
分享到: 更多 (0)