Go Down

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

#### cmd1024

##### Apr 24, 2013, 10:13 pm
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

#1
##### Apr 24, 2013, 10:15 pm
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

#2
##### Apr 24, 2013, 10:22 pm
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

#3
##### Apr 24, 2013, 10:28 pm

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

#4
##### Apr 24, 2013, 10:29 pm
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

#5
##### Apr 24, 2013, 10:32 pm
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

#6
##### Apr 24, 2013, 10:32 pm
Memory and register width is eight bit.
"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 pmLast Edit: Apr 24, 2013, 11:00 pm by Coding Badly Reason: 1

Also, please don't cross-post.

Moderator edit: emphasis added.

#### Grumpy_Mike

#8
##### Apr 24, 2013, 10:33 pm
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 pmLast 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

#10
##### Apr 24, 2013, 10:39 pm
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 pmLast 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

#12
##### Apr 24, 2013, 10:44 pm
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

#13
##### Apr 24, 2013, 10:44 pm
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

#14
##### Apr 24, 2013, 10:46 pm
1 byte (at a time) = 8 bits (at a time).  Don't confuse byte versus bits.

Go Up

Please enter a valid email to subscribe

### Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy