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.

使用adau1961和tas2505芯片录音/播放噪声非常大

Other Parts Discussed in Thread: TAS2505

您好:

(1)我这边使用adau1961 codec进行录音,发现录制的音频文件噪声非常大,请问有什么办法可以优化么,我这边已经排除MIC导入噪声的可能,实际使用AMIC。

(2)我这边使用tas2505作为pa接speaker播放一个wav文件,发现同样噪声非常大,请问有改善的方法么?

adau1961寄存器配置

static const struct reg_default adau1761_reg_defaults[] = {
{ ADAU1761_DEJITTER, 0x03 },
{ ADAU1761_DIGMIC_JACKDETECT, 0x00 },
{ ADAU1761_REC_MIXER_LEFT0, 0x00 },
{ ADAU1761_REC_MIXER_LEFT1, 0x00 },
{ ADAU1761_REC_MIXER_RIGHT0, 0x00 },
{ ADAU1761_REC_MIXER_RIGHT1, 0x00 },
{ ADAU1761_LEFT_DIFF_INPUT_VOL, 0x00 },
{ ADAU1761_RIGHT_DIFF_INPUT_VOL, 0x00 },
{ ADAU1761_PLAY_LR_MIXER_LEFT, 0x00 },
{ ADAU1761_PLAY_MIXER_LEFT0, 0x00 },
{ ADAU1761_PLAY_MIXER_LEFT1, 0x00 },
{ ADAU1761_PLAY_MIXER_RIGHT0, 0x00 },
{ ADAU1761_PLAY_MIXER_RIGHT1, 0x00 },
{ ADAU1761_PLAY_LR_MIXER_RIGHT, 0x00 },
{ ADAU1761_PLAY_MIXER_MONO, 0x00 },
{ ADAU1761_PLAY_HP_LEFT_VOL, 0x00 },
{ ADAU1761_PLAY_HP_RIGHT_VOL, 0x00 },
{ ADAU1761_PLAY_LINE_LEFT_VOL, 0x00 },
{ ADAU1761_PLAY_LINE_RIGHT_VOL, 0x00 },
{ ADAU1761_PLAY_MONO_OUTPUT_VOL, 0x00 },
{ ADAU1761_POP_CLICK_SUPPRESS, 0x00 },
{ ADAU1761_JACK_DETECT_PIN, 0x00 },
{ ADAU1761_CLK_ENABLE0, 0x00 },
{ ADAU1761_CLK_ENABLE1, 0x00 },
{ ADAU17X1_CLOCK_CONTROL, 0x00 },
{ ADAU17X1_PLL_CONTROL, 0x00 },
{ ADAU17X1_REC_POWER_MGMT, 0x00 },
{ ADAU17X1_MICBIAS, 0x00 },
{ ADAU17X1_SERIAL_PORT0, 0x00 },
{ ADAU17X1_SERIAL_PORT1, 0x00 },
{ ADAU17X1_CONVERTER0, 0x00 },
{ ADAU17X1_CONVERTER1, 0x00 },
{ ADAU17X1_LEFT_INPUT_DIGITAL_VOL, 0x00 },
{ ADAU17X1_RIGHT_INPUT_DIGITAL_VOL, 0x00 },
{ ADAU17X1_ADC_CONTROL, 0x00 },
{ ADAU17X1_PLAY_POWER_MGMT, 0x00 },
{ ADAU17X1_DAC_CONTROL0, 0x00 },
{ ADAU17X1_DAC_CONTROL1, 0x00 },
{ ADAU17X1_DAC_CONTROL2, 0x00 },
{ ADAU17X1_SERIAL_PORT_PAD, 0xaa },
{ ADAU17X1_CONTROL_PORT_PAD0, 0xaa },
{ ADAU17X1_CONTROL_PORT_PAD1, 0x00 },
{ ADAU17X1_DSP_SAMPLING_RATE, 0x01 },
{ ADAU17X1_SERIAL_INPUT_ROUTE, 0x00 },
{ ADAU17X1_SERIAL_OUTPUT_ROUTE, 0x00 },
{ ADAU17X1_DSP_ENABLE, 0x00 },
{ ADAU17X1_DSP_RUN, 0x00 },
{ ADAU17X1_SERIAL_SAMPLING_RATE, 0x00 },
};

tas2505寄存器配置

//tas2505_reg_initials
static const struct reg_default tas2505_reg_initials[] = {
//{ 0x00, 0x00 },
//{ 0x01, 0x01 },
//{ 0x00, 0x01 },
{ 0x80 + 0x02, 0x04 },
//{ 0x00, 0x00 },
{ 0x04, 0x03 },
{ 0x05, 0x94 },
{ 0x06, 0x07 },
{ 0x07, 0x00 },
{ 0x08, 0x00 },
// 15ms delay
{ 0x0B, 0x82 },
{ 0x0C, 0x87 },
{ 0x0D, 0x00 },
{ 0x0E, 0x80 },
{ 0x19, 0x00 },
{ 0x1A, 0x01 },
{ 0x1B, 0x20 },
{ 0x1C, 0x00 },
{ 0x1D, 0x00 },
{ 0x1E, 0x01 },
{ 0x1F, 0x00 },
{ 0x20, 0x00 },
{ 0x21, 0x00 },
{ 0x22, 0x00 },
{ 0x30, 0x00 },
{ 0x31, 0x00 },
{ 0x34, 0x00 },
{ 0x35, 0x12 },
{ 0x36, 0x02 },
{ 0x37, 0x02 },
{ 0x38, 0x02 },
{ 0x3C, 0x01 },
{ 0x3F, 0x91 },
//{ 0x00, 0x01 },
{ 0x80 + 0x01, 0x00 },
{ 0x80 + 0x03, 0x00 },
{ 0x80 + 0x0A, 0x00 },
{ 0x80 + 0x0B, 0x00 },
{ 0x80 + 0x0C, 0x16 },
{ 0x80 + 0x16, 0x75 },
{ 0x80 + 0x18, 0x00 },
{ 0x80 + 0x09, 0x00 },
{ 0x80 + 0x10, 0x40 },
{ 0x80 + 0x2E, 0x00 },
{ 0x80 + 0x30, 0x10 },
{ 0x80 + 0x2D, 0x02 },
//{ 0x00, 0x00 },
{ 0x41, 0x00 },
{ 0x40, 0x04 },
};

  • 您好,adau1961是ADI公司的产品,请寻求ADI公司的支持;
    tas2505播放的WAV文件本身是不是清晰的没有噪声的?您可以注释一下tas2505寄存器设置吗,这样方便大家阅读
  • 您好:

    我给贴了一下注释,这样您看是否方便

    //tas2505_reg_initials
    static const struct reg_default tas2505_reg_initials[] = {
    //{ 0x00, 0x00 },
    //{ 0x01, 0x01 },
    //{ 0x00, 0x01 },
    { 0x80 + 0x02, 0x04 },//LDO Control Register
    //{ 0x00, 0x00 },
    { 0x04, 0x03 },//Clock Setting Register 1, Multiplexers
    { 0x05, 0x94 },//Clock Setting Register 2, PLL P and R Values
    { 0x06, 0x07 },//Clock Setting Register 3, PLL J Values
    { 0x07, 0x00 },//Clock Setting Register 4, PLL D Values (MSB)
    { 0x08, 0x00 },//Clock Setting Register 5, PLL D Values (LSB)
    // 15ms delay
    { 0x0B, 0x82 },//Clock Setting Register 6, NDAC Values
    { 0x0C, 0x87 },//Clock Setting Register 7, MDAC Values
    { 0x0D, 0x00 },//DAC OSR Setting Register 1, MSB Value
    { 0x0E, 0x80 },//DAC OSR Setting Register 2, LSB Value
    { 0x19, 0x00 },//Clock Setting Register 10, Multiplexers
    { 0x1A, 0x01 },//Clock Setting Register 11, CLKOUT M divider value
    { 0x1B, 0x20 },//Audio Interface Setting Register 1
    { 0x1C, 0x00 },//Audio Interface Setting Register 2, Data offset setting
    { 0x1D, 0x00 },//Audio Interface Setting Register 3
    { 0x1E, 0x01 },//Clock Setting Register 12, BCLK N Divider
    { 0x1F, 0x00 },//Audio Interface Setting Register 4, Secondary Audio Interface
    { 0x20, 0x00 },//Audio Interface Setting Register 5
    { 0x21, 0x00 },//Audio Interface Setting Register 6
    { 0x22, 0x00 },//Digital Interface Misc. Setting Register
    { 0x30, 0x00 },//INT1 Interrupt Control Register
    { 0x31, 0x00 },//INT2 Interrupt Control Register
    { 0x34, 0x00 },//GPIO/DOUT Control Register
    { 0x35, 0x12 },//DOUT Function Control Register
    { 0x36, 0x02 },//DIN Function Control Register
    { 0x37, 0x02 },//MISO Function Control Register
    { 0x38, 0x02 },//SCLK/DMDIN2 Function Control Register
    { 0x3C, 0x01 },//DAC Instruction Set
    { 0x3F, 0x91 },//DAC Channel Setup Register 1
    //{ 0x00, 0x01 },
    { 0x80 + 0x01, 0x00 },//REF, POR and LDO BGAP Control Register
    { 0x80 + 0x03, 0x00 },//Playback Configuration Register 1
    { 0x80 + 0x0A, 0x00 },//Common Mode Control Register
    { 0x80 + 0x0B, 0x00 },//HP Over Current Protection Configuration Register
    { 0x80 + 0x0C, 0x16 },//HP Routing Selection Register
    { 0x80 + 0x16, 0x75 },//HP Volume Control Register
    { 0x80 + 0x18, 0x00 },//AINL Volume Control Register
    { 0x80 + 0x09, 0x00 },//Output Drivers, AINL, AINR, Control Register
    { 0x80 + 0x10, 0x40 },//HP Driver Gain Setting Register
    { 0x80 + 0x2E, 0x00 },//Speaker Volume Control Register
    { 0x80 + 0x30, 0x10 },//Speaker Amplifier Volume Control 2
    { 0x80 + 0x2D, 0x02 },//Speaker Amplifier Control 1
    //{ 0x00, 0x00 },
    { 0x41, 0x00 },//DAC Channel Setup Register 2
    { 0x40, 0x04 },//DAC Channel Digital Volume Control Register
    };
  • 非常抱歉回复这么晚!
    感谢您做的注释,您可以附上您的原理图吗,您使用的MCLK, WCLK ,BCLK 值是多少
  • 您好,您的问题解决了吗,如果还没有解决,您可以提供我上一个帖子所提到的信息吗
  • 抱歉,最近才看到。

    MCLK我们给定的是12.28MHz,但是实际上是浮动的,如下图。

    BCLK

    WCLK

  • 您是用电压探头测量的吗,因为我看示波器图中单位是1.00A,并且MCLK是315HZ,请您确认一下
  • 是的,用用示波器探头测量的
  • 您好,MCLK您给定的是12.28MHz,而测得是315HZ,这是不正常的,您有尝试断开tas2505,仅测主控端发出的MCLK是否为12.28MHz?
    另外请检查您的示波器设置和探头的使用情况,看是否由示波器的问题引起的
  • 您好,其实我刚才的测量点就是又CPU送过来的,正常MCLK应该是固定在12.28MHz是么,如果MCLK不对,Spk也可以出声是么?
  • 你好:

    我这边调整驱动和设备树,目前MCLK和BCLK还有WCLK的频率都OK了,如下:

    MCLK固定在12.288MHz

    BCLK固定在1.5MHz

    WCLK是48KHz

    目前噪音明显改善。

  • 感谢您的反馈,目前噪音性能是否满足您的设计要求了呢,是否需要我们做进一步的支持?
  • 目前看来不需要了,后续如果有再沟通,谢谢!
  • 好的,感谢您的反馈