On 17/09/2021 00:23,
jla...@highlandsniptechnology.com wrote:
> I've been researching this and see a lot of papers and appnotes that
> are mostly the same.
>
> We conjecture that some capacitive-DAC pipeline ADCs do not act as if
> they have a single sample-and-hold in the front end, but are more
> complex and have, essentially, multiple s/h elements. One consequence
> is that the presence of very high frequency components of the signal
> can cause missing codes if the sample aperatures are not absolutely
> identical. I think we may be seeing this happen.
>
> Sometimes we deliberately add dither noise to improve ADC histograms,
> but it could be that very high frequency noise has the opposite
> effect.
>
> I've seen data sheets and appnotes that suggest adding series
> resistors or RCs to fast ADC inputs. I assumed that was to offset some
> charge injection thing, but maybe not. Those might be lowpass filters.
>
> Has anybody run into this effect?
>
I never did a pipeline converter so take what I say with a grain of
salt... I think they have to do a bunch of tricky stuff, like there are
sometimes extra duplicate stages added part-way along the pipeline so
that the first stage comparator doesn't need to be accurate to as good
as 1 lsb, only the 1st stage DAC must. So when the first stage gets its
decision wrong, some subsequent stage will have extra range, or be
duplicated, and then error-correcting logic fixes the msb based on the
later bits. Without that feature, missing codes could result.
I think they need to pay a lot of attention to metastability too, i.e.
the bit that gets passed to the logic that generates the output code had
better be the same as the bit that gets passed to the DAC for that stage
of the converter, which means they need to use the same latch, not a
different identical one, to drive both, and probably a lot of other
measures. Metastability would cause big errors though, not what you're
seeing.
You could look in JSSC or patents to find some of the tricks they use in
old parts like that one.
If you can identify whether there is a pattern to the codes that are
missing (are they adjacent to a major bit transition for example) that
might help someone to figure it out.