Searching \ for 'Magic 12-bit ADC (was Re: PIC14000 and MPX5100A se' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/microchip/ios.htm?key=adc
Search entire site for: 'Magic 12-bit ADC (was Re: PIC14000 and MPX5100A se'.

Truncated match.
PICList Thread
'Magic 12-bit ADC (was Re: PIC14000 and MPX5100A se'
1996\11\14@185806 by Steve Hardy

flavicon
face
> From: John Payson <spam_OUTsupercatTakeThisOuTspammcs.net>
>
> > I'm also in the process of designing a PIC-based altimeter, requiring 12 bit
> > or greater resolution at 1 sample/sec.  It seems to me that this would be an
> > ideal application for the 14000.
>
> In one ap I'm doing where I need 12 bits A to D, I take a port pin output,
> run it through an RC filter, and then run that into a comparator along with
> the input signal.  In my timer tick, I set that output port to match the
> input port and increment a count if it was "high"; every 4096 loops I store
> the count, zero it, and start again.  Seems to work pretty well, though I
> don't get readings all that fast.
>

John: please elaborate since I don't understand how this works.  Am I
correct in understanding that you are basically feeding back a sampled
comparator output back into the comparator's input via an RC and then
working out the duty cycle?  Won't this always settle to 50% no matter
what the input level?

Regards,
SJH
Canberra, Australia

1996\11\15@061834 by John Payson

picon face
> > In one ap I'm doing where I need 12 bits A to D, I take a port pin output,
> > run it through an RC filter, and then run that into a comparator along with
> > the input signal.  In my timer tick, I set that output port to match the
> > input port and increment a count if it was "high"; every 4096 loops I store
> > the count, zero it, and start again.  Seems to work pretty well, though I
> > don't get readings all that fast.
>
> John: please elaborate since I don't understand how this works.  Am I
> correct in understanding that you are basically feeding back a sampled
> comparator output back into the comparator's input via an RC and then
> working out the duty cycle?  Won't this always settle to 50% no matter
> what the input level?

Suppose the system has been running awhile and both the input and output
are at 25% VDD.  If the PIC outputs a low, then the cap will discharge
moderately slowly (since it's only at 25% charge to begin with) whereas if
the PIC outputs a high, it will charge three times as fast (since it would
have 75% of VDD to charge with).  Thus, if the PIC outputs a low three
times as often as it oututs a high, the cap will charge and discharge in
balanced amounts.

From my limitted experience with this technique, it seems to work pretty
well.  There's a little bit of jitter on the readings (about 3 counts out
of 4096) but not much; I expect the technique will be reasonably noise-
immune since repeated glitched readings which go in the same direction will
cause any non-glitched readings to go in the other direction thereby cancel-
ing out the glitches.  The only difficulty I've seen with this technique
is that it's not terribly fast.

1996\11\15@101152 by Gerhard Fiedler

flavicon
face
At 05:08 15/11/96 -0600, John Payson wrote:
>> > In one ap I'm doing where I need 12 bits A to D, I take a port pin output,
>> > run it through an RC filter, and then run that into a comparator along with
>> > the input signal.  In my timer tick, I set that output port to match the
>> > input port and increment a count if it was "high"; every 4096 loops I store
>> > the count, zero it, and start again.  Seems to work pretty well, though I
>> > don't get readings all that fast.
>
>From my limitted experience with this technique, it seems to work pretty
>well.  There's a little bit of jitter on the readings (about 3 counts out
>of 4096) but not much; I expect the technique will be reasonably noise-
>immune since repeated glitched readings which go in the same direction will
>cause any non-glitched readings to go in the other direction thereby cancel-
>ing out the glitches.  The only difficulty I've seen with this technique
>is that it's not terribly fast.

There is another variety of this method: you use a PWM output with a filter
as a DAC, and feed it back with the input into a comparator. Now you use a
control loop for the DAC so that the comparator output toggles on and off
all the time. This way you might get more control over the speed the DAC
follows the input. The DAC value is the estimate for the input.

1996\11\15@151909 by Stuart Allman

flavicon
face
On Fri, 15 Nov 1996, Gerhard Fiedler wrote:

> At 05:08 15/11/96 -0600, John Payson wrote:
> >> > In one ap I'm doing where I need 12 bits A to D, I take a port pin
output,
> >> > run it through an RC filter, and then run that into a comparator along
with
> >> > the input signal.  In my timer tick, I set that output port to match the
> >> > input port and increment a count if it was "high"; every 4096 loops I
store
{Quote hidden}

You could also perform a delta-sigma style converter with a diff
amp-integrator-comparator conbination.  You would have to perform an
internal FIR for noise shaping.  Considering that the output from the
comparitor is a 1 or -1, the FIR would be multiplierless.  See the Crystal
Semicoductor audio data book for a more thorough explanation.  You could
probably get 12-14 bits out of it if you designed is properly.

Stuart Allman
.....studioKILLspamspam@spam@halcyon.com

1996\11\16@165615 by Walter Banks
picon face
>
> You could also perform a delta-sigma style converter with a diff
> amp-integrator-comparator conbination.  You would have to perform an
> internal FIR for noise shaping.  Considering that the output from the
> comparitor is a 1 or -1, the FIR would be multiplierless.    You could
> probably get 12-14 bits out of it if you designed is properly.


I have used delta sigma sytle A/D's with nothing more than two
resistors and a small Cap using one input as a summing juction
and an output as a feedback source.

For slow moving signals (like the altimeter) 12 - 14 bits are
quite possible. It the added advangae that the result can be
calibrated directly in desired units by adjusting the sample size.

It is a low cost (low speed) A/D conversion technique that works
well in many consummer applications.

Walter Banks

http://www.bytecraft.com

1996\11\17@050027 by nogueira

flavicon
face
Walter Banks wrote:
>
> I have used delta sigma sytle A/D's with nothing more than two
> resistors and a small Cap using one input as a summing juction
> and an output as a feedback source.

Could you give us with some code and schematics?

Thanks,

Octavio

--
========================================================
Octavio Nogueira
e-mail:   nogueiraspamKILLspammandic.com.br
homepage: http://ourworld.compuserve.com/homepages/tato
voice/fax: +55 11 240-6474
"ProPic" The first Production PIC Programmer running in
Windows and under US$ 20.00.
========================================================

More... (looser matching)
- Last day of these posts
- In 1996 , 1997 only
- Today
- New search...