ADC Converter Question - MAX11646 or MAX11644 - 5V I2C, 3.3V Propeller - ADC Reference Confusion
Mahonroy
Posts: 175
in Propeller 1
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
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
No.
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?
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.
Nope, the VREF is limited/clamped - see the data where it says < Vdd+0.3V
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.
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?)
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.
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.