Skip to main content
added 2 characters in body
Source Link
Connor Wolf
  • 32.5k
  • 6
  • 81
  • 140

While this doesn't directly address your question, it does describe a problem you are going to run into in the near future.

Basically, the ATxmega ADCs are pretty much unusable when connected to the xmega's internal 1.0V reference. You get ~16 LSBscounts of noise no matter what you do.

The general consensus seems to be that if you want to use the ADxmega internal ADC, you really have to use an external reference. Ideally, you could use the entire 0-3.3V range, but the ADC only supports references up to Vcc - 0.6V, so 2.5V is probably the best idea.

I recently was working on a project that had some user-interface pots that were connected to the xmega ADCs. I indeed wound up having noise issues. I was able to solve them by massively oversampling (x4096 times!), but it still only gave me maybe 10 bits of usable resolution.
Now, my layout was really, really non-ideal (the UI stuff was added after I had sent the boards off to be fabbed, it was hung off what was supposed to be just a debugging port, and had wires everywhere and whatnot).

Atmel has supposedly "fixed" the ADC issues on parts with the "u" suffix (Such as ATxmega32A4U vs ATxmega32A4), but I have not had a change to work with the "U" parts.

While this doesn't directly address your question, it does describe a problem you are going to run into in the near future.

Basically, the ATxmega ADCs are pretty much unusable when connected to the xmega's internal 1.0V reference. You get ~16 LSBs of noise no matter what you do.

The general consensus seems to be that if you want to use the ADxmega internal ADC, you really have to use an external reference. Ideally, you could use the entire 0-3.3V range, but the ADC only supports references up to Vcc - 0.6V, so 2.5V is probably the best idea.

I recently was working on a project that had some user-interface pots that were connected to the xmega ADCs. I indeed wound up having noise issues. I was able to solve them by massively oversampling (x4096 times!), but it still only gave me maybe 10 bits of usable resolution.
Now, my layout was really, really non-ideal (the UI stuff was added after I had sent the boards off to be fabbed, it was hung off what was supposed to be just a debugging port, and had wires everywhere and whatnot).

Atmel has supposedly "fixed" the ADC issues on parts with the "u" suffix (Such as ATxmega32A4U vs ATxmega32A4), but I have not had a change to work with the "U" parts.

While this doesn't directly address your question, it does describe a problem you are going to run into in the near future.

Basically, the ATxmega ADCs are pretty much unusable when connected to the xmega's internal 1.0V reference. You get ~16 counts of noise no matter what you do.

The general consensus seems to be that if you want to use the ADxmega internal ADC, you really have to use an external reference. Ideally, you could use the entire 0-3.3V range, but the ADC only supports references up to Vcc - 0.6V, so 2.5V is probably the best idea.

I recently was working on a project that had some user-interface pots that were connected to the xmega ADCs. I indeed wound up having noise issues. I was able to solve them by massively oversampling (x4096 times!), but it still only gave me maybe 10 bits of usable resolution.
Now, my layout was really, really non-ideal (the UI stuff was added after I had sent the boards off to be fabbed, it was hung off what was supposed to be just a debugging port, and had wires everywhere and whatnot).

Atmel has supposedly "fixed" the ADC issues on parts with the "u" suffix (Such as ATxmega32A4U vs ATxmega32A4), but I have not had a change to work with the "U" parts.

Source Link
Connor Wolf
  • 32.5k
  • 6
  • 81
  • 140

While this doesn't directly address your question, it does describe a problem you are going to run into in the near future.

Basically, the ATxmega ADCs are pretty much unusable when connected to the xmega's internal 1.0V reference. You get ~16 LSBs of noise no matter what you do.

The general consensus seems to be that if you want to use the ADxmega internal ADC, you really have to use an external reference. Ideally, you could use the entire 0-3.3V range, but the ADC only supports references up to Vcc - 0.6V, so 2.5V is probably the best idea.

I recently was working on a project that had some user-interface pots that were connected to the xmega ADCs. I indeed wound up having noise issues. I was able to solve them by massively oversampling (x4096 times!), but it still only gave me maybe 10 bits of usable resolution.
Now, my layout was really, really non-ideal (the UI stuff was added after I had sent the boards off to be fabbed, it was hung off what was supposed to be just a debugging port, and had wires everywhere and whatnot).

Atmel has supposedly "fixed" the ADC issues on parts with the "u" suffix (Such as ATxmega32A4U vs ATxmega32A4), but I have not had a change to work with the "U" parts.