Compute analog signals as functions of two signals

adcanalogdacsignal processing

I would like to hear your opinion with respect to the following architecture for a supposedly easy task. I need to “compute” the value of two voltages depending on two signals.

Details:

I need to construct a circuit, that computes two voltages (U1, U2) depending on two analogue signals (S1, S2). Since the relationships U1 = f(S1, S2) und U2 = f(S1, S2) are nonlinear, I thought of using an EEPROM. To keep the system as simple and cheap as possible I thought of not using a uC or an FPGA.

So I thought about this scheme:
enter image description here

But I realized that ADCs, DACs and EEPROMs have mostly a serial interface, and the serial communication would complicate what I thought was a simple solution.
Does somebody have an idea, how to tackle this problem?

Best Answer

Yeah I agree with @pjc50, you should use a microcontroller. They usually have built in ADCs. For example the Arduino uses a ATMega328 which has a 6 channel 10-bit ADC built in with a full scale range of 5V. However, the Arduino ADC won't be able to keep up with 10 kHz at the default clock pre-scale factor of 128, so you'll need to increase the sampling rate of your ADC by lowering the pre-scale factor, as described here.

After you get the digital codes, you can simply compute the voltages with your code. If you need to output actual U1 and U2 voltages, then you can use an external DAC like one of these.

For your enjoyment, here's a tutorial on how to write code to operate an AVR ADC and here is a a study on the ATMega ADC clock rate vs. performance.

Related Topic