Shop OBEX P1 Docs P2 Docs Learn Events
Sigma-delta ADC performance — Parallax Forums

Sigma-delta ADC performance

Larry C.Larry C. Posts: 48
edited 2008-07-16 17:47 in Propeller 1
Hello, all,

Does anyone have any performance data on the generic sigma-delta ADC object in the Prop library (ADC.spin, by Beau Schwabe)? I need to measure d-c voltages with 10-bit resolution, but accuracy doesn't have to be any better than 2-3 %.

I'm wondering how sensitive this approach would be to supply voltage changes. Also, how much variation in scale factor, offsets, etc. could I expect from one propeller chip to another? Probably a number of these will be built by other people, and I don't want to have to custom-select the resistor values for each unit.

Has anybody looked at this kinda stuff?

I can add an external ADC chip, if necessary, but I hate to do it.

Thanks for any help,

- Larry C -

Comments

  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2008-07-15 23:00
    Larry,

    Here's what my limited experience with the D-S ADCs has taught me:

    1. They're ratiometric to the supply voltage. Therefore, in terms of absolute accuracy, they're no better than your supply regulation.

    2. The trip point for the inputs is not exactly Vdd / 2. So your input resistor values will have to be higher than your feedback resistor values (by 50%, according to one recommendation I've seen) to guarantee capturing the entire 0-Vdd input range.

    3. Because of #2, your programmed resolution will have to be higher than your desired resolution by a bit or two, since 0-Vdd will cover a fraction of your input dynamic range.

    4. You should be able to calibrate the ADC easily by feeding it with 0V and Vdd, in turn, to determine your endpoints. Then, for each result from your program, you can compute what fraction of Vdd you're reading. This will also help to negate any chip-to-chip variations.

    -Phil

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    'Still some PropSTICK Kit bare PCBs left!
  • Larry C.Larry C. Posts: 48
    edited 2008-07-16 00:37
    Thanks for the quick and informative reply, Phil.

    Your point #2 agrees with what I have seen: with 150 k Rinput and 100 k Rfeedback, I lose about 25-30 % of the total range due to zero offset. So your suggestion of increasing the resolution is right on.

    Do you have any feeling for the magnitude of the chip-to-chip variations?

    After reading your post, I'm thinking now that I could have a self-calibrating system if I add in a couple of FET switches to steer the input to ground and then Vdd, before taking a reading on the actual input. It's a couple more parts, but still cheaper than a stand-along ADC chip. (If I can find some FETs that switch with a gate voltage of 3 volts, that is!)

    - Larry C. -
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2008-07-16 01:00
    Larry,

    "Do you have any feeling for the magnitude of the chip-to-chip variations?"

    ····No. My tests have been confined mostly to one chip.

    "After reading your post, I'm thinking now that I could have a self-calibrating system if I add in a couple of FET switches to steer the input to ground and then Vdd, before taking a reading on the actual input."

    ····Or, you could just use the output from another pin to provide those values. (You can't do that with the external analog source connected, though.) Another option would be to employ half of a dual 4-to-1 analog multiplexer, like the 74HC4052. That would even get you a second analog input for free.

    -Phil

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    'Still some PropSTICK Kit bare PCBs left!
  • Larry C.Larry C. Posts: 48
    edited 2008-07-16 15:08
    Hi, Phil:

    I like the idea of using an analog mux. That should work just fine -- simple and cheap. I'll give it a try.

    - Larry C. -
  • AleAle Posts: 2,363
    edited 2008-07-16 15:27
    If you are going to put an analog mux... that means one i.c. why not go all the way and add an ADC with 4 or 8 inputs ?
  • Larry C.Larry C. Posts: 48
    edited 2008-07-16 16:12
    Yup. The thought did cross my mind, but I'll probably be building a large number of these and cost becomes an issue. I can get a 4-channel mux for less than fifty cents, but a 4-channel 10-bit ADC would go for about $2.00. Also, I don't really need the improvement in performance that I could get with a stand-alone ADC.

    But the ADC is a good fallback option if the analog mux approach doesn't work out for some reason.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2008-07-16 16:24
    Larry,

    A third option would be to use a cheap micro, like the Atmel ATTiny13, as your ADC. You can get these for less than a buck, and with an 8-pin SOIC footprint, they're smaller than a MUX. You'll have to program the micro to read its ADC and communicate with the Prop, however.

    -Phil

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    'Still some PropSTICK Kit bare PCBs left!
  • Larry C.Larry C. Posts: 48
    edited 2008-07-16 17:47
    Hi, Phil:

    Less than a buck, eh? I never thought of anything along those lines.

    Looks like I have a wealth of options to sort out, now.

    Thanks for all the suggestions, everybody.

    - Larry C. -
Sign In or Register to comment.