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.

TLV320ADC3100: 边录边播出现破音

Part Number: TLV320ADC3100

我们通过规格书,配置了44.1k的采样率,然后边录边播,会时不时出现破音。请问怎么解决?我贴出配置的寄存器和电路如下:

snd_soc_write(codec, 0x00, 0x00);//切换寄存器页到页0
    snd_soc_write(codec, 0x01, 0x01);//软复位
 
    //2
    snd_soc_write(codec, 0x04, 0x03);//set pll=mclk, codev_clk=pll
 
    snd_soc_write(codec, 0x05, 0x91);//set p=r=1
    snd_soc_write(codec, 0x06, 0x07);//set j=7
    //d=5264
    snd_soc_write(codec, 0x07, 0x14);
    snd_soc_write(codec, 0x08, 0x90);
 
    //snd_soc_write(codec, 0x05, 0x91);//
    snd_soc_write(codec, 0x12, 0x88);// NADC = 8
    snd_soc_write(codec, 0x13, 0x82);// MADC = 2
    snd_soc_write(codec, 0x14, 0x80);// AOSR = 128
 
    snd_soc_write(codec, 0x1b, 0x0c);//
    snd_soc_write(codec, 0x1d, 0x07);
    snd_soc_write(codec, 0x1e, 0x82);

    snd_soc_write(codec, 0x3d, 0x03);
 
    // 3
    #if 1
         //Left AGC
    snd_soc_write(codec,0x56, 0x80);        // 86            AGC Control 1    // 0x70 close agc
    snd_soc_write(codec,0x57, 0xc0);        // 87       AGC Control 2
    snd_soc_write(codec,0x58, 0x32);        // 88            AGC Maximum Gain 32db=0x40    (7f: not set)
    snd_soc_write(codec,0x59, 0x7f);        // 89     AGC attack time     ---
    snd_soc_write(codec,0x5a, 0x7f);        // 90     AGC Decay time         ---
    snd_soc_write(codec,0x5b, 0x1f);        // 91     AGC noise            ---
    snd_soc_write(codec,0x5c, 0x0f);        // 92       AGC signal            ---
    // Right AGC                  );
    snd_soc_write(codec,0x5e, 0x80);        // 94            Right AGC Control 1
    snd_soc_write(codec,0x5f, 0xc0);        // 95            Right AGC Control 2
    snd_soc_write(codec,0x60, 0x32);        // 96            AGC Maximum Gain
    snd_soc_write(codec,0x61, 0x7f);        // 97     AGC attack time     ---
    snd_soc_write(codec,0x62, 0x7f);        // 98     AGC Decay time         ---
    snd_soc_write(codec,0x63, 0x1f);        // 99     AGC noise            ---
    snd_soc_write(codec,0x64, 0x0f);    // 100    AGC signal            ---
#endif

    //snd_soc_write(codec, ADC310X_DITHER_CTRL, 0x77);
    //snd_soc_write(codec, ADC310X_MIC_BIAS_CTRL, 0x20);
    
    snd_soc_write(codec, ADC310X_INPUT_SEL_PGA_L_1, 0x7d);//0X34
    
    //snd_soc_write(codec, ADC310X_INPUT_SEL_PGA_L_2, 0x3d);
    
    snd_soc_write(codec, ADC310X_INPUT_SEL_PGA_R_1, 0x7d);
    //snd_soc_write(codec, ADC310X_INPUT_SEL_PGA_R_2, 0x3d);
    
    snd_soc_write(codec, ADC310X_PGA_ANALOG_L, 0x28);
    snd_soc_write(codec, ADC310X_PGA_ANALOG_R, 0x28);
    
    snd_soc_write(codec, ADC310X_LOW_CURRENT, 0x00);
    //snd_soc_write(codec, 0x00, 0x01);
    //snd_soc_write(codec, 0x33, 0x00);
    //snd_soc_write(codec, 0x3B, 0x10);// LEFT PGA not mute, 0db
    //snd_soc_write(codec, 0x3C, 0x10);// RIGHT PGA not mute,0db
    //snd_soc_write(codec, 0x34, 0xf1);
    //snd_soc_write(codec, 0x37, 0xf1);

 
    // 4
    //snd_soc_write(codec, 0x00, 0x00);
 
    snd_soc_write(codec, 0x51, 0xc1);
 
    snd_soc_write(codec, 0x52, 0x00); // UNMUTE
    
    // 5 SET VOL
    snd_soc_write(codec, 0x53, 0x28);//+4.5db
    snd_soc_write(codec, 0x54, 0x28);//+4.5db