Go Down

Topic: Does Arduino Uno have max 8-bit or more resolution? (Read 4 times) previous topic - next topic

cmd1024

Hi,
Hi I've just read a tutorial about Arduino resolution and it says: "The analog to digital converters (ADC) in the Arduino are considered to have 10 bit resolution.  The bits of resolution is an obfuscation that means 2^10, or 1024 divisions (0 to 1023), of the reference voltage.." Doesn't "ATmega328" on Arduino Uno board have max 8-bit resolution? And doesn't that mean voltage is divided 256 steps? I'm a newbie and I thought I might be fundamentally wrong about these. Any input would be appreciated.  
Thanx

cmd1024

Hi,
Hi I've just read a tutorial about Arduino resolution and it says: "The analog to digital converters (ADC) in the Arduino are considered to have 10 bit resolution.  The bits of resolution is an obfuscation that means 2^10, or 1024 divisions (0 to 1023), of the reference voltage.." Doesn't "ATmega328" on Arduino Uno board have max 8-bit resolution? And doesn't that mean voltage is divided 256 steps? I'm a newbie and I thought I might be fundamentally wrong about these. Any input would be appreciated. 
Thanx

spatula

If you look at the datasheet http://www.atmel.com/Images/doc8161.pdf, chapter 23, you can see that the ADC has a 10-bit resolution. I don't know why the tutorial calls this an "obfuscation", but the bottom line is that the range of values is from 0 to 1023, as the tutorial says. The part about ATmega's ADC having an 8-bit resolution is simply wrong.

fungus


Hi,
Hi I've just read a tutorial about Arduino resolution and it says: "The analog to digital converters (ADC) in the Arduino are considered to have 10 bit resolution.  The bits of resolution is an obfuscation that means 2^10, or 1024 divisions (0 to 1023), of the reference voltage.."


Correct.


Doesn't "ATmega328" on Arduino Uno board have max 8-bit resolution? And doesn't that mean voltage is divided 256 steps?


No.
No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

cmd1024

Hi spatula, it seems I didn't really understand what it means 8 bit micro-controller. I thought it is the resolution(bit depth).
What does 8-bit account for?

Erdin

The ATmega328 is a 8-bit chip. The code and calculations and register and memory is done in 8-bit.
The ADC is 10-bit.

The function analogRead() returns a value from 0 up to 1023.
http://arduino.cc/de/Reference/AnalogRead

To get the 10-bit accuracy, it depends on the 5V voltage and the noise. If a few samples are averaged, the accuracy is near 10-bit.

AWOL

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

KirAsh4

#7
Apr 24, 2013, 10:33 pm Last Edit: Apr 24, 2013, 11:00 pm by Coding Badly Reason: 1

Also, please don't cross-post.


Moderator edit: emphasis added.

Grumpy_Mike

Quote
And doesn't that mean voltage is divided 256 steps?

If it had then it would but it hasn't so it doesn't.

Don't mix it up with the 8 bit resolution of the PWM accessed through the badly named analogWrite call. It can only be considered an analog output once you filter it with and external circuit.
See this for information about PWM:-
http://www.thebox.myzen.co.uk/Tutorial/PWM.html

Quote
I don't know why the tutorial calls this an "obfuscation"

No nor do I, unless they are trying unsuccessfully to be friendly.

cmd1024

#9
Apr 24, 2013, 10:35 pm Last Edit: Apr 24, 2013, 10:40 pm by cmd1024 Reason: 1
AWOL, another website says: "8 bit means that this controller can process only 8-bits of data at a time".
Does it mean each time Arduino sends a 8-bit chunk? But I thought serial protocol is one bit at a time always? How can one wire send 8 bits instantly? Another tutorial says: "The serial communications protocol sends data in 8-bit chunks, or 1-byte at a time." How can "at a time" a wire can carry 8 different states???

AWOL

You're confusing a whole load of concepts there.
Serial frames consist normally of ten bits - start bit, eight data bits and a stop bit, all transmitted one after the other.
Internally, the processor works on units of eight bits, fetched from memory in parallel along eight bit wide data paths.
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

cmd1024

#11
Apr 24, 2013, 10:42 pm Last Edit: Apr 24, 2013, 10:45 pm by cmd1024 Reason: 1
So why do all tutorials say "at a time". Aren't the bits being sent one after another which means there is nothing as a chunk in real.
Or am I still wrong??

edit: So this "8 bit at a time" is about internal chips?? I thought it is about sending data from Arduino to PC for example(serial communication or usb).


AWOL

Quote
So why do all tutorials say "at a time"

Which tutorials, please?
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Grumpy_Mike

Still wrong.
You are confusing serial data - one bit at a time. With the width of the data bus inside the processor 8 bits at a time.

KirAsh4

1 byte (at a time) = 8 bits (at a time).  Don't confuse byte versus bits.

Go Up