ΣSigmaStudio Ask AI Русский Log in

Converting values on ADC input port with lookup table?

SigmaDSP & SigmaStudio Robin Jun 16, 2010 00:00 4 replies Original on forum ↗
Subscribe
Robin Question
Jun 16, 2010 00:00

I am currently using the signal on one ADC input port to control an index selectable multiband filter with 16 rows (see enclosed jpeg-file).

The signal on the ADC input port is generated by a 4-bit R2R-network. Obviously the R2R-network doesn't deliver the right values that are expected by the filter cell (e.g. it delivers a maximum voltage of 2.6 volts instead of 3 volts for full-scale of the ADC).

Is there any chance to convert the 16 values coming from the R2R-network with a lookup table? I have already tried several things, but nothing's seem to work.

Another application for such a conversion would be to convert the signal from a linear potentiometer into a logarithmic signal to control a SW volume cell.

I have already read the AN-951, where something similar is mentioned, but I have no clue to make it functionable for my project.

Any help is highly appreciated. Thanks in advance

Robin

P.S.: I use the ADAU1701

Audio Signal Processors

SigmaDSP Audio Processors

adau1701

ADIApproved Reply
Jun 21, 2010 00:00

Is your potentiometer linear or logarithmic? If it is linear, then this shouldn't be too difficult. Your problem is basically that the full scale level of your signal is smaller than the expected level on the Aux ADC. So, all you'll need is a linear multiplication.

3.0 / 2.6 = 1.15384, so the signal flow essentially needs to look like this:

This example project from the AN-951 app note shows a project that works well on the EVAL-ADAU1701MINIBZ evaluation board and illustrates the operation of Aux ADC-driven indexing.

c61ea1f8dbfbb4db25b13d919cae510b.jpg
c61ea1f8dbfbb4db25b13d919cae510b.jpg
c61ea1f8dbfbb4db25b13d919cae510b.jpg-409x333.jpg
c61ea1f8dbfbb4db25b13d919cae510b.jpg-409x333.jpg
Robin Reply
Jun 28, 2010 00:00

Thanks a lot for the info. I tested it last week and the multiplication works fine, but now the next problem occured.
My simple 4bit R-2R network is everything else but precise, means that the relation between each of the bits is not correct. (LSB delivers 0.227 volts, 2nd bit delivers 0.411 volts, 3rd bit delivers 0.76 volts and MSB delivers 1.41 volts).

The R-2R network drives an multiplexer, which gets "confused" by the unprecise values. Is there any chance to compensate the hardware flaws with a software module?

Thanks in advance

Robin

MagicRuB Reply
Jun 28, 2010 00:00

This might be a good place to use the Tolerance Analyzer module. It will give you a "logic" 0 or 1 if a value is within limits of your choosing. If you place a gain after each one (like 1, 2, 3, 4) and summed them together you could feed that directly into the mux.

ADIApproved Reply
Jul 13, 2010 00:00

Yes, I think the tolerance analyzer would be a good fit for this application.