• 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!

ESS datasheet rant

MCH

Major Contributor
Joined
Apr 10, 2021
Messages
3,035
Likes
2,710
Hello, i was very happy a couple of days ago when i finished assembling a balanced to toslink ADC based on the new ES9826q. The objective is very low cost, hardware mode, usable to measure the frequency response of my diy amps (have added voltage divider resistors to the input) and toslink output to be electrical isolated from my audio card for peace of mind.

Today was testing day, and it didn't work. After re-reading the datasheet, rechecking my schematics, resoldering the chip 3 or 4 times (not an easy feat, it is a 5x5mm 28QFN package)... turns out that the reference schematic of the datasheet is wrong. Both of them. They leave AVCC not connected :facepalm: (pin 17 picture below) and me, like stupid, didn't realize when drafting the board....

1735735608009.png


No surprises, ESS datasheets are plagued with errors, but i am still very irritated. The current revision is from April 2023 and still not corrected.

Anyways, connected a jumper between pin 20 (AVDD) and pin 17 and the board works as intended. But i really dislike this solution. The jumper is enameled but goes dangerously close to the oscillator, and makes cleaning the board a precision job.

1735735846930.png


Now, the question is. Leave like this, or make a new PCB? The wire i use is 0.1mm diameter enameled wire from Adafruit. (https://www.adafruit.com/product/3522#technical-details). Not disclosed if 0.1mm is internal or external diameter, but i guess doesn't make a big difference. The current consumption on this pin according to the datasheet is 4.3 mA, so i guess the wire is thick enough. The routing on top of the oscillator is definitely not ideal, but is it a big deal?

Anyways, still think it is a very interesting chip to tinker. But don't make the same mistake i made. Will plan to measure it soon, will post my findings in this thread if interested.
 
If the routing and proximity is what bothers you why don't you just angle the jumper?A few mm won't hurt.
 
  • Like
Reactions: MCH
If the routing and proximity is what bothers you why don't you just angle the jumper?A few mm won't hurt.
If that is better or worse goes beyond my pay grade, as the loop with the return path also gets gigantic. Probably doesn't matter as it is not a signal? No idea. In any case, I believe my approach will be measure and see.
 
No expert here, but most of the jumper seems to go over a ground plane. You may press it down some more onto it. Otherwise you’re probably good enough.

Don’t you need something similar for pin 22 (DVDD)?
 
  • Like
Reactions: MCH
No expert here, but most of the jumper seems to go over a ground plane. You may press it down some more onto it. Otherwise you’re probably good enough.

Don’t you need something similar for pin 22 (DVDD)?
DVDD is internally supplied by an internal LDO. The pin is just to add a capacitor.
 
Yeah it's the same with their dac chip as well. It can be confusing for beginners. I usually always check what every pin does exactly. Firstly is it an I/O? For example if it's an input then 99% you have to tie it somewhere and dont let it float. Specially if there isn't a pull up/down resistor. They have a table called internal pad circuitry that's super useful in this case.

About the wire. It should be fine don't worry. If it's a critcal app (rf, nanovolts) then I would use the sortest straight line as possible then put extra uv solder mask over it. Also this board is for yourself not a high volume production unit. It's fine.
 
Yeah it's the same with their dac chip as well. It can be confusing for beginners. I usually always check what every pin does exactly. Firstly is it an I/O? For example if it's an input then 99% you have to tie it somewhere and dont let it float. Specially if there isn't a pull up/down resistor. They have a table called internal pad circuitry that's super useful in this case.

About the wire. It should be fine don't worry. If it's a critcal app (rf, nanovolts) then I would use the sortest straight line as possible then put extra uv solder mask over it. Also this board is for yourself not a high volume production unit. It's fine.
yes, agree, i should have noticed it alone, but i was more focused in setting correctly the hardware mode GPIOs and i relied blindly on the schematic for the power and analog inputs.
Notice that it could be as well internally supplied power, like DVDD that vodooless noticed, and that still has an external decoupling capacitor, exactly like AVCC in the wrong schematic. On my favor i need to say that these things are more difficult to notice before you actually have the board and see that it doesn't work.
Yes, i am kind of decided to leave the wire there for now, don't fancy assembling a new PCB. I might print a correct one in a corner leftover of my next project (this is what this one is).
 
Some preliminary measurements.
Motu ultralite mk5 line out (TRS) > ADC line in (cheapo dupont connectors) > toslink out > motu toslink in clock from toslink. Java driver.

FR shows nothing unexpected:

1735765398085.png


1kHz tone though, shows very low distortion (not sure if that is from the motu output or from the ADC) but the noise is quite high, to the point that i wonder if i am inputting or outputting at 16 bit, as noise stays sharp at -96dB:
1735765635974.png


but again, the measurement setup is very rudimentary, everything is possible. Will try to make something more decent one of these days and even play with the position of jumper.

1735765708035.png
 
I have been experimenting with the position of the jumper vs the board, that is, making the biggest arc possible away from the board, and pressing the jumper very close to the board. No changes whatsoever in the noise results. Maybe the jumper is irrelevant and it is just my overall design.

Anyways, i cannot complain and will declare the device fit for purpose. SINAD -97 dB due to the elevated noise which i am sure someone more capable can fix easily and an incredible -119 dB THD!! same result at 5kHz and 10kHz. Not bad for a device that costed less than 15 euros to build....

1735837687866.png


5kHz:
1735838137054.png


10kHz:
1735838243763.png
 
Sadly, these kind of errors happen, even to experienced designers ;-)
Your fix with a short piece of wire is completely OK.

I tend to use green wirewrap wire for patches as it is almost invisible on green solder stop:
1735844872215.png
 
  • Like
Reactions: MCH
I think i might have an explanation for the high noise.
There is a power up sequence in hardware mode, that goes like this, Notice the bold underlined warning:

1735851350076.png

and there is a warning too, which i am not sure what exactly refers to, but nevertheless i find it relevant:

1735851542934.png


In order to have the specified power up sequence, as i don't have a microcontroller, i used RC filters on CHIP_EN and MUTE_CTRL. I calculated the RC combination so that CHIP_EN is faster, but i never bothered checking it out.
I have just checked, and indeed CHIP_EN rises faster, but i forgot that it needs to reach a higher voltage than MUTE_CTRL, that is set at just 2.2 Volts.
It is difficult to say from the picture, but when the CHIP_EN (yellow) crosses the 2V minimum high-threshold, Mute control (green) is already at ca. 1.5V, that the chip might well consider pull high (there is no data in the datasheet for that threshold).
This means.... i will have to resolder new capacitors in the RC filters to delay MUTE_CTRL rise and see if it has an effect in the noise.... I am not very confident that this is the culprit, but can't leave it like this without trying. If someone has experience with this sort of tricks with ESS chips, please let me know.

1735852484434.png


PS: why a power on sequence with 3 steps in hardware mode, that you supposedly choose precisely not to have to use a microcontroller? grrrr
 
Last edited:
PS: why a power on sequence with 3 steps in hardware mode, that you supposedly choose precisely not to have to use a microcontroller? grrrr
Hardware mode just means than the operating modes are selected by hardware pin settings, not via register programming. It is still assumed your host system will typically have some GPIOs to control power-up/down and init sequences.

I have no experience so far with hardware mode control of ESS chips but I can tell that supply and init sequencing (delays as well as rise times) tend to be critical for most any DAC or ADC chip I've used so far, ESS and AKM included.
 
Hardware mode just means than the operating modes are selected by hardware pin settings, not via register programming. It is still assumed your host system will typically have some GPIOs to control power-up/down and init sequences.

I have no experience so far with hardware mode control of ESS chips but I can tell that supply and init sequencing (delays as well as rise times) tend to be critical for most any DAC or ADC chip I've used so far, ESS and AKM included.
Rise times are my concern now. Last night I was thinking that instead of adding a bigger capacitor to delay more MUTE_CTRL I better add a stronger resistor to CHIP_EN to make it faster and avoid making the rise time of MUTE_CTRL even slower. Will see what happens.
Thank you for chiming in.
Btw, what do you think of the distorsion figures of this lowish cost chip?
 
You must also probably unselect the coherent averaging option if you want to see the real picture as it leaves non-harmonic distortion out of the picture and suppresses noise.
The later is what you're after so is better to see what's going on.

Are there any eval boards out there where you can have a sneak at the caps and resistors you're after?
 
  • Like
Reactions: MCH
You must also probably unselect the coherent averaging option if you want to see the real picture as it leaves non-harmonic distortion out of the picture and suppresses noise.
The later is what you're after so is better to see what's going on.
Will look into that. Do you mean reducing the number of averages to 0 in RTA window?
Ah I see the coherent averaging setting in the distortion settings window. I don't remember right now if I had it selected or not, in any case, REW says "The various noise-related values in the distortion panel (THD+N, N, N+D) continue to be calculated from magnitude-averaged data and remain valid."
Are there any eval boards out there where you can have a sneak at the caps and resistors you're after?
Not a big deal, the relevant parts are quite accessible. I just calculated what I needed for the first iteration, but now I see I will need some fine tuning. But if I knew, I would have added a couple of test points for the oscilloscope probes, holding them in place is way more difficult than resoldering the parts...
 
Last edited:
Honestly I am not a big fan of using coherent averaging for tiny distortions, because I would say that the harmonic distortions tend to end up lower for the coherent averages. It would make sense since the tiny distortions deviate in phase quite a lot due to noise and coherent = vector averaging by principle/design attenuates phase-deviating bins.
 
I tend to use green wirewrap wire for patches as it is almost invisible on green solder stop:
Funny, I tend to do the exact opposite (using red or orange) to make it super visible for future me or others in case of debugging and/or documentation getting lost.
 
Back
Top Bottom