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.

TAS5754M: No audio at 96kHz and loud white noise (Shifter overflow, channels A/B overflow)

Part Number: TAS5754M
Other Parts Discussed in Thread: PCM9211

Hello all,

the TAS5754M is being used  as the amp on a Speaker that is being developed. The speaker can have as audio input BT, analog RCA, and TOSLINK (SPDIF). The following  problem has been identified when playing via TOSLINK (digital audio) and more specifically at different sampling rates.

The most frequent scenario is that music is streamed at 48kHz and getting the TAS5754m vitals (reading the corresponding registers) would report the following

playing @ 48kHz

TAS5754M    > 32 <= Fs <= 48 kHz
TAS5754M    > SCLK = 64 Fs
TAS5754M    > PLL locked
TAS5754M    > 0.7 x VDD <= SPK_MUTE
TAS5754M    > Fs <= 48 kHz
TAS5754M    > DSP boot done
TAS5754M    > DAC running/playing

On the this scenario music is streamed flawlessly without any issue

However, when we are streaming via TOSLINK and the 96kHz has been pre-selected on the media device then there is no audio coming out of the TAS and the VITALS report a shifter channel overflow error as shown below.

TAS5754M    > Channel shifter overflow
TAS5754M    > 88.2 <= Fs <= 96 kHz
TAS5754M    > SCLK = 64 Fs
TAS5754M    > PLL locked
TAS5754M    > 0.7 x VDD <= SPK_MUTE
TAS5754M    > 48 kHz <= Fs <= 96 kHz
TAS5754M    > DSP boot done
TAS5754M    > DAC running/playing

Another, graver effect seems to have when switching from 96kHz to 48kHz while the music is being streamed, where the divers start blasting white noise at uncontrollable volume and the gettting the VITALS reports overflow on both channels A and B in addition to the shifter overflow (shown below)

TAS5754M    > Channel shifter overflow
TAS5754M    > Channel A-2 overflow
TAS5754M    > Channel B-2 overflow
TAS5754M    > 32 <= Fs <= 48 kHz
TAS5754M    > SCLK = 64 Fs
TAS5754M    > PLL locked
TAS5754M    > 0.7 x VDD <= SPK_MUTE
TAS5754M    > Fs <= 48 kHz
TAS5754M    > DSP boot done
TAS5754M    > DAC running/playing

 

The digital audio data that is coming on the TAS input seems to be fine and the TAS seems to be recognizing the differetn sampling rates Fs.

Is there any settings that have to be adjusted so that the TAS can play the audio at 96kHz ?

And most importantly I am interested on the source of this white noise which is really loud and uncontrollable. The only way to get rid of it seems to be reboot/reinitialize the TAS module.

The overflow error to me it seems that the data are coming faster than expected/can be processed. Having looked at the datasheed of the TAS it seems that these rates can be supported also the SCLK doesnt exceep the maximum limit 64*Fs= 64 * 69kHz = 4.416MHz < 24.576 MHz. Or is there a misinterpretation here?

I would be glad to give you some more information on the setup upon request.

Thanks a lot in advance!

Regards,
Costas

 

  • Hello Costas,

    • Can you show the I2S signals waveform for both 48k/96k.
    • Can you provide the I2C init sequence you are using to configure the device. Do you know what HybridFlow configuration you are using?

    Best Regards,

    Luis

  • Hey Luis,

    Thanks for the prompt response.

    So, here I attach the plots of the data for all 3 scenarios described in the original post. The data were captured on the SDIN of the TAS with a Logic Analyser sampling at 16MHz.

    A sinusoidal wave of 440Hz frequency was chosen for this test. The following plots were generated by a python script taking as input the CSV files exported from sigrok.

    Scenario 1

    Scenario 2

    Scenario 3

    As you can see the data that arrives at the TAS is correct. 

    ------

    The initialization of the TAS module is pretty straightforward.


    1. set an eq filter generated from purepath

    2. the 3-wire mode looks like that:

            /*
             * 3-wires mode
             */
          if (!_select_page(0)) break;
            // PLL clock source = SCLK
            if (!_write_reg(13, 0x10)) break;
            // Ignore MCLK and MCLK halt detection
            if (!_write_reg(37, 0x18)) break;
            // Set channel DAC data path
            if (!_write_reg(42, 0x11)) break;

    3. setting the volume at a certain level (_write_reg(62, db_volume);

    ----


    The TAS5754m in the speaker uses the Hybridflow 4.
    However the data are also being transmitted to another device (with TAS5754m-Hybridflow 3) via a wireless communication protocol.

    This question actually made me look in the Hybridflow processor datasheet and I saw that HF3,HF4 support up to 48kHz. So that would explain why we are not getting audio in the scenario2 described in the original post.

    1. Is there an option to downsample to 48kHz via the TAS5754m?
    2. How does that explain the noise coming in the 3rd scenario - when switching back to 48kHz.

    Best regards,
    Costas

  • Hello Costas,

    For 96k to work you need a Hybrid Flow configuration that supports that sample rate. If you use try to use 96k on a HybridFlow configuration that does not support it then it could cause issues which may be resulting on your end in these audio artifacts.

    Best regards,

    Luis

  • Hello Luis,

    I do understand that the TAS wont' reproduce audio coming at 96kHz. What is not clear yet to me is what would be the cause of the white noise? In other words which scenarios would cause a channel shifter overflow or overflow in channel A/B?

    Is there a way to downsample via the TAS5754M module?

    Could please provide me some more information on that, so as to get a better understanding and proceed with the debugging of the issue.

    Furthermore, the speaker supports AC3 codec for surround sound and it is capable of multichannel streaming. The audio in this case is being streamed only at 48kHz. When starting a stream the audio plays correctly and all the channels have the correct data. (verified with the Logic Analyzer). However I do get exactly the same type of noise that I have mentioned above when I either click forward or backward in the progressbar of the media player (through which I am playing a video that has 6 channels surround audio) or when I pause and then press play again.

    Would you have any idea what could go wrong there? The TAS in this case again reports channel overflow in channels A & B.

    Note:
    I would like to highlight the fact that I never get this issue when I am streaming stereo at 48 kHz. I have tried several times to break it but it plays fine.

    Looking forward for your answer.

    Best,

    Costas

  • Hello Costas,

    There isn't downsampling/sample rate conversion that can be configured for this device. You need to configure the TAS5754 for the Hybridflow configuration that supports that sampling frequency. It's also wouldn't be recommended to change the sampling frequency on the fly during audio playback as it could cause issues with the timing and processing of the data which may result in this abnormal noise you are seeing. If sampling frequencies are changed it would be recommended to mute the device during this transition.

    Best regards,

    Luis

  • Hello Luis,

    Thanks for your answer.

    Unfortunately we cannot change the Hybrid flow on the system right now since it is part of more broad configuration consisting other speakers that are connected wirelessly.

    I do understand that changing the sampling frequency on the fly could cause issues on the TAS. Through, more targeted tests I have seen that the SCLK and LRCLK loose sync when changing sampling rates.
    The same happens on the scenario I have described on the last post regarding the AC3 surround test-file  where the noise starts when I click forward or backward in the progress bar of the media player.

    Do you think it would make a difference if the SCLK and LRCLK are stopped somehow while the sampling rate is changed?
    Would you have any other suggestions?

    It should be noted that the digital data are coming from the chip PCM9211PT which is also a TI module. Do you think we could maybe act on that side?

    Thanks in advance.

    Best regards,

    Costas

  • Hello Costas,

    It usually takes a few bclk cycles for the clock detection to configure the device, so if you are changing sampling rates it would definitely help if you do stop the SCLK and LRCLK when changing sampling frequencies, but also be recommended you mute the device before pausing the clocks and unmute after the clocks are stable just to make sure you don't cause any unintentional audio artifacts.

    Best regards,

    Luis 

  • Hey Luis,

    Unfortunately the CLKs are hardwired to the amp and there seems to be no direct access to them. However The digital signal that comes from the TOSLINK input first comes to the PCM8211 module from which the CLKs are also passing through. Is there a way to act on the CLKs at that point of the signal path?

    I have managed to mitigate the white noise by trying to detect the overflow on the TAS side fast enough so that I mute the amp and the reboot it. That seems to work relatively ok but it is just a patch and not a solid solution. My question now is if you believe there might be a problem on the i2c bus while trying to detect the overflow. The interval of the detection is now around 50 to 100msec. Are these values safe enough so that they wont cause any break on the i2c bus? We have a couple more modules to which we communicate over i2c. The i2c bus is running at 100kHz on our system.

    Best,
    Costas

  • Hi Costas,

    It is long history and pls correct me if i have some misunderstanding of this:

    1. Scenario 2: White noise comes out in HF4 when playing 96K and overflow is founded;
    2. Scenario 3: SCLK and LRCLK loose sync when changing sampling rates;

    For scenario 2, i have to say HF4 cannot support 96KHz as below. As you know, Fs determines the maximum time internal mini-dsp can process audio signal.

    96K means the time will be down to half of 48KHz, which leads to insufficient time. Then i have to say any half-processed audio may come out and i cannot explain further due to the complex scenario.  

    No SRC (sampling rate convert ) function is found here for this issue. May you configure I2S source from 96K to 48K?

             

    As to scenario 3, if possible, it is suggested to configure pre-stage I2S source to support only 48K.

    BR,

    Alix Wan.

  • Hello Alix,


    Sorry for the delayed reply

    1. For scenario 2, white noise comes out as soon as I switch from 96 to 48kHz. When streaming in 96kHz I just dont have audio at the output of the TAS which makes sense since HF4 doesnt support it.My hunch is telling me that the noise comes because during the transition (from 96 -> 48) the clks are getting out of sync for a fraction of a msec and then they are stable again. However this fraction of time is enough to break the TAS and cause the channel Overflow in A-2 B-2.

    2. The same issue as scenario 2 is happening in scenario 3 when streaming surround sound. (ofc only 2 of the 6 channels arrive at the amp and the rest are transmitted wirelessly to other devices where the playback doesnt break). To be more specific I am quoting a part of my previous posts

    The audio in this case is being streamed only at 48kHz. When starting a stream the audio plays correctly and all the channels have the correct data. (verified with the Logic Analyzer). However I do get exactly the same type of noise that I have mentioned above when I either click forward or backwards in the progressbar of the media player (through which I am playing a video that is streaming 6 channels surround audio)

     


    image 1 : streaming surround sound at 48kHz. Zoomed in the exact time that the another point in time is clicked in the media player


     


    image 1 : streaming surround sound at 48kHz. Zoomed out of the prev picture. After the different point in time is selected there is a gap in the audio (reasonable until it buffers up the whole stream) and then the data continue to flow but only noise comes out of the TAS

     

    XLF is another module from which only the data pass through after coming out of the SPDIF input.


    Note 1: 
    I never have any noise issue when streaming stereo at 48 kHz.

    Note 2: The noise is associate only with the channel A-2, B-2 overflow seen in the logs below (not the channel shifter overflow)

     

    TAS5754M   > Channel shifter overflow
    TAS5754M   > Channel A-2 overflow
    TAS5754M   > Channel B-2 overflow
    TAS5754M   > 32 <= Fs <= 48 kHz
    TAS5754M   > SCLK = 64 Fs
    TAS5754M   > PLL locked
    TAS5754M   > 0.7 x VDD <= SPK_MUTE
    TAS5754M   > Fs <= 48 kHz
    TAS5754M   > DSP boot done
    TAS5754M   > DAC running/playing

     

    For the channel shifter overflow I have read in the datasheet that is acceptable at times due to certain configuration on the mini-dsps.

    As Luis has suggested to prevent this loss of sync it would probably make sense to stop the clks until they are stable again. Unfortunately both LRCLK and SCLK are hardwired tfrom the SPDIF input to the TAS and we dont have control of them.

     

    Hope the issue is now clear to you. Please let me know if you need more clarification


    Best regards,

    Costas

  • Hello Costas,

    For the surround sound case, is your i2s source driving a tdm signal or an i2s signal, how are you sending 2 channels out of 6 in your system? Does the other 4 channels have their own i2s source.

    Also in regards to the audio source are you seeing this at multiple different audio levels? If the audio artifact is clipping and that is what is causing the overflow it wouldn't show up at lower audio levels but the main issue seems to be the data due to changing clocks so the Smoothclip wouldn't really be applicable in this situation.

    For your i2s source can you clarify what is doing as you are scrolling through the audio? I am seeing some strange behavior with LRCLK in your first image.

    Best regards,

    Luis

  • Hi Luis,

    1. The signal path is the following. The surround sound is sent over TOSLINK/SPDIF cable from the source which is connected to our system. From there the TOSLINK data go to the PCB9211PT (TI module) and the output is the i2s_PCM_DATA , i2s_SCLK, and i2s_LRCLK. The PCM_DATA together with the clks enter on another module where the 6 channels are decoded (3 i2s_data_lines). The CLKS for alla 3 i2s_data_lines are the ones from the output of the PCM911PT module. 

    Now ONLY one (1) of the i2s_data_lines is linked to the TAS5754M together with the clks.

    In addition, ALL 3  i2s_data_lines are driven to a 3rd party module on the system that transmits them wirelessly (over Kleernet) to another similar system. The wirelessly transmitted data channesl seem to cause no issue to the TAS of the other devices.

    2. As I have seen by thorough testing is that the overflow related to the Smoothclip is different than the one that is causing the issue. See my previous post.  Discrimination between shifter overflow and channel A-B overflow

    3. By i2s source do you mean the PC via which I am playing the AC3 test file? Well, as I said, I am scrolling through the audio in the media player and then the i2s clks go a bit "crazy" /lose sync and then they are stable again.

    Best,

    Costas

  • Hello Costas,

    For the previously provided waveforms was that the output coming from the PCM9211 or from your SPDIF source, could you provide waveforms of both.

    Is this i2s clock instability apparent for different audio files that you play and across different media players? It definitely seems like abnormal behavior. Could you tell what the media player you were using and provide the audio file in your initial test.

    best regards.

    Luis

  • Hey Luis,

    I will try to provide you with waveforms later this week since due to the new lockdown it might be difficult to reach the office.

    I have been experiencing the clock instabilities with several ac3 test files and various media players (VLC, default win10 media player).

    My most common tests were conducted wtih the default win10 media player and playing one of the files of the dobly digital theater database ( Amaze Dolby AC3 5.1 640 kbps ).

    Best,

    Costas

  • Hello Costas,

    I will await for you to provide the waveforms. Typically when scrolling through audio you shouldn't see disruptions in the BCLK, LRCLK only changes in the data it might have something to do with the configuration of your audio interface as the TAS5754M cannot operate normally if there is such abnormal I2S clock behavior.

    Best regards,

    Luis