Shop OBEX P1 Docs P2 Docs Learn Events
ADC Converter Question - MAX11646 or MAX11644 - 5V I2C, 3.3V Propeller - ADC Reference Confusion — Parallax Forums

ADC Converter Question - MAX11646 or MAX11644 - 5V I2C, 3.3V Propeller - ADC Reference Confusion

Hello,
I am building a circuit to use either MAX11646 (10 bit) or MAX11644 (12 bit). These chips come in 3.3V and 5V versions, so I take it I need the 5V version to read in 0-5 volt analog signal? I am needing to read in a 0-5 volt analog signal, so it sounds like I need +5V on the VDD, and the REF to ground. I was planning on using 2x mosfets with 4x pullups for the SCL/SDA lines so the 3.3V propeller can interface the ADC since its powered off +5V now.

Also, I'm a bit confused how the REF is supposed to work. It says the 3.3V version has a 2.048V internal reference, and the 5V version has a 4.096V internal reference. It can also be configured for an external reference. Honestly I was just expecting to put ground on the REF so I could measure the 0-5V, but now I am confused on how this REF is supposed to work. Would someone mind explaining it to me? Can I get away with the 3.3V version still and measure 0-5V so I don't have to mess with the level shifting mosfet circuit? Any help/advice is greatly appreciated, thanks!

Here are the datasheets for reference:
http://datasheets.maximintegrated.com/en/ds/MAX11646-MAX11647.pdf
http://datasheets.maximintegrated.com/en/ds/MAX11644-MAX11645.pdf

Comments

  • jmgjmg Posts: 15,173
    Mahonroy wrote: »
    Can I get away with the 3.3V version still and measure 0-5V so I don't have to mess with the level shifting mosfet circuit?

    No.
    Mahonroy wrote: »
    Also, I'm a bit confused how the REF is supposed to work. It says the 3.3V version has a 2.048V internal reference, and the 5V version has a 4.096V internal reference. It can also be configured for an external reference. Honestly I was just expecting to put ground on the REF so I could measure the 0-5V, but now I am confused on how this REF is supposed to work. Would someone mind explaining it to me?
    Data says range is 0-VREF, so that means you need to provide 5V external vref if you want to measure 0~5V.
    If you can provide the same 5V the source signal is ratioed from, then you remove 5V tracking errors.
    If you cannot use a common 5V, you need to check 'how good' that other 5V is, and what precision you need, to select your 5V ref.

    The i2c looks to be open drain, but has the usual lazy 0.7 VDD spec, so level shifting is the safest.
    You may find pullups to 5V and tristate drive from Prop, does work by experimentation.

  • MahonroyMahonroy Posts: 175
    edited 2017-10-21 00:16
    jmg wrote: »
    Mahonroy wrote: »
    Can I get away with the 3.3V version still and measure 0-5V so I don't have to mess with the level shifting mosfet circuit?

    No.
    Mahonroy wrote: »
    Also, I'm a bit confused how the REF is supposed to work. It says the 3.3V version has a 2.048V internal reference, and the 5V version has a 4.096V internal reference. It can also be configured for an external reference. Honestly I was just expecting to put ground on the REF so I could measure the 0-5V, but now I am confused on how this REF is supposed to work. Would someone mind explaining it to me?
    Data says range is 0-VREF, so that means you need to provide 5V external vref if you want to measure 0~5V.
    If you can provide the same 5V the source signal is ratioed from, then you remove 5V tracking errors.
    If you cannot use a common 5V, you need to check 'how good' that other 5V is, and what precision you need, to select your 5V ref.

    The i2c looks to be open drain, but has the usual lazy 0.7 VDD spec, so level shifting is the safest.
    You may find pullups to 5V and tristate drive from Prop, does work by experimentation.

    Thanks a lot for taking a look at that!

    So I can just connect the same 5V that I'm using to power it (VDD) and connect that directly to the VREF? And then I take it the ADC values will be inverted? (e.g. 5 volts would give 0 value, 0 volts would give 4095 (or 1024 for 10 bit version). I would omit that resistor and capacitor on the VREF as well right?

    Could I use the 3.3V version of this chip, and connect 5V to VREF and not have to mess with level shifting?

    EDIT:
    Ok I see under External VREF that the max is VDD, so I must use the 5V version. That answers that part, what do you think about the other question?
  • jmgjmg Posts: 15,173
    Mahonroy wrote: »
    So I can just connect the same 5V that I'm using to power it (VDD) and connect that directly to the VREF? And then I take it the ADC values will be inverted? (e.g. 5 volts would give 0 value, 0 volts would give 4095 (or 1024 for 10 bit version).

    Yes, you simply connect to Vdd, if that has enough stability/precision. Sometimes you buy a better voltage regulator, to improve that.
    The RC is often used to improve the noise on the Vdd.
    Readings should be in the data sheet, and easy to check when it's all working !
    Most ADC's I've used give higher numbers for more voltage.
    Mahonroy wrote: »
    Could I use the 3.3V version of this chip, and connect 5V to VREF and not have to mess with level shifting?

    Nope, the VREF is limited/clamped - see the data where it says < Vdd+0.3V
  • altosackaltosack Posts: 132
    edited 2017-10-21 03:02
    I'm sorry to have to disagree with the previous comments made on this post, but there are better ways to skin this cat.

    Use the 3.3V version of your ADC with a propeller; this will make communication much simpler. In order to read a 5V signal, use a voltage divider to reduce the voltage that you want to measure down to the range that you can measure with your device. Use 1% resistors; typical variance with a narrow temperature range is *much* less than 1%.

    If you need accurate *and* fast readings, separate the digital and analog voltage supplies, and for the best readings, also separate your voltage reference. I use a REF19x, from AD; for about $4, it will give you a reference voltage stable to <1 mV.

    Conversely, if you want to save money and circuit complexity, and don't need very fast readings, you can use oversampling/decimation. I would recommend sampling at least 4X anyway, but I have also successfully raised an MCP3304 from 13 bits to 18 bits using 1024x oversampling (this still gives me 50 18-bit readings per second at 3.3V), in which case you *don't* want to separate the digital and analog supplies because you want a little jitter in your signal to make the oversampling/decimation work.
  • kwinnkwinn Posts: 8,697
    altosack wrote: »
    I'm sorry to have to disagree with the previous comments made on this post, but there are better ways to skin this cat.

    Use the 3.3V version of your ADC with a propeller; this will make communication much simpler. In order to read a 5V signal, use a voltage divider to reduce the voltage that you want to measure down to the range that you can measure with your device. Use 1% resistors; typical variance with a narrow temperature range is *much* less than 1%.

    If you need accurate *and* fast readings, separate the digital and analog voltage supplies, and for the best readings, also separate your voltage reference. I use a REF19x, from AD; for about $4, it will give you a reference voltage stable to <1 mV.

    Conversely, if you want to save money and circuit complexity, and don't need very fast readings, you can use oversampling/decimation. I would recommend sampling at least 4X anyway, but I have also successfully raised an MCP3304 from 13 bits to 18 bits using 1024x oversampling (this still gives me 50 18-bit readings per second at 3.3V), in which case you *don't* want to separate the digital and analog supplies because you want a little jitter in your signal to make the oversampling/decimation work.

    +1 - Simpler to power the ADC from 3.3V and use a voltage divider for the input voltage. Would also suggest using the internal reference rather than the 3.3V supply voltage for more accurate and stable readings.
  • Thanks again for the extra info! Yeah for some reason I completely missed the voltage divider piece to simplify this thing... completely spaced that out. So I will use the 3.3V version and get rid of the level shift.

    I'm still confused on how the reference works. How come the voltages are 4.096, 2.048, etc. is this so you get a millivolt per decimal ADC value?

    What if I used a 2.048v internal reference for the analog 0-3.3 volt input? Does this mean I would only be able to read 0 to 2.048v? (and in this case, I would need to modify my voltage divider to scale so the 5v = 2.048 instead of 3.3?)
  • Yes, 2.048 is used so each bit will be half a millivolt for a 12-bit ADC. However, the internal reference is unlikely to be accurate enough to make this relevant, particularly since any given measurement will probably be scaled to fit the ADC, so you'll be doing math, anyway.

    And yes, if you use the internal 2.048V reference, that will be the highest voltage you can read, and you should scale your input to be within that. Be sure to read the datasheet carefully to get the variability of the reference, keeping in mind that it's likely that your application is temperature constrained, so the variability may be, in effect, much better than what's stated.
  • Keep in mind that the two inputs can be configured as either single ended or differential. When single ended, with internal Vref=2.048V, the range is indeed 0 to 2.048V, or 0 to 3.3V with external Vref=3.3V.

    But in differential mode the nominal range would be +/- 2.048V or +/-3.3V respectively. How can that be? Suppose there is 1.50V applied to the (-) input. Then the usable range on the (+) input becomes -1.5V (when + input is at ground) to +3.3V (when the + input is at Vdd). The inputs cannot be allowed to go outside the Vss to Vdd range, but within that they can be plus or minus with respect to one another.

    The internal reference absolute accuracy is only guaranteed within +/-4%, but on top of that the drift is a 25ppm, which may be acceptable.

    I've used the MAX11613 which appear to be quite similar to the '644, except for having 4 input channels (2 differential). The I2C interface to these chips is rather unusual. If using the internal conversion timing, the master i2c drive needs to support clock stretching. More precise control of the timing can be had by using an external conversion clock. The chip has other interesting features, such as buffering multiple samples in one conversion cycle.
Sign In or Register to comment.