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.
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.
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)
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
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)
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.