Collect data from a sensor (automatic scale).

Thread Starter

Pepe333

Joined Feb 12, 2018
86
Hi all!,
I need to collect data from a sensor, with a wide range of values. I'm thinking in 4 OpAmps, with different Rf in order to have a very widerange of data. I need to collect the data from the all OpAmps at the same time (see attached).
The CPU has ADC, but they are only 12bits resolution. I need more resolution using the embedded ADCs.
My question is: How can I achieve that? Any advices?
 

Attachments

Last edited:

TeeKay6

Joined Apr 20, 2019
573
Hi all!,
I need to collect data from a sensor, with a wide range of values. I'm thinking in 4 OpAmps, with different Rf in order to have a very widerange of data. I need to collect the data from the all OpAmps at the same time (see attached).
The CPU has ADC, but they are only 12bits resolution. I need more resolution using the embedded ADCs.
My question is: How can I achieve that? Any advices?
If you are using a microcontroller with ADC, how many ADC's does it contain? Be aware that a single ADC can have a multiplexed input with 12 or more channels, but only 1 channel can be converted at a time. Few microcontrollers offer more than one ADC, although most microcontrollers offer multiple multiplexed channel selection. Data for other channels would have to be held with sample/hold circuitry until the ADC is ready to convert each channel in turn if you need to convert all channels with data taken at one instant.

It seems that you believe you need to cover a wider dynamic range than 12-bits would allow. In the scheme you propose, the gain of each amplifier would have to be trimmed exactly to improve on the basic resolution of 12-bits. In addition, each amp's gain & offset would have to be sufficiently stable against temperature variation to be useful. That is not a trivial design task and extremely stable components would be required.

What kind of sensor are you using that requires more than 12-bit ADC resolution?
 

Thread Starter

Pepe333

Joined Feb 12, 2018
86
The sensor is a Photodiode, and I want to analize a flash shoot. The problem is the power of the flash will vary in a wide range, and all the process sudden very fast.
The MCU has 4 independents OpAmps and 4 independent ADCs.
I tried to change scale with a CD5041, but It didnt work because I lost a lot of time adjusting the scale.
The idea is to collect data from 3 or 4 Opamps at same time, adjusted in different sensibilities and then process the data.
But the thing is: Can I use only one sensor to feed 3 or 4 OpAmps?
 

TeeKay6

Joined Apr 20, 2019
573
The sensor is a Photodiode, and I want to analize a flash shoot. The problem is the power of the flash will vary in a wide range, and all the process sudden very fast.
The MCU has 4 independents OpAmps and 4 independent ADCs.
I tried to change scale with a CD5041, but It didnt work because I lost a lot of time adjusting the scale.
The idea is to collect data from 3 or 4 Opamps at same time, adjusted in different sensibilities and then process the data.
But the thing is: Can I use only one sensor to feed 3 or 4 OpAmps?
Drive one opamp with the sensor, then drive 3 or 4 other opamps from that first buffer. How long does the flash last? Can your ADCs perform a conversion while the flash is at its peak? (Answer: No) To read the peak value you would need sample/hold circuitry (although some ADCs have simple sample/hold built-in). You may need fast op-amps. The first amp may need low input bias current, but the other 3-4 will not. All that I said about accuracy & stability still applies if you expect to get better than 12-bit resolution & accuracy. Unless you have an extraordinarily stable flash, you won't need 12-bit resolution; the flash amplitude will vary far more than that from flash to flash.
 

Thread Starter

Pepe333

Joined Feb 12, 2018
86
Drive one opamp with the sensor, then drive 3 or 4 other opamps from that first buffer. How long does the flash last? Can your ADCs perform a conversion while the flash is at its peak? (Answer: No) To read the peak value you would need sample/hold circuitry (although some ADCs have simple sample/hold built-in). You may need fast op-amps. The first amp may need low input bias current, but the other 3-4 will not. All that I said about accuracy & stability still applies if you expect to get better than 12-bit resolution & accuracy. Unless you have an extraordinarily stable flash, you won't need 12-bit resolution; the flash amplitude will vary far more than that from flash to flash.
The flash duration is microseconds. I need to graph the light intensity shape. The ADCs sample rate can be 5MHz.
Do you mean to connect the OpAmps like the attached picture?
 

Attachments

ericgibbs

Joined Jan 29, 2010
18,766
hi,
Are you trying to measure the peak intensity of the flash.?
If yes, how will the ADC's know when to start the conversion.? and if there is no sample and hold of the signal, will the ADC's complete the conversion as the signal decays.??
Also with a PD , the stronger the light intensity, the faster the PD will respond.

Can you tell what the reason you need to know the pulse data with that accuaracy.?
E
 

Thread Starter

Pepe333

Joined Feb 12, 2018
86
hi,
Are you trying to measure the peak intensity of the flash.?
If yes, how will the ADC's know when to start the conversion.? and if there is no sample and hold of the signal, will the ADC's complete the conversion as the signa; decays.??
Also with a PD , the stronger the light intensity, the faster the PD will respond.

Can you tell what the reason you need to know the pulse data with that accuaracy.?
E
What I need is to have a graph of the light intensity, from start to end. I'm reading continually the ambient light, and then detect the start of the flash burst.
The objective is to determine the t.5 and t.1 of the flash. Those datas are:
-t.5: Time duration with the signal is 50% of the total intensity.
-t.1: Time duration with the signal is 10% of the total intensity.

Also you can detect is the flash burst is only one pulse or various fast ones.
 

TeeKay6

Joined Apr 20, 2019
573
The flash duration is microseconds. I need to graph the light intensity shape. The ADCs sample rate can be 5MHz.
Do you mean to connect the OpAmps like the attached picture?
@Pepe333
No. One opamp should convert the photodiode's current to voltage (at the output of the opamp). Then that opamp can be used to drive 3-4 other opamps in parallel--i.e. the inputs of the 3-4 opamps all connect to the output of the first opamp.

What I need is to have a graph of the light intensity, from start to end. I'm reading continually the ambient light, and then detect the start of the flash burst.
The objective is to determine the t.5 and t.1 of the flash. Those datas are:
-t.5: Time duration with the signal is 50% of the total intensity.
-t.1: Time duration with the signal is 10% of the total intensity.

Also you can detect is the flash burst is only one pulse or various fast ones.
What you are attempting is very difficult and requires very high speed circuitry...and cannot be done with such simple circuitry as you have shown.

@ericgibbs
I have to go to bed; you can have it from here...
 

LesJones

Joined Jan 8, 2017
4,174
I would have thought that would need to integrate the output from the photo diode so you get the total amount of light energy in the flash rather an instantaneous value at some point during the flash. I am assuming this is something to do with photographic exposure correction.

Les.
 

Thread Starter

Pepe333

Joined Feb 12, 2018
86
@Pepe333
No. One opamp should convert the photodiode's current to voltage (at the output of the opamp). Then that opamp can be used to drive 3-4 other opamps in parallel--i.e. the inputs of the 3-4 opamps all connect to the output of the first opamp.
Do you mean this way??
But the Rfs will alter the the negative inputs from every OpAmp, isnt?
 

Attachments

Thread Starter

Pepe333

Joined Feb 12, 2018
86
What you are attempting is very difficult and requires very high speed circuitry...and cannot be done with such simple circuitry as you have shown.

@ericgibbs
I have to go to bed; you can have it from here...
No, no. I tested the process between a limited range of power from the flash, and I did the graph of the light correctly (I can collect 2000 readings very fast (about 0,3us each sample).
The only problem is exced the 12 bits range form the ADCs.
 

TeeKay6

Joined Apr 20, 2019
573
Is this a possible solution?
I tested with 2 OpAmps and it works!
No, it did not work. Not if you think you can get 12-bit accuracy from this circuit. Just because you get an output(s) does not mean the output(s) is accurate.

Yes, 16 bits will be enough, but, for hardware simplicity, I like to use the ADC embeded in the MCU.
Which CPU are you using that has fast enough ADCs?

Do you mean this way??
But the Rfs will alter the the negative inputs from every OpAmp, isnt?
From the output of the first opamp you must insert a separate resistor to the inputs of the following opamps. The output of the first opamp will be a voltage. A resistor is needed to convert that voltage to a current for each ADC amp.
 

jpanhalt

Joined Jan 18, 2008
11,087
The flash duration is microseconds. I need to graph the light intensity shape. The ADCs sample rate can be 5MHz.
Do you mean to connect the OpAmps like the attached picture?
I wanted to respond earlier but had a meeting to go to...

The response of almost any photodetector to light intensity is wavelength dependent. That is especially true of photodiodes. What is the spectral purity of your flash, and most important, does it vary from flash to flash?

Your very precise intensity measurements could be distorted if the spectrum of emitted light changes. How is the flash produced?
 

TeeKay6

Joined Apr 20, 2019
573
What I need is to have a graph of the light intensity, from start to end. I'm reading continually the ambient light, and then detect the start of the flash burst.
The objective is to determine the t.5 and t.1 of the flash. Those datas are:
-t.5: Time duration with the signal is 50% of the total intensity.
-t.1: Time duration with the signal is 10% of the total intensity.

Also you can detect is the flash burst is only one pulse or various fast ones.
"Also you can detect is the flash burst is only one pulse or various fast ones." What does that mean? Do you need to record the data from a single flash or are you intending to measure the data from multiple flashes, i.e. the average of multiple flashes?

To measure something to 12-bit accuracy means that your data is accurate within 1 part in 4096 parts. That means all components in the signal chain must be both accurate to that degree, stable to that degree, and with low enough noise that noise contributes less than 1 part in 4096 to the output result. I remain unconvinced that you can produce repeatable flashes with that degree of accuracy, and therefore any result that uses data from multiple flashes will be an average.

What you have described is very much like what a high-speed digital oscilloscope does: it performs sequential measurements at a very fast repetition rate and saves each result to memory. With very rare exceptions, those scopes measure with only 8-bit resolution and less than 8-bit accuracy.
 

BobaMosfet

Joined Jul 1, 2009
2,110
Hi all!,
I need to collect data from a sensor, with a wide range of values. I'm thinking in 4 OpAmps, with different Rf in order to have a very widerange of data. I need to collect the data from the all OpAmps at the same time (see attached).
The CPU has ADC, but they are only 12bits resolution. I need more resolution using the embedded ADCs.
My question is: How can I achieve that? Any advices?
There are very few.... _very few_ projects out there that requires more than 11-bits resolution with an ADC. Most MCUs don't offer greater than that- you have to use a standalone ADC for just a few more bits. Or you can make your own. Making your own allows you to make as many bits as you wish (within reason, there are limits), and you can read them simultaneously (in parallel) with little effort.
 

Thread Starter

Pepe333

Joined Feb 12, 2018
86
No, it did not work. Not if you think you can get 12-bit accuracy from this circuit. Just because you get an output(s) does not mean the output(s) is accurate.


Which CPU are you using that has fast enough ADCs?


From the output of the first opamp you must insert a separate resistor to the inputs of the following opamps. The output of the first opamp will be a voltage. A resistor is needed to convert that voltage to a current for each ADC amp.
Look at the STM32F3 family.
 
Top