You are here

Test tone quality, and Cap Mod verification

Parts came in for the "Factory Approved" cap mod a couple of days ago, and I've managed to do the upgrade.
I'm not a huge fan of stacking parts so I decided to remove the compensation cap and 10ohm resistor rather than just adding parts on top. I stacked the output cap as I though the additional capacitance would be beneficial.

The compensation cap has been replaced with a 0 ohm resistor, and the 10 ohm resistor changed to 0.1R as per Søren's recommendation.
Working with parts this small is a serious challenge for me, and it's getting close to the limits of my eyesight and equipment. The result isn't especially pretty but it works.

One of the "elephants in the room" with user testing is the quality of the test tone used.
I recently picked up a copy of the Denon Technical Audio CD thinking I would get a decent set of test ones and was surprised at just how bad the spectrum analysis of the DAM looked with the 1001Hz 0dB tones.
Looking at the spectrum of the original test tone made it clear that the DAM1021 was actually reproducing the test tone accurately, even if it wasn't quite what I'd expected.

Rather than dealing with this, I've made up some new test tracks using Faber Acoustics Signal Suite at 24bit, then dithered the result down to 16bit. Much nicer.

And testing the DAM1021 (0.2% version) using this file...

The DAM1021 volume was set to V-02 to avoid clipping the input of my audio interface. Peak level in the file is -1.1dB, and the 2nd harmonic is at -83.9dB, so -82.8dB relative to the 1kHz tone level.


Having gone back and compared the jitter tests I did with just the 470uF polymer caps added, I'm pretty disappointed at the outcome of the "factory" mods.
Immediately post "factory" mod I got the impression the sound quality had gone backwards, and the jitter test (above) points to Søren's suggestion not fully addressing the issue - artefacts are significantly reduced compared to stock but are not as clean as simply boosting capacitance.

Re-running the test with 470uF Polymers brings the spuriae levels almost back to where they were:

As a "reality check" this is the same test done on the unmodified board:

Update 2
I've had a look at simulation of the buffer in LTSpice using the correct model for the OPA365.
The sim shows around 5.8mv ripple in the original stock buffer with a load stepping from 0 to 15mA at 44.1kHz.
Adding 470uF to the stock buffer drops the ripple down to 0.4mV.
Søren's reconfigured buffer has around 1.2mV ripple (with stacked 22uF and 47uF caps) which is a substantial improvement over the previous stock version.
The reconfigured buffer plus 470uF polymer drops the (simulated) ripple to 0.25mV.

The revised buffer has the added benefit of eliminating noise peaking.

It appears there is still benefit from added capacitance. I'm tempted to play around with increasing the 0.1R resistor to 1R which will bring the corner frequency of the filter down to 300Hz from 3KHz. This should help filter reference noise, and the noise contribution of the op-amp.



with the factory mod (+ polymers), than polymers only ... judging from the graphs?

Possibly, but I wouldn't be confident to say one way or the other. I had a few issues with the mic inputs on my interface and have had to switch to using the line inputs on the rear since doing the initial cap mods. I've also found that one channel has some low level noise so basically I have one good input. So all that adds some variability into the mix. What I can say is that tests done together should be comparable - less so over time. There is a couple of dB peak level difference between the unmodded (which was done a prior to interface problems) and the two modded charts in the above for example.

FWIW With the original version of the buffer + 470uF (plus 22uF onboard) caps the output RC filter had a corner frequency of around 32Hz. With Søren's changes + 470uF (plus 22uF and 47uF) the corner frequency is now about 3KHz.

just to clarify: Soren recommends putting a 0.1 ohm resistor in parallel to the 10 ohm resistor, which effectively translates to circa 1 ohm resistance overall. and you have tested with 0.1 ohm output series resistance.

parallel resistance = (R1*R2)/(R1+R2)
= (10*0.1)/(10+0.1)
= 1/10.1
= 0.099 or close enough to 0.1ohm

0.1 ohm is the correct value to replace parallel 10//0.1

Yeah, you are right, my bad.

ad. update 2: What comes from my measurements to date is parasitic elements of the board make reaching sub 0.5-1mVpp oscillation hardly achievable. E.g. after stacking 270nF oscons with onboard 22nF caps I've measured 2mVpp at a shift register bypass. And then you have imperfections of measurement equipment and experiment methodology. Not that I have super-precise oscilloscope (it's only entry level rigol), but during these hot summer days thermal (and other) noise generated by a probes and oscilloscope reached 0.5-0.8mVpp levels at loopback tests. I have yet to see a report that takes this issues into account.

Instead of changing out the resistor? Unless you have a reason to not want to add capacitance?

OR use HIFIDUINO's approach with all of those local caps at the shift registers? I am attracted to that idea.

I figure all of that capacitance adds up? If you see it otherwise I would appreciate your comments. It seems one can add a great amount of capacitance this way and the corner frequency can be VERY low.

Wondering if it would not be easier to use a wire across the op amp for the feedback loop which one could then attach the output resistor (in this instance one with leads) on one end and the other at the "stacked" cap. Obviously, one would remove the feedback cap entirely. I like the idea of the feedback loop being as short as possible and anything that would allow using anything but those 0603 components. If only the next size up had been used!

I would do almost anything to not have to replace that resistor after getting it placed! Congratulations on getting it done! Who cares what it looks like as long as it words well?

Take care,

Each of the "factory" buffer designs has advantages and disadvantages.

The original design compensates for voltage drop over the series resistor because the resistor is in the feedback loop. This means it possible to use a 10ohm series resistor, which in turn gives the possibility of filtering the output of the buffer to reduce noise from the op-amp, 5V supplies and voltage reference.
The down side is that this setup has a noise peak which is dependant on relationship between the values of the compensation cap/feedback resistor and series resistor/output cap(s).

The revised buffer shifts the feedback loop pickup so that series resistor and output cap are outside the loop. This avoids the problem of noise peaking, but means the voltage drop over the series resistor effects the regulation of vref. Assuming a 10mA peak current, the 0.1ohm resistor will have a maximum drop of 1mV, but this will vary depending on the binary value in the shift registers. Who knows, 0.05ohm might be better again...

But it appears the biggest improvement in terms of vref stability you can make to either setup is adding more capacitance. It should help regardless of whether it's added at the output cap or at the shift register bypass.

I'm not sure about the direct wiring for feedback. I'd rather have the feedback trace close to the ground plane , that running across the op-amp, but I have nothing to substantiate which is the better option.

Paul, In your LTSpice simulations of the original buffer with C1 @ `470uF, what value did you use for C2? As far as I know the actual value is still unknown to us? I am thinking of trying the original buffer with C1 @ 470uF and C2 @ 22uF to eliminate noise peaking as per the app notes you cite.

I asked Søren what the mystery values were ;)
- 330pf for the compensation cap
- 22uf for the original output cap

Just adding the 470uF with esr = 10mOhm adds a small peak which rises from 10nV/sqrt(hz) -> 40nV/sqrt(hz) at 5.25kHz. It's actually significantly better than the 180nV/sqrt(hz) peak at 25kHz with the original stock values.
The 330pF really needed to be closer to 0.9uF with the stock values to kill the peak.

It might be worth playing with resistors to keep the compensation cap down to something that will fit - I've played around simming the feedback resistor value and it has little effect on noise - despite the commentary elsewhere. The series resistor is the main factor in the peak amplitude.

I have noticed in the sims that the OPA365 is not especially good in terms of 1/f noise. Noise is about
12nV/srqt(hz) at 1khz,
30nV/sqrt(hz) at 100hz
105nV/sqrt(hz) at 10hz
330nV/sqrt(hz) at 1hz
1047nV/sqrt(hz) at 0.1hz
with 10ohm series resistor, 470uF//22uF

I've been looking to see if there is something that will drop in as replacement and the LMP7731 is promising but a bit noisier above 1kHz. On the other hand it's 1/f noise performance is stellar, 55nV/sqrt(hz) at 0.1hz, and 5.5nV/sqrt(hz) at 10Hz. It looks pretty touchy regarding caps and resistors, so might not work.

It will make a clear difference to noise. The peak with 22uF is a lump in the noise floor at between 10-30Hz, and the noise floor is very low from 110Hz upwards.

With the stock 330pf cap, the lowest point below the peak is 10.5nV/sqrt(hz) at 2kHz and at 110Hz noise is 32.5nV/sqrt(hz).
With the 22uF cap, noise is 2.5nV/sqrt(hz) or better from 110Hz upwards.

What I'm concerned about is the ripple//regulation with the big compensation cap.
The sim suggests with a 5mA sine load at 500Hz you'll get following p-p ripple:

330pF/499R - 69uV
22uF/499R - 6.15mV

The ripple drops as frequency increases, so by 10KHz the 22uF/499 ripple is down to 305uV, at 20KHZ ripple is about 175uV. The 330pF/499R combo increases ripple to 499uV at 10kHz, but then decreases to 220uV at 20KHz.

Juggling cap/resistor values to reduce the 22uF cap size doesn't seem to really help with this low frequency ripple problem.

Thanks Paul! Clearly the ripple with 22uF @ 500Hz would be unacceptable.

I've been messing around with LTSpice some more and ended up making a model of one leg of the R2R ladder. I can't work out how to do the shift registers, and the available models of the 595 are restricted to one instance of one out put so not much help.

For the moment I'm using NPN transitors and a pulsed voltage source to fake switching the entire ladder from "all bits on" to "all bits off" - pretty much like running a full scale square wave through the ladder, which I think should be enough to give the vref buffer a hard time.

Based on this testing the next thing I'll try out is a modified stock vref plus 47uF X5R ceramics piggybacked on the existing shift register bypass caps. There are 10 bypass caps per four shift registers so should work reasonably well I think.

What I'm seeing with the factory mod and stock configuration is that the voltage deviates from 4V by the same amount when the ladder is first loaded up. With tweaked stock config the voltage pulls back to "ripple" centred on 4V within 1-2 milliseconds. The factory mod simply stays at the point it was pulled to...

As an example with the vref op-amp configured with 100nF comp cap, 2K feedback resistor and .1ohm series resistor, and the ladder pulsed at 5KHz I'm seeing the vref swing to 4.00012V then recover in 0.5ms and settle back to 4V with ripple between 4.00007V max and 3.99994V min.

Under the same conditions, and by passing the compensation cap to emulate the factory mod, the voltage rises to peak at 4.00015V and then remains at that level, with ripple between a peak 4.00015V max and 4.00002V min. So this suggests the vref has shifted by 80uV or 0.08millivolts (mid point is 4.00008V). The shift varies depending how "loaded" the supply is.
Not sure how much difference it's going to make but given the ripple is pretty much the same in both instances, I can't see much point introducing wandering vref level.

Add new comment

Plain text

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