Home > TEST > BII 80MHz + 352.8KHz Audio + Silence = Noise

BII 80MHz + 352.8KHz Audio + Silence = Noise

(NOTE: This behavior and the solutions have been documented by Bunpei over one year ago. Here I am reporting my own experiments which confirms his findings)

MASTER CLOCK SPECIFICATION

The data sheet for the Sabre32 DAC specifies the  system clock frequency requirement as follows:

Serial Normal Mode: fc>192fs. For fs=352.8Khz then the fc>67.7376 MHz. The system clock in the original Buffalo II DAC is 80 Mhz which meets the specification with ample margin. In fact it has a margin of about of about 18% higher. So it should work fine with 352.8Khz audio material.

PLAYING MUSIC

As reported in this post, the BII-8oMhz DAC can play 352.8Khz audio. It seems though to “struggle”, like being at the “edge” of its capability, occasionally emitting a “click”,  but with some adjustments it plays fine and almost noise free.

PROBLEM

However, there is a peculiar problem with 352.8Khz audio material: when the track is paused, stopped or during the gap between songs the DAC will emit a loud hissing sound (sort of like white noise). This noise responds to filter and volume settings in unexpected manners:

  • The level and tone changes with the DAC digital volume setting but not in relation to it. For example, one setting will give you low volume and lowering the volume one click will greatly increase it.
  • FIR sharp filter results in a louder noise than the slow filter
  • The quantizer bit depth also changes the amount of noise coming from the DAC, with 8bit giving the lowest amount and less than 9bit
  • The IIR filter and the notch delay don’t seem to have any effect
  • DPLL  bandwidth even by enabling the 128x DPLL bandwidth multiplier did not have any effect. I applied the maximum DPLL bandwidth and the noise did not go away

The white noise problem can also be replicated with the following:

  • Reduce the volume to zero using the volume control of the application, the OS or the device driver
  • Reduce the volume to near zero. The noise will start showing up in the form of “clicks” and “cracks”
  • Playing a silence track.
  • Fast forward/reverse the track (the application mutes the sound when doing this)

The problem has also been reported if using an ExaDevices EXAU21 USB interface and also using the SDTrans transport.

It seems that somehow there is a reversal and silence is interpreted as sound and because there is no real data, you get white noise. If it were erroneous low level data picked by the I2S wiring then it should respond to the lowering of the volume, but it doesn’t

SOLUTIONS

Software solution

I have not yet found a good software solution to this problem.

The only thing that mitigates this problem is enabling the “automute loopback” feature of the chip. The DAC can detect the “zero” level and mute itself (if so programmed). However, it cannot automute in zero time but it takes a fraction of a second as it ramps to mute after detecting the “zero” level.

The result is that the noise can be limited to a short burst of white noise whenever silence is encountered. It is still annoying but not as annoying as continuous white noise :-).

Additionally, I tried different things to reduce or eliminate this burst of white noise but so far the following measures don’t seem to make any difference:

  • Detect the zero level sooner (shorten the time in zero level that constitute zero level)
  • Increase the value of zero level (I have changed it from the default value of -104db to -60db)

Hardware solution

Upgrade the clock to 100Mhz

The Buffalo II DAC was upgraded to 100 MHz clock. The Buffalo III also comes with a 100 Mhz clock. This is the “official solution”.

If you can do simple soldering, you can buy a 100 Mhz oscillator at Mouser for about $30. The mod is very simple and can be completely non-destructive by adding a second oscillator to the board.

  • First, cut off the power to the existing clock by removing L3 in the backside of the board.
  • You can use the existing low noise regulator to power the new clock. To do this you can leverage  the Trident connectors: VDD_XO and GND.
  • Then use proper bypass of the VDD_XO pin close to the clock. In order to further minimize noise, use a ferrite prior to connecting the power to the clock
  • Finally you take the output of the new clock and connect it to the pad next to the text R17

I haven’t decided to do this mod.  The only reason at this time is for “proof of concept” because there isn’t much material out there that is in 352.8KHz.

For those who are planning to do the mod, look at the comments section. There is a comment from Bunpei (http://www.zeph.com/lowmelt.htm) showing the “best” way to replace the clock.

  1. August 31, 2011 at 18:36

    You’ve probably seen this, but I thought I’d direct your attention to this post about about the HiFiDuino system: http://multidac.blogspot.com/2011/08/5arduino-pro-mini.html

    Good little explanation of the LCD display.

    • BlogGeanDo
      August 31, 2011 at 20:03

      Very nice table indeed. Also, maybe It would be cool to do a user interface for an even smaller LCD: and 8×2. Thanks for the link…

  2. Bunpei
    September 1, 2011 at 15:41

    Hi, BlogGean,

    I have removed five Crystek oscillator modules in all from Buffalo II boards.
    In the recent case, I used low temperature melting soldering wire like this;
    http://www.zeph.com/lowmelt.htm
    and got an easy and safe result.

    I prefer rather a removal of the part to cutting any patterns on the board.

    Bunpei

    • BlogGeanDo
      September 1, 2011 at 18:03

      Bunpei, thanks for the link. I watched the video. So cool! 🙂

  3. Michele
    September 1, 2011 at 19:32

    BlogGeanDo :
    Very nice table indeed. Also, maybe I would be cool to do a user interface for an even smaller LCD: and 8×2. Thanks for the link…

    I believe that the choice between different LCD size would be a very attractive feature. It’s quite long time I’m thinking to modify the code to use a 20×2 LCD so that I can finally close the 1U case of my double BII, but I think it is beyond my programming knowledge…..

  4. September 14, 2016 at 16:40

    akrep burcu

  5. September 14, 2016 at 19:01

    work online

  1. No trackbacks yet.

Leave a comment