Internal ADC input offset voltage

Go To Last Post
13 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have noticed that the internal ADC inputs (bandgap, SCALEDVCC) have a fairly large offset error, typically in the order of 60-70mV.

Why is this? External measurements have an offset error of about 4mV compared to external GND, which I attribute to internal GND being slightly higher. The datasheet says that when measuring internal inputs in signed mode you can select either internal or pad ground, but I think the A3U only supports internal GND. In any case the datasheet implies that there should be no offset error in signed mode.

When measuring in unsigned mode you get a fixed offset, which is what seems to be happening here. Silicone bug perhaps?

Just to elaborate on exactly what I did:

I am measuring the bandgap with the ADC in signed mode against the internal GND reference. My reference voltage is a nominal 2.048V and was measured with a calibrated Fluke meter to be 1.036V, an error of 1.15%.

When I measure external voltages I get a 1.2% error. That is with the offset between external and internet GND calibrated out. Gain error is not calibrated as I don't need that much precision. I am fairly confident that the ADC is working well since the error I get is very close to the reference voltage error.

When I measure the bandgap voltage I get a result of 1056mV, or 5.3% error. When I measure SCALEDVCC I get a result of 2939mV from a 3000mV supply (measured 3004mV on the meter). It seems like both have a fixed offset error of about 60mV.

Note that the only thing which changes between measures, which are made sequentially, is the ADC MUX setting.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Wait... I'm getting myself confused now >_<

The bandgap voltage is... what, exactly? The bandgap itself is 1.1V nominal, but the reference voltage derived from it is 1.0V. When you measure the bandgap as an internal input to the ADC do you expect to see 1.1V or 1.0V?

If it is supposed to be 1.0V then the voltage I measured is 56mV too high. If it is supposed to be 1.1V then it is 44mV too low. The SCALEDVCC is always lower than I am expecting by about 60mV, so in either case it doesn't add up.

Has anyone tried using the bandgap reference ad AVCC? Can anyone comment on its accuracy?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

thanks the information :

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

For ADCs, absolute accuracy is always tricky. The problem with comparing the measured reference voltage using a super high accuracy calibrated voltmeter is that it is a DC/low frequency measurement. However, what the ADC uses is actually the instantaneous voltage of the reference.

The bandgap reference voltage should be pretty stable, but the actual reference voltage the ADC sees is subject to power/gnd bounce depending on how good of a job they did on the board.

In terms of stability and minimal gain error, I would go with the bandgap reference voltage. The SCALEDVCC should be much noisier and more insidiously, might cause nonlinear distortion.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Okay, but even with some noise I would expect variations of a few LSB, not 50+ LSB. I do some oversampling and with external measurements the results are very accurate.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I tried switching to unsigned mode but it didn't make any difference. I get a result of 2328 which equates to 1164mV. I measured the ground offset at 103mV, so that gives a result of 1061mV which is exactly the same as in signed mode.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I figured it out, the problem was the ADC clock.

The micro runs at 16MHz. At clk/64 (250KHz) I got the bad result above. At clk/128 and above I get the right result. Thing is clk/128 is very close to the stated minimum for the ADC (100KHz). It looks like measuring the bandgap voltage needs this very low clock.

Unless I missed something I couldn't see any mention of this anywhere in the manual or datasheet.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The A4U manual say, under "ADC characteristics", that ADC Clock Frequency should be between 100kHz and 125kHz when measuring "Internal signals".

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You are absolutely correct sigelen. Shame it doesn't say that in the manual or the part of the datasheet that talks about the internal signals.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Having said that I still get a significant offset error from the internal SCALEDVCC signal, and searching the datasheet for details of its accuracy turns up nothing.

The result is about 4mV off on one IC and 5mV on another I have. Problem is that with a 1/10 scaling this is actually around 0.25% error, but multiplies up to 2.5% in the final reading, ot 75mV with a 3V supply. I would guess that the internal divider uses 1% resistors so there is potentially a 10% error there.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have done some more testing on more ICs and found that the internally measured bandgap reference varies quite a bit it seems. The 1.0V reference itself appears to be quite accurate, well within spec, but when you measure the raw bandgap which is supposed to be 1.1V it can be +/-25mV.

Perhaps Atmel trim the 1.0V reference divider separately. I'm not sure what the point of measuring the bandgap voltage is.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Ah, interesting. I've noticed the bandgap isn't particularly stable, but never tried measuring the 1.0V. I always wondered why they had a 1.1V bandgap to provide 1.0V reference.

Jeff Nichols

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Actually I do know what the point of measuring the bandgap reference is because I do it in my own code... What I should have said is I'm not sure if Atmel have some other reason for doing it.

Anyway, I measure it against my external AREF. If the result is more than +/-3% out then I know that the external AREF has failed. Well, I suppose the bandgap itself could fail too, but it seems less likely. It's purely a self-diagnostic/confidence test.