View previous topic :: View next topic |
Author |
Message |
dongseong
Joined: 15 May 2005 Posts: 11
|
AD resolution expand |
Posted: Wed Dec 21, 2005 12:57 pm |
|
|
Hello?
Someone tells me that A/D resolution can be easily explanded with software algorithm and small change of hardware.
For example, in order to expand 10 bits to 14 bits,
1) A/D original
2) A/D origianl + LSB/N
3) A/D origiabl + 2 x LSB/N
4) A/D origanl + 3 x LSB/N
then sum all above.
where LSB = voltage of LSB, N = expand times
Could someone explain me how to apply LSB voltage accurately?
Regards
Dong |
|
|
SherpaDoug
Joined: 07 Sep 2003 Posts: 1640 Location: Cape Cod Mass USA
|
|
Posted: Wed Dec 21, 2005 2:35 pm |
|
|
You might expand 10 bits to 12 with some care, but 10 bits to 14 is not really parctical. Are you looking for true accuracy or only resolution?
I think what your friend is describing is summing a small controlled voltage with your signal. To go from 10 bits to 14 you would need to create a 4 bit DAC with some resistors on 4 port pins. Then you need to scale the signal to equal 1 lsb of the 10 bit A/D and add that signal to your real signal. This all assumes that your 10 bit A/D is accurate (linear, monotonic, etc.) to 14 bits, which is unlikely.
This is not a good idea. Tell us about your application and we can try to come up with better alternatives. _________________ The search for better is endless. Instead simply find very good and get the job done. |
|
|
dongseong
Joined: 15 May 2005 Posts: 11
|
|
Posted: Wed Dec 21, 2005 3:00 pm |
|
|
Thanks for qucik reply!
I am trying to A/D for pressure sensor with PIC12F675, and expanding 10 bits to 12bits will be OK for me.
Since signal changes slowly, I do not need fast speed either.
Then, is there any good way to get 12 bits resolution with 10 bits A/D?
Thanks
Dong |
|
|
SherpaDoug
Joined: 07 Sep 2003 Posts: 1640 Location: Cape Cod Mass USA
|
|
Posted: Wed Dec 21, 2005 3:20 pm |
|
|
First question: Is your signal noisy? If you take sucessive readings do you almost always get the same value, or is it +/- one bit? If it is noisy about the best you can do is take many readings and average them. To get some good ideas on averaging noisy data do a search on this forum for "olympic".
If the signal is not noisy you need to make a 2 bit D/A to generate a "dither" signal. Do you know how to make an D/A from a couple of port pins and resistors? You will set these pins in the four possible configurations to generate four small voltages. Then you need to add this dither voltage to your sensor output somehow. If you are using an "instrumentation amplifier" chip that has a ground reference pin you may be able to drive the ground reference with the dither voltage.
Is there some way you could send us a schematic? _________________ The search for better is endless. Instead simply find very good and get the job done. |
|
|
Ttelmah Guest
|
|
Posted: Wed Dec 21, 2005 3:25 pm |
|
|
Whether you can get any expansion, without extra hardware, depends on the nature of your source, and the errors present. If the errors are uniformly distributed, then you can oversample to get somewhat improved resolution. There have been discussions here in the past, when dealing with some types of averaging filter, about this. You have to oversample by at least improvement^2, so to get a *4 expansion (two extra bits), requires a minimum of sixteen samples. However this process only works if the noise is uniform. On the PIC, it is common, unless sleep mode is used for the ADC, for the largest noise source to be the program itself, and this may well not produce uniform noise (you typically have peaks in the noise spectrum, as the code takes different routes). Try the simple sum and divide filter, either using it 'simply', by adding sixteen readings, and dividing by four, or using the 'rolling' version, that has been posted here many times in the past. I suspect with 'luck', you may well see 11+ bits of repeatable resolution.
Best Wishes |
|
|
dongseong
Joined: 15 May 2005 Posts: 11
|
|
Posted: Wed Dec 21, 2005 3:41 pm |
|
|
Thanks for a nice advice.
Since my signal is clean, let me try with "dither", and actaully I was looking for this method.
My pressure sensor is MPX4115, and it is directly conected to PIC.
I do not know how to make a D/A, and need to learn.
Once successful, I will post the result.
Thanks
Dong |
|
|
kender
Joined: 09 Aug 2004 Posts: 768 Location: Silicon Valley
|
|
|
|