You are here

More Vref musings - Part 2

Note: The -XXdB figures in this post are taken from analysis of LTSpice simulations, not "Real World" measurements.
They should be reasonably indicative of levels of difference between options, but cannot be directly translated into "at the output jacks" values.

Despite all the modding I'm still none the wiser as to exactly which aspect is responsible for the improved behaviour. It's tempting to say that the added capacitance is the primary reason, yet Søren's "factory mod" substantially reduces "hash" with an additional 47uF. This suggests that bulk capacitance is only part of the solution.

Based on the testing I have done with 4 variants (stock + 3 mods) of the vref I'd rank the mods from worst to best:

- factory mod
- factory mod + 470uF
- stock + 470uF

The factory mod alone is a significant improvement over the stock vref but doesn't reach the same level of improvement as the stock + 470uF.
Adding extra capacitance to the "factory mod" almost closes the gap with stock+470uF but not completely.

In an attempt to shed some light I decided to sim the various configurations and measure the peak level of the transient response FFT at a selection of frequencies.

Comparing the original Vref and "factory mod", it's apparent that there is virtually no change in the peak level across the range of 100Hz to 20Kz with the factory mod. This configs Søren's statement that there is no peaking in the "factory" mod. In contrast the stock vref the peak levels starts low but climbs as frequency increases.

The factory mod is a huge improvement over stock, so it would appear that the majority of the improvement comes from reducing peak ripple above 5KHz.

So lets look at the other mods I've tested in the real world.

Adding 470uF to the Factory Mod clearly doesn't alter the attenuation at 100Hz but rolls off progressively through the audio band. This is pretty nice, but as we've seen doesn't really clean up like adding a big cap to the stock vref.
On the other hand adding 470uF to the stock Vref adds creates a pole in the feedback loop, resulting in a peak in noise gain.
This will happen with any bulk capacitance added to the stock vref, so don't think you'll dodge the bullet by stacking on the capacitors. Sorry guys...

Just for reference the sim indicates the following peak values:
330uF - 6.17KHz, -53dB peak
470uF - 5.288KHz, -55.3dB peak
1000uF - 3.67KHz, -58.17dB peak
2700uF - 2.245KHz, -62.6dB peak.
And remember that the peak ripple for the Factory Mod is between -70 and-67dB from 100Hz to 20KHz.
This means the big cap will have ripple at the noise peak that is at least twice the amplitude of the Factory Mod.

An alternative - perhaps
One possible alternative is to embrace the idea that the cap values have to meet the criteria laid out in the Brown Burr app note. This is said to ensure noise gain peaking is minimised.
What I've been trying out in LTSpice is using values based on this relationship, and it seems reasonably effective, if not spectacular.

The equation I've used is:
compensation cap (in mF) = ((2*series_resistor*(total_capacitance_mF/0.000001)/feedback_resistor)*0.000001)
Not all values are useful, and I'd suggest looking at using a series resistor = 0.1R to keep the value of the compensation cap value small. Well under 1uF is a good idea.

What I ended up as "worth trying" is 220nF compensation cap, 0.1R series resistor and 499R feedback resistor, with 22uF//47uF//470uF polymer cap per vref.

As can be seen from the above, the "FrankenMod" in orange is a bit of a mashup of the stock and "Factory Mod" in performance - head from one, part of the leg from the other...
While the low end attenuation is not as good as the stock filter, it's an obvious improvement on the "factory mod", and the performance above 3500kHz has the edge on the stock+470uF option.

From a quick test the 1KHz and JTEST performance is very close to that of the stock vref + 470uF. The harmonics are different as you'd expect and the noise floor is possibly a tiny bit cleaner, but nothing I couldn't put down to vagaries of my testing methods. The noise peaking is not entirely eliminated but occurs as a low "hump" at around 1.7KHz with a peak level of -67.85dB, which should be around 5dB lower than the 2700uF+stock peak. It's also substantially better than the -55.3dB peak level for the stock+470uF.

It's worth having a look at the pics of zfe's white noise tests posted to HiFi-Duino here:

"Correct" component selection
The idea for the above tweaks comes from the "Voltage Reference Filters" app note sbva002 which describes the theory of the filter Søren appears to have used for the vref buffer.

Note that:
- the series resistor and load capacitance form a RC filter with f-3dB = 1/(2 * π * series resistance * Load capacitance)
- to minimise noise gain peaking: feedback resistor * compensation cap = 2 * series resistor * load capacitance,
- to ensure stability: load capacitance * series resistance < 0.5 * feedback cap * compensation cap (app note formulation)
or as zfe points out: feedback resistor * compensation cap > 2 * series resistor * load capacitance
I'm sure that the they should be ≤ and ≥ respectively as it a bit nonsensical having an ideal condition that does not meet the stability condition.

Although the output impedance is low at both high frequencies and DC, it peaks at midband frequencies.

- a peak in output impedance of 0.7 * series resistance occurs near the corner frequency of the RC filter. Reduce series resistance and increase load capacitance to lower the mid-band impedance.



4 x 470uF /16 Nichicon FP, so 1880uF. It's just going to be midway between the Stock+1000uF and Stock+2700uF.
ESR makes little to no difference to the behaviour. FWIW this combination will have peak level of -61dB at 2.684KHz if you want to compare with the figures listed above.

OK, I see what he's doing, I think!

The 47uF cap mod moves the noise peak to -74dB at 77KHz. The peak levels are relatively low though the audio band, -101db at 100Hz which is same as all the stock vref implementations through to -80.6dB at 20KHz., There appears to oscillation at 77KHz over-layed on the ripple. You can tone down the peaking and kill off the oscillation by dropping the cap value to 0.1uF but peak level increases to -75dB at 20KHz.

OK thanks !
So it's also no free lunch.

We'll see what the "FrankenMod" will bring :-)

I think stock +10.000uF, or so, you schuld come below the factory-mod line in simulation.
I however agree that this sledge hammer method is very unsatisfactory.
"FrankenMod" looks like a step in the right direction. How does the shape alters if you change the magnitude of the components? Can it be moved closer to the stock+ graph in the low frequencies?

I'd be looking at something like:
series resistor - 0.01R
cap - 10000uF
feedback resistor 1K
comp cap 200nF

The worst case peak is around -82dB at 500Hz, and -110dB at 20KHz.

There might be a trade off with filtering noise from the +5V supply and reference. The TL431 seems to be well filtered however.

If you apply the design notes for the stock buffer topology the 10000uF + 0.1R series resistor + 2uF combination results in a potentially unstable buffer design. You'd need slightly more than 4uF to ensure the buffer is stable.

I've added a couple of notes to the end of the post regarding the design criteria for the buffer using the stock topology.

Add new comment

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.