• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Measurements: "ESS Hump" revisited (Khadas Tone Board V1.3)

half_dog

Senior Member
Joined
Jun 28, 2018
Messages
452
Likes
361
Location
Brazil
Do you have any pictures of the D10 balanced version? Thanks.
 

gvl

Major Contributor
Joined
Mar 16, 2018
Messages
3,495
Likes
4,081
Location
SoCal
There’s 100MHz XO right next to the chip, it would seem ASRC is on. It’s doubtful they could achieve this level of performance in such a minimalistic package without employing all ESS gizmos.

There appears to be a single opamp just after the DAC chip, so perhaps common mode rejection right away is in fact the solution.
 
Last edited:
OP
KSTR

KSTR

Major Contributor
Joined
Sep 6, 2018
Messages
2,776
Likes
6,212
Location
Berlin, Germany
Pavel, it has the 100MHz clock as well, so maybe still with ASRC ??
1643217940072.png



Anyway, when I reconfigured the I/V to the same bias as in the KTB, not much change.
 
OP
KSTR

KSTR

Major Contributor
Joined
Sep 6, 2018
Messages
2,776
Likes
6,212
Location
Berlin, Germany
OK, looking closer at the clock drift there still is some but way less than with the KTB.

EDIT: Back to Square One. The ASRC is probably out of the picture, active on both boards. I/V bias voltage is out, too (or fine tuning only).

So what's left.. the I/V detail distortion characterstics of the opamp. And finally I think I can see a cue:
The strength of RF noise disturbance at chip pins is not uniform over signal voltage, rather it has a pattern repeating in 32 segments, along the true switching levels of the final 5-bit DAC cell proper. And if the I/V circuit is not immune to this change in RF/spikes, the pattern leaks through.
  • The "modulation" pattern on the KTB starts at ~ -30dB, thats 1/32 FS. The current sources in the chip might be running on a 31-level thermometer code (fed from a five-bit modulator) with DWA so that would match.
  • I saw a strong digital DC influence also starting at -30dB, so again at one termometer bin and repeating in pattern by every increase of 3% FS DC.
  • And the 0dBFS sine modulation pattern has, guess what, 4* 32 periods (of varying length as the input is not a triangle but sine). Ok, think should be 16 only as we're going from zero ot +FS which spans 16 thermometer code bins, but anyway, it fits the picture.
So when the thermometer code current cells switch the total range they must span for the signal from, say, one bin (signals less than -30dBFSac) to two bins there is a step change of injected charge, RF spikes etc. And when the I/V cannot fully cope with these high-speed transients this sort of demodulates into a "momentary DC offset" underlying the signal.

The more random and wide-band the signal is (say, multione 31) the more often and more random we move around in the 5-bit range and by that the error reduces/averages effectively. That mystery is solved as well, me thinks.
 
Last edited:

boXem

Major Contributor
Audio Company
Joined
Jun 19, 2019
Messages
2,019
Likes
4,908
Location
Europe
OK, looking closer at the clock drift there still is some but way less than with the KTB.

EDIT: Back to Square One. The ASRC is probably out of the picture, active on both boards. I/V bias voltage is out, too (or fine tuning only).

So what's left.. the I/V detail distortion characterstics of the opamp. And finally I think I can see a cue:
The strength of RF noise disturbance at chip pins is not uniform over signal voltage, rather it has a pattern repeating in 32 segments, along the true switching levels of the final 5-bit DAC cell proper. And if the I/V circuit is not immune to this change in RF/spikes, the pattern leaks through.
  • The "modulation" pattern on the KTB starts at ~ -30dB, thats 1/32 FS. The current sources in the chip might be running on a 31-level thermometer code (fed from a five-bit modulator) with DWA so that would match.
  • I saw a strong digital DC influence also starting at -30dB, so again at one termometer bin and repeating in pattern by every increase of 3% FS DC.
  • And the 0dBFS sine modulation pattern has, guess what, 4* 32 periods (of varying length as the input is not a triangle but sine). Ok, think should be 16 only as we're going from zero ot +FS which spans 16 thermometer code bins, but anyway, it fits the picture.
So when the thermometer code current cells switch the total range they must span for the signal from, say, one bin (signals less than -30dBFSac) to two bins there is a step change of injected charge, RF spikes etc. And when the I/V cannot fully cope with these high-speed transients this sort of demodulates into a "momentary DC offset" underlying the signal.

The more random and wide-band the signal is (say, multione 31) the more often and more random we move around in the 5-bit range and by that the error reduces/averages effectively. That mystery is solved as well, me thinks.
It was a long time since there was such an interesting thread on ASR. Thank you!
Reading your conclusions, some random and unsorted thoughts:
- one could conclude that a passive I/V would cope better with these transients, forgetting all the good reasons to go active.
- if the I/V stage is the source of the problem, how does the DAC behaves in voltage mode?
- could these current transients be filtered by small caps (pF) between DAC lines and GND?
 

AnalogSteph

Major Contributor
Joined
Nov 6, 2018
Messages
3,391
Likes
3,339
Location
.de
So what's left.. the I/V detail distortion characterstics of the opamp. And finally I think I can see a cue:
The strength of RF noise disturbance at chip pins is not uniform over signal voltage, rather it has a pattern repeating in 32 segments, along the true switching levels of the final 5-bit DAC cell proper. And if the I/V circuit is not immune to this change in RF/spikes, the pattern leaks through.
So if that's the case, then passive filtering, opamp slew rate + input linearity and possibly HF CMRR are going to be critical. (It will be worth checking whether there is any chance of things cancelling out in differential mode.)

The opamps on the KTB seem to be undocumented, but I'd suggest giving the circuit topology and the passives (particularly ceramic caps) a good hard look... the latter may be innocent (there is no indication of rising HF IMD for one), but just in case.

HF glitches used to be common in the days of multibit DACs, perhaps the odd trick can be adapted from there. Passive filtering is not exactly rocket science, but modifying an existing circuit with what seems like tiny passives (0603 or 0402 even?) may turn out to be great fun.

This makes me wonder, don't these DACs have switched-capacitor filtering, or perhaps just not quite enough?
 

bigguyca

Senior Member
Joined
Jul 6, 2019
Messages
483
Likes
621
OK, looking closer at the clock drift there still is some but way less than with the KTB.

EDIT: Back to Square One. The ASRC is probably out of the picture, active on both boards. I/V bias voltage is out, too (or fine tuning only).

So what's left.. the I/V detail distortion characterstics of the opamp. And finally I think I can see a cue:
The strength of RF noise disturbance at chip pins is not uniform over signal voltage, rather it has a pattern repeating in 32 segments, along the true switching levels of the final 5-bit DAC cell proper. And if the I/V circuit is not immune to this change in RF/spikes, the pattern leaks through.
  • The "modulation" pattern on the KTB starts at ~ -30dB, thats 1/32 FS. The current sources in the chip might be running on a 31-level thermometer code (fed from a five-bit modulator) with DWA so that would match.
  • I saw a strong digital DC influence also starting at -30dB, so again at one termometer bin and repeating in pattern by every increase of 3% FS DC.
  • And the 0dBFS sine modulation pattern has, guess what, 4* 32 periods (of varying length as the input is not a triangle but sine). Ok, think should be 16 only as we're going from zero ot +FS which spans 16 thermometer code bins, but anyway, it fits the picture.
So when the thermometer code current cells switch the total range they must span for the signal from, say, one bin (signals less than -30dBFSac) to two bins there is a step change of injected charge, RF spikes etc. And when the I/V cannot fully cope with these high-speed transients this sort of demodulates into a "momentary DC offset" underlying the signal.

The more random and wide-band the signal is (say, multione 31) the more often and more random we move around in the 5-bit range and by that the error reduces/averages effectively. That mystery is solved as well, me thinks.

A great thread, thank you!
 

Grooved

Addicted to Fun and Learning
Joined
Feb 26, 2021
Messages
679
Likes
441
The opamps on the KTB seem to be undocumented, but I'd suggest giving the circuit topology and the passives (particularly ceramic caps) a good hard look... the latter may be innocent (there is no indication of rising HF IMD for one), but just in case.
Here are the main differences between Tone 1 tested here and the Tone2 Pro, you can see the opamp parts used in the Tone1
Tone1 - Tone2 Pro.PNG


@KSTR
Great thread!
Isn't there a small error in the first page here (240Hz in the title but 480Hz in the graph)?

240-480.PNG


And I see that even though they are adorable little creatures, bats have a great capacity to be blamed for all the problems of this world ;)

Time Domain 240Hz.PNG
 

Miska

Addicted to Fun and Learning
Audio Company
Joined
Feb 20, 2019
Messages
615
Likes
448
So when the thermometer code current cells switch the total range they must span for the signal from, say, one bin (signals less than -30dBFSac) to two bins there is a step change of injected charge, RF spikes etc. And when the I/V cannot fully cope with these high-speed transients this sort of demodulates into a "momentary DC offset" underlying the signal.

The more random and wide-band the signal is (say, multione 31) the more often and more random we move around in the 5-bit range and by that the error reduces/averages effectively. That mystery is solved as well, me thinks.

At least bigger Sabre's use 6-bit / 64-element unity weighted conversion stage, although have option to configure how many bits it is actually fed from the modulator.

But this has some resemblance to what I'm seeing on the D90SE. But there the I/V section is different with independent I/V's per each of the 4 channels that get mixed. But each of those 4 channels run from independent modulator/DEM. This means the difference signal between those channels is dominated by high frequency switching noise while the low frequency difference is smaller. This is especially apparent with DSD inputs given how ESS Sabre handles DSD inputs.

This likely causes limited bandwidth (slew-rate) feedback loop of the I/V op-amps to kind of saturate (similar way as TIM distortion) due to low mixing resistance. This makes the noise intermodulate (alias) to the audio band.
 
OP
KSTR

KSTR

Major Contributor
Joined
Sep 6, 2018
Messages
2,776
Likes
6,212
Location
Berlin, Germany
It was a long time since there was such an interesting thread on ASR. Thank you!
Reading your conclusions, some random and unsorted thoughts:
- one could conclude that a passive I/V would cope better with these transients, forgetting all the good reasons to go active.
- if the I/V stage is the source of the problem, how does the DAC behaves in voltage mode?
- could these current transients be filtered by small caps (pF) between DAC lines and GND?
Good points.
The output of the chip seems to be switched current sources, paralleled by a AVcc 1:1 voltage divider with two 1550R to afford passive I/V (aka voltage mode). One could use a lower resistance in parallel, reducing level but linearizing the internal resistors (which ESS say have some voltage coefficient, that's why clamping the the node potential to constant voltage gives better alanog linearity).

Voltage mode will likely have just as much glitch energy as current mode, perhaps even further modulated because the voltage accross the switched current cells does vary, changing their capacitance. But these transients can be readily be filtered before they enter the buffer/low-pass filter opamps so it might not throw off lesser opamps.

As for the basic I/V, I think shunting away the glitches right at output nodes would help a lot (caps to GND and AVcc as that is where the loop current goes, and additionally a shunt accross the (+) and (-) nodes to reduce differential mode glitches. That has consequences for the I/V, new compensation. Small series R or ferrites at the I/V input as well. Basically a completely new I/V would be in order... not possible on the KTB (not very modding friendly, all 0402 parts and DFN8 opamps, dense layout).

With the existing circuit and OpAmps there still is room to play to mitigate the effect as much as possible, basically what @Ben1987 has done, and that's what I'll be trying next. My own KTB now has arrived so I don't need to ruin the loaned unit from @Herbert. Now that I can look precisely on the residual I might be able to optimize as much as possible even below the noise floor as it appears in the IMD+N/THD+N plots.
 
OP
KSTR

KSTR

Major Contributor
Joined
Sep 6, 2018
Messages
2,776
Likes
6,212
Location
Berlin, Germany
So if that's the case, then passive filtering, opamp slew rate + input linearity and possibly HF CMRR are going to be critical. (It will be worth checking whether there is any chance of things cancelling out in differential mode.)

The opamps on the KTB seem to be undocumented, but I'd suggest giving the circuit topology and the passives (particularly ceramic caps) a good hard look... the latter may be innocent (there is no indication of rising HF IMD for one), but just in case.

HF glitches used to be common in the days of multibit DACs, perhaps the odd trick can be adapted from there. Passive filtering is not exactly rocket science, but modifying an existing circuit with what seems like tiny passives (0603 or 0402 even?) may turn out to be great fun.

This makes me wonder, don't these DACs have switched-capacitor filtering, or perhaps just not quite enough?
Datasheet of the (alleged) OpAmp is attached (note the very TI'ish styling ;-) Not a king of bandwidth and slew-rate.
Slew-rate probably is asymmetric which would increase the error as positive and negative glitches won't average out even when the DAC presents them with exactly equal shape (besides polarity).

As I understand the DAC chip it is switched current sources, not switched capacitors like the AKM voltage output parts so additional filtering is not possible:
1643264274533.png

Source: https://wiki.analog.com/university/courses/tutorials/cmos-dac-chapter, also explains many error mechanisms
 

Attachments

  • SGM8261-2.pdf
    952.8 KB · Views: 102

Herbert

Addicted to Fun and Learning
Joined
Nov 26, 2018
Messages
529
Likes
436
You can ruin mine, no problem.
Another idea:
The board dimensions for the Tone
are even documented online as CAD by Khadas. They had the diy community in mind as well.
Why not designing a proper I/V on
a second pcb-board and stacking it on top? A small batch of well layouted bare pcb boards should not be expensive. This board could also have balanced outputs and a decent headphone amp.
 
Last edited:

Miska

Addicted to Fun and Learning
Audio Company
Joined
Feb 20, 2019
Messages
615
Likes
448
Datasheet of the (alleged) OpAmp is attached (note the very TI'ish styling ;-) Not a king of bandwidth and slew-rate.

Also the THD vs frequency and IMD vs output level plot for the opamp is interesting. Looking at the CCIF plot vs SMPTE indicate towards HF IMD sensitivity.

I've been using the type of I/V analog filter specified in AD1955 data sheet with good results. (with additional cable capacitance compensated output buffers)
Screenshot from 2022-01-27 15-05-01.png

For high slew rate cases I've been using mostly AD844.

For ganged converter cases (like ESS 4-channel), I've been then doing mixing through separate active mixing stage after this kind analog pre-stage.
 

AnalogSteph

Major Contributor
Joined
Nov 6, 2018
Messages
3,391
Likes
3,339
Location
.de
Datasheet of the (alleged) OpAmp is attached (note the very TI'ish styling ;-) Not a king of bandwidth and slew-rate.
Interesting. Fundamentally not a bad little part, sort of reminds me of LT1115 with the input current cancellation and all. No doubt 2nd-order compensation, RRO, fairly little input voltage noise (1.6 nV/√(Hz) @ 1 kHz), low distortion, but man, that's a crapton of input current noise (6 pA/√(Hz) @ 1 kHz, yikes). So the input stage may be somewhat degenerated? Optimum surrounding impedances would be in the hundreds of ohms, which actually fits high-performance DAC output stages. (Inoise equals Vnoise at ~270 ohms.) Slew rate is better than a 5532 but not exceptionally high, that's true.

This guy can get fairly close to the rails on the output (though not the input), but other than that an OPA1612 seems like it would generally be a better performer. Probably more expensive, too.

I do have to wonder whether it may be advantageous to reduce high-frequency output loading... sure, nobody likes inductors much. (That would obviously increase gain up there, too, which may be counterproductive in the light of potential slew rate issues. So exactly the opposite may be needed, output loading be damned. Aren't they already using R || R-C in feedback anyway?)
As I understand the DAC chip it is switched current sources, not switched capacitors like the AKM voltage output parts so additional filtering is not possible:
So you basically need to provide wideband low input impedance, right? What happens if you leave that part to some Cs at HF and include some L in series with the opamp input? Again, I know, nobody likes inductors much, but at these low impedances and well beyond audio frequencies, you couldn't need that much L?

EDIT: Note C9 in the above circuit, as well as the choice of R5-R6-C10 etc. ESS hump fixes generally involved fiddling with gains and feedback components, so we're probably on the right track.
 
Last edited:
OP
KSTR

KSTR

Major Contributor
Joined
Sep 6, 2018
Messages
2,776
Likes
6,212
Location
Berlin, Germany
@Herbert
Sadly, a piggy-back PCB with a new output stage won't be straight-forward to implement because the DAC chip's four output pins are not directly accessible. Also, one has to deactivate the existing I/V by cutting traces (ideally, the existing OpAmps should be removed). Plus we need to bring over the supply etc.
Very hard to do for less experienced DIY'ers. A lot of effort and likely not cost-effective, too.
Easier: Buy a cheap better DAC instead (like Tone2 Pro, D10B, note that both should only be used balanced).
 
Top Bottom