ADAU1701 and TI digital AMP rattling noise with LP-filtered signal

Hey folks,

I´ve already done a project with the ADAU1452 and wanted to realize a small 4In4 DSP amplifer. Therefore I´ve moved to the ADAU1701 and a digital TDM input amp from TI TAS6424. I´m using the internal ADCs of the ADAU1701 and one 2-Ch exernal ADC via I²S, process them e.g. for a 3.1 (L/C/R/SUB) configuration and send the digital TDM stream to the TI chip. The ADAU1701 is Master for both input and output according to another thread here:

The settings of the hardware configuration window are:

The PCB is 2-layer 70um with SMD parts in which the bottom layer is alomst only GND. The feedback trace of LRCLK and BCLK output to the input is done directly whereas the connection to the external ADC and AMP contains 33R resistors. The traces are kept as short as possible. On the AMP side MCLK is hard-wired to BCLK (This is a possible operation mode for TDM when no MCLK signal is available according to the TI chip manual)

The first tests have been very promising but I´ve noticed two strange issues with channels that use LP filters in their signal flow:

  • The output at the amplifier itself seems to contain a high frequency/transient component that is audible similar to rattling although there is no other processing active. The level of the noise is relative to the input level and therefore always audible. Please refer the test signal flow below

I´ve bought the EVAL board of the TI amplifier chip to verify that the distortion does not come from the amp. With the EVAL board I don´t have these issues. Then I´ve tried to hook the ADAU1452 EVAL board TDM pins to the TI EVAL board and the transient noise was present again. I found out that when I use a buffer IC like 74HC125 between the DSP and the AMP the noise is gone. I´ve tried to verify with the oszi but I don´t understand why the buffered version is working as it should whereas the direct connection over a 33R resistor (I´ve also tried higher values and even ferrite beans) does "produce" the sound. I´ve already done another project that uses only the ADAU1701 and the TI TAS6424 without the I2S feedback traces and tesetd the same configuration with the same noisy result. The buffered CLK signals seem to have smaller fall/rise times but the raw CLKs look already good for me?

BCLK raw

BCLK buffered

LRCLK raw

LRCLK buffered

SDATA raw

SDATA buffered

raw

buffered

  • Any of the peak limiters (I´ve not tried the RMS yet) produces bad distortion at the output even at low levels. I´ve tried different attack, release paramters but they all distort the sound way before the actual threshold. I don´t know this behavior from the ADAU1452 and I know that the ADAU1701 is not that powerful and more cost-efective. However I assume that this should not be the normal behavior?

Any feedback is highly appreciated! Thanks in advance :-)

PS: I´m using SigmaStudio 4.5 Build 1779

Parents
    •  Analog Employees 
    on Aug 25, 2020 9:33 PM 6 months ago

    Hello campus,

    Thanks for the good post with lots of information. However, there may be more than one issue here so we have to peel back the layers and simplify. 

    First, you need to be using at least a four layer PCB. The internal layers needs to be ground and power. This serves several purposes. It does some shielding but it provides shorter and more defined paths for return currents. This can cause difficult to explain symptoms like why the noise goes away when a buffer is used. 

    I do see a fair amount of undershoot and overshoot but I have seen worse so I do not think that is the cause. 

    I think you need to simplify the program and see what happens. Bring in the signals only on the internal ADCs and use the internal DACs. Then in the DSP program only remove the DC from the ADCs, setup a meter, a volume control and a mute for individual channels. Then see what you get. 

    The meter is important because I am wondering if you hear noise then the meter is on. There is a chance you might be hearing SPI/I2C noise. 

    There are not any issues with the compressors or EQs. So it must be some other issues. Feel free to attach a project so I can look for possible causes.  

    Dave T

Reply
    •  Analog Employees 
    on Aug 25, 2020 9:33 PM 6 months ago

    Hello campus,

    Thanks for the good post with lots of information. However, there may be more than one issue here so we have to peel back the layers and simplify. 

    First, you need to be using at least a four layer PCB. The internal layers needs to be ground and power. This serves several purposes. It does some shielding but it provides shorter and more defined paths for return currents. This can cause difficult to explain symptoms like why the noise goes away when a buffer is used. 

    I do see a fair amount of undershoot and overshoot but I have seen worse so I do not think that is the cause. 

    I think you need to simplify the program and see what happens. Bring in the signals only on the internal ADCs and use the internal DACs. Then in the DSP program only remove the DC from the ADCs, setup a meter, a volume control and a mute for individual channels. Then see what you get. 

    The meter is important because I am wondering if you hear noise then the meter is on. There is a chance you might be hearing SPI/I2C noise. 

    There are not any issues with the compressors or EQs. So it must be some other issues. Feel free to attach a project so I can look for possible causes.  

    Dave T

Children
  • Hello Dave,

    Thank you for your helpful and fast reply! :-)

    You´re right, there seems to be a mixture of issues.

    Okay, I already thought about upgrading the design to 4-layers. This will definitively improve the whole performance.

    I´ve already done a project in the past with the ADAU1452 using a 4-layer PCB and multiple of these amplifier ICs and I can reproduce the "rattling" noise with this hardware as well. The signal flow only needs to have a LP-filter <200Hz for a subwoofer setting and feed some music has lots of transients. I did not find a right way to acutally measure the noise sound. Maybe you have an idea? The issue has never been a problem with this hardware because the configuration is for fullrange speakers and no subwoofers. The rattling gets masked and noone cares.

    I agree that the issues are probably related to the hardware and layout other than the DSP signal flow itself. We´ve been using a third design with the ADAU1452 and the 4In8Out audio codec similar to the EVAL board with analog amplifiers for few years now without problems although we´re using them for subwoofers and use the limiter extensively.

    Regards the compressor of the ADAU1701 however it seems that I can hear the transition between the limiter transfer function dots. For example, I´m using a peak, full range, no post gain, no ext detect and turn on the readback switch. The signal flow is like this, refer the project in attachment:

     SUB.zip

    Then I flatten the curve and watch my actual green dot (not visible in the picture) how the compressor works. Even at low levels where the limiter should not be active there is a distortion of the sound like artifacts and they sound like "rattling". When I restore the limiter transfer function to default the noise is gone.

    I made the suggested test with the following singal flow. I´ve extended the project a bit that the amplifier will be released from standby after a delayed startup. I assume that whis won´t affect the results. I can read -95dB when nothing is connected. This seems to be correct?

     Test.zip

    Till now, I´m missing the right link between the software and hardware behaviour but I´m sure with you guys we´ll get it :-)

    Thank you and best regards!

    - C

  • Hi Dave,

    the 4-layer 70um PCB has arrived. However the same issues with the noisy sound exist as soon as any limiter is involved.

    I´ve tried various settings in Sigma Studio and everything leed me to the point that the limiter point density is too low in the upper range -20 to +6 dB. When I use the Peak Fullrange (no gain) algorithm and enable the tracking of the current level I can actually see the current level point jumping between the graph points. The jumping incident corresponds to the noisy sound.

    I´ve tried to increase the point density but nothing changes, maybe a bug?

    Any help is much appreciated.

    BRs

    -campus