Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

ADC reading not stable

Status
Not open for further replies.

markdem

Member level 3
Member level 3
Joined
May 16, 2006
Messages
58
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
1,830
Hello all, I have finaly got my PH reading device going. The only problem now is that when i do read the ADC value, it keeps jumping around. I can read the opamp output with a multimeater, and it is very stable, but when i attach the ADC, it will go up and down about 150 steps. I am using a 12 bit ADC so the whole range is only 0-4095, so a change of 150 is quite high when i am mesuriung PH. I have tried to add bypass caps before the ADC, about .1µf, but it did not help. Can anyone please give me some tips on what i can do to make the ADC abit more stabe.

Thanks, Mark
 

You may consider two things:
1. Take a few readings (5-10) and calculate the average ..
2. Try to condition the input signal to the ADC by adding an opamp integrator .. see picture below ..
Implementing both strategies should make the result pretty stable ..

Regards,
IanP
 

    markdem

    Points: 2
    Helpful Answer Positive Rating
Stabil_ADC_Result=0;
For i:=0 to 128 do Stabil_ADC_Result:=Stabil_ADC_Result + Read_ADC();
Stabil_ADC_Result:=Stabil_ADC_Result DIV 128;
 

Don't try to correct by software or integration a possible hardware error.
The effect you say could be the inadequate input impedance or PH electrode leackage current or bad cable shielding.

Check easily this asumption: use an 1.2V battery with a series resistor of 100Mohm and connect it to your PH meter input. If the reading is stable and reproducible, your electronics is ok. If not...
 

Does your ADC has an Voltage reference input (Vref). Cause if it does you would like to have that value as stable as possible. Variations on this input cause serious unstability on your output, so it would be better if you used some kind of voltage regulator or a programable zener like TL431 to supress any Vdd noise you could have on your reference.

hope this helps,

diemilio.
 

Hi all, thanks for the suggestions, i will try them shortly.

The VREF i am using is a 5v voltage refrence chip from analog devices, cant remember the part now, so i dont think it will be a supply problem.
Also, i cant do any kind of avarging in the software as there is too many low readings, and that would bring the final value down too much.

I have also tried to feed the ADC with a regulated 1.6v, and the readings are OK. there is no jumping around at all, so i guess that the problem has too be with the op amps. Do you think that using a in-amp would help?

thanks, Mark
 

Unstable readings results most of the time from noise on your signal. If you use relatively long cables that are not properly shielded, many noise sources can couple to your signal.

I saw that problem once when the measure instrument was powered by a cheap switching power supply.

You can look closely (on a small scale) to your signal with an oscilloscope to make sure that it's not noisy before trying to implement any correction measure.

Good luck,

cyberblak
 

Hi All, i have made this work witht he opamp integrator method :)

i have checked all my books about op-amps and cant find any info about this. Can sombody please tell me how\why it works, or suggest somthing i can read.

Thanks, Mark
 

markdem said:
Hi All, i have made this work witht he opamp integrator method :)

i have checked all my books about op-amps and cant find any info about this. Can sombody please tell me how\why it works, or suggest somthing i can read.

Thanks, Mark

An integrator is killing the signal speed with a rate of R*C. Fortunately for a PH reading this will only slighty increase the reading time and add a measuring error equal with the noise integration value. If your noise component is simmetrical (you have a *real* noise) then after integration the DC component wil be near zero and you'll be happy.

greetings,
 

markdem,
Your multimeter will measure the average value of the input voltage. It will average out any noise that is present. This is also what the circuit that IanP suggested will do. Look at the input with a 'scope configured as AC coupled. This will reveal any noise on the input. Also, you may have a grounding problem. Make sure that the current from the digital circuitry does not flow through the input signal ground path.
Regards,
Kral
 

yet 150/ 4095 ~ 3 percent of adc scale .

markdem, post schematics here together with layout .
 

Try making your ground track, on PCB, bit more wider , it solved my same problem.
 

Make sure that your analog and digital signals are well seperated. Seperate ground paths to the ADC for analog and digital are a must.

Also watch that your ADC clock line is no where near your analog circuitry.

For that application, averaging over as many samples as possible (lowers the bandwidth as mentioned by others).
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top