TI recently came out with some low-noise FETs that are useful in measuring the noise floor of a state-of-the-art PC DAC such as the Topping E70 Velvet. A schematic of the circuit is shown below. The circuit is very similar to the circuit in the JFE2140 data sheet in figure 9-10.
JFET2140 Diff Amp.pdf (42.2 KB)
There are a few circuit differences to discuss. First, the circuit as-built from runs from 5V instead of +/-5V. This will impact the swing, obviously, but the main curiosity here is the output noise of the E70. Next, there’s a processor on the schematic. That has a single job: Monitor a button, and turn the power on for 20 minutes whenever the button is pressed. And each subsequent button press will increase the on-time by another 20 minutes. This circuit runs from 2 CR2032 coin cells, and the active current of about 2mA (dominated by JFET bias set by the TLV9151 opamp). The CR2032 cells have about 235 mAH of capacity, suggesting about 170 hours of use. When the circuit is off, the lower CR2023 will see about 1uA of draw (MSP430 in power state 3.5), while the upper CR2023 will see about 100nA of draw (LDO off current). So, it’s not perfect that the cells deplete at different rates, and that could be improved. But for now, the aim is an amp that can sit in a drawer for weeks or months, be used for an hour or two, and then go back into the drawer with batteries always at the ready. The TPS7A2025 also spends a bit of time above the absolute max input voltage rating when the CR2032 are first installed. Not good, but fine for the task.
Some loose requirements for a preamp are:
- Fully differential. This is because differential output, working with CMRR, is key to getting solid performance out of a modern PC DAC. If you take a single leg of the balanced DAC output, it will be very disappointing.
- High input impedance. The input impedance doesn’t need to be super high–probably 2K ohm or so. This is because the DAC will probably have an differential output Z of 100-200 ohms or so. Loading down the DAC will artificially suppress the measured noise.
- High CMRR. Modern DACs use a balanced output, and there are complementary common mode signals inherent in the DAC output that must be carefully added to be fully cancelled. In order for this to work well, you need good Common Mode Rejection Ratio (CMRR) from the diff amp.
- Low noise.
Aside from a discrete differential amplifier, the requirements above suggest either a fully differential amp, such as the OPA1632 or an instrumentation amp such as the INA849.
Using SPICE, we can quickly learn an OPA1632 with 2K input impedance and 20 dB of gain (2K series and 20k feedback) has 12.09 uV of output noise (20 kHz), which is -118.35 dB RTI. And an INA849 with 20 dB of gain(Rg = 665) has 8.05 uV, which is -121.88 dB RTI. Both fall short of what the JFET can do.
The aim here is to really learn the noise performance of the Topping E70 Velvet PC DAC. This DAC is based on the AK4499EQ, which offers the following specs:
The THD and THD+N are best measured with a notch, and the upcoming QA455 can help there. But for today, let’s look into Dynamic Range and S/N (aka SNR).
Dynamic Range (DR) is usually measured as THD+N with the DAC signal set to -60 dBFS. And then, whatever THD+N you measure, you can subtract another 60 dB from that and invert the sign to arrive at DR. What the -60 dBFS measurement does is ensure the converter is actively playing a signal and that noise gating hasn’t turned off the output stages, for example. The low level also ensures that harmonics aren’t much of an issue
When measuring DR, it can be done with or without A Weighting. In the case above, AKM have specified A-Weighting. The A-Weighting will usually make the measurement better by 2-3 dB, and it will help you overlook any 50/60 hum issues that might be present. And at these low levels, hum can be an issue. So, if you are looking to show the converter in the most favorable light, you’d specify A-Weighting. Otherwise, use no weighting.
Signal To Noise Ratio (SNR or S/R) is a ratio of the signal to the noise. But keep in mind that noise doesn’t include the distortion components (SINAD does, as does THD+N). Generally, SNR can be measured at any level. But when talking about PC DACs (that is, DACs that plug into your PC for rendering audio), SNR usually means the ratio of the maximum sine amplitude (0 dBFS) relative to the level out when sending all zeros to the ADC.
What renders this measurement mostly useless is that the noise when sending all zeros is largely pointless because when a DAC sees a stream of zeros for a period of time, it will usually turn off the output stages. And so, the noise you are measuring is the noise when the output is switched off.
But, it’s a common spec for PC DACs and quoted because the numbers are so huge. In this case, AKM is showing a spec of 135 dB, with A-weighting. And 138 when in mono mode. Mono mode gives the 3 dB improvement because it’s summing the noise and signals from the left and right channel. The noise is uncorrelated, and thus increase by just 3 dB, while the signals are correlated and increase by 6 dB. The net improvement to SNR is 3 dB.
This circuit was built in spice:
As noted on the schematic PDF, SPICE reported a gain of 23.17 dB and 3.32uVrms (20 kHz bandwidth) of total output noise, which is -109.6 dBV. Referenced to input, this is -109.6 - 23.17 = -132.77 dBV. This is about 11 dB better than the INA849.
Two boards were built. The first board is shown below. The JFE2140 is in the SO8 package. The BNC inputs and outputs are stacked BNC with two connectors on each side, even though the it looks like a single BNC on each side.
The QA403 generator was set to -56 dBV, and a differential output was used, meaning the actual output level was (measured differentially) -50 dBV. The gain was measured as below on Unit 2. Note that the gain is reported as 26.43 dB, but this doesn’t know we’re using a differential connection. So, we need to subtract 6 from that. We can confirm this by noting that -50 dBV is going into the board, and -29.58 dBV is coming out of the board, which is 26.43-6 = 20.43 dB of gain. Recall SPICE indicated 23.17 dB of gain. But the gain is directly dependent on MOSFET transconductance gm, which will have some variation.
A second device was measured and reported a nearly identical gain of 26.42 dB. Much closer to the first unit than expected. Not sure if just lucky or if in fact the transconductance is this tight…
A plot of diff amp input level versus distortion was run to see where the THD sweet spot would be. The single-supply rail ensured the range probably wouldn’t be huge. And from the plot below, we can see the sweet spot for THD is around -25 dBV out of the amp, which means about -45 dBV into the amp. Remember, we’re not too concerned with harmonic distortion. Noise is what we’re after.
Next, let’s measure the CMRR, because a diffamp should be really good for CMRR and the CMRR is an important parameter for getting the full performance out of a differential DAC. Let’s put in a -20 dBV signal into both inputs (using a BNC-T to ensure they are identical). From the plot below, we can see the output is about -100 dBV. And we know there is 20 dB of gain. So, this suggests that absent the gain the level would be -120 dBV, and thus the diffamp suppressed the common mode signal about 100 dB, which is quite good. You can repeat this measurement using a single leg output of the diffamp board, and see much of the CMRR comes from the diffamp board and not the QA403 analyzer.
Next, let’s look at the noise. To measure this, we simply short the inputs to the amp with 0 ohm shorting blocks (50 or 75 ohm would probably degrade the measurements on an amp with this much gain).
Board 1 shows -109.49 dBV of noise (20-20 kHz):
And Board 2 shows -108.31 dBV of noise (20-20 kHz)
On Board 2, there’s more noise at lower frequencies, but the higher noise looks to be present at 1 kHz too. So, board 2 is about 1 dB noisier overall.
The -109.49 dBV noise is in a 20 kHz bandwith, without any weighting. Given the 20.43 dB of gain, this suggests the input noise is -109.49 - 20.43 = -129.92 dBV. Note the SPICE simulation indicated -109.6 dBV of noise with 23.17 dB of gain, suggesting -132.77 dBV input referred noise. So, we’re about 3 dB out there (not sure if bias current NMOS and opamp might play a roll there). However, we’re about (121.88 - 129.92 = ) 8 dB better than the INA849. Now, make no mistake, the INA849 would crush the diffamp on distortion and a lot of other factors.
But is the noise performance good? Indeed it is.
While SPICE predicted 121.88 dB on an INA849 with 20 dB of gain, the upcoming QA472 uses the INA849 had has a 20 dB gain option. It’s delivering -101.13 dBV of noise, which suggests an input noise -121.13. This is very close to the SPICE prediction, and as noted above, the JFET diffamp is about 8 dB better.
So, we have a new tool with the differential amp that let’s us measure the noise of a differential output that we’ve not been able to measure before. How does this relate to the DAC?
To get a sense for the problem, let’s take the Topping E70 and go straight into the QA403, while playing a very, very small tone of -160 dBFS (to make sure the output stages don’t turn off)
Note the total RMS is -115.1 dBV, which is pretty close to the -117 dBV noise floor of the QA403. Generally, we’d like our measuring equipment to be about 10 dB better than the DUT. Next, keep in mind that the full scale output level of the E70 is nearly 12 dBV, so the -115 we see here, relative to the full scale output, suggests a dynamic range of at least 127 dB or so.
But now let’s insert the 20.43 dB diff amp. This gives us -97.12, which means is -117.55 dBV input referred. This is about 2.5 dB better than going straight into the QA403.
Just to check, we can short the inputs to the diffamp and verify we drop substantially below the -97.12 dBV we just measured. And we do. So, without the diffamp, we had about 2 dB of margin. And with the diffamp we have more than 10 dB of margin…
And reverting again to measuring the E70, we can apply A-weighting. Again, with the 20.43 dB of gain, this takes the noise to -119.74 dBV.
With the output set to 0 dBFS, the max output is measured at 12.43 dBV:
From this, we can compute SNR, both unweighted and weighted
|12.43+ 117.55 = 129.98 dB
|SNR (A Weighted)
|12.43 + 119.74 = 132.16 dB
But note this was with a tiny signal (-165 dBFS) going into the DAC. If we try again with all zeros being sent to the DAC (disable GEN1), then the results improve by another 1.2 dB.
|12.43 + 118.75 = 131.18 dB
|SNR (A Weighted)
|12.43 + 120.94 = 133.37 dB
The nominal spec for the AKM reference board in stereo mode was 135 dB, so we’re about 1.4 dB away from that. Given our measurement margin, we can be certain this is likely the E70 falling just a short of the AKM reference design.
Next, let’s turn to Dynamic Range. Disabling the weighting, and increasing the signal level to -60 dBFS, we get the following plot. The THD+N measured here is -69.32 dB, and adding 60 dB to that (reflecting full scale output) would yield the dynamic range, which would be 129.32 dB.
With out the diffamp (E70 straight into the QA403) we measured THD+N of -67.13. Thus, the pre improved our N+D by 2.2 dB.
With A-Weighting enabled and again using the diffamp, THD+N is -72.19 at -60 dBFS, which takes us to 72.19 + 60 = 132.19 dB for THD+N A-weighted. Going back to the AKM spec on the evaluation board, the nominal was -135 dB, and so we’re measuring about 2.8 dB shy of that. However, we can see from the plot that the harmonics are 95 dB below the carrier, meaning the 72.2 dB figure is dominated by noise. And we know the noise margin here is around 10 dB. So, this 2.8 dB is very likely the E70 falling a bit short of the AKM reference design and not measurement limitations.
Diff amps are easy to build, and can extend your measurement range by many dB when using the latest crop of low-noise JFET such as the JFE2140. And this is particularly important when evaluating a modern PC DAC.