12bit 16bit whatever bit and ARM/ATMEGA

I've often seen people refer to the ADC as it's only what did they say? 8 or 12bit (from memory) AnalogRead.

Last night while looking for Arduino Shields off of Ebay, I Came across "NetDuino" 49mhz, ARM, blah blah blah.

But, it says it's a 32bit CPU...

So does that mean, the NetDuino, can read in Full 16bit or even 32bit data digital streams from ADC to DAC ?

I'm thinking (to try and get and understand this concept), you can sample X amount of bits at a time, and the Arduino.. what Defines the "bit read value"

eg, if you read sequentially every single bit from say an SD card, is it not fast enough to read simply another 8 bits and create perfect quality, although slow?.. or it's simply
not powerful enough in realtime to sample enough data? and outut it through to the digital to analog section?

Does this mean that the NetDuino is capable of sampling 32bit data like say an oldish Soundblaster, while the Arduino samples at 12bit ? i don't quite get the link between sampling (because it can loop hundreds of thousands of times a second?! and read the data fast enough?.. i'm confused as... it's curiosity that's being doing my head in trying to understand all this )

Thanks if you can unconfuse the crap out of me :slight_smile:

cjdelphi:
But, it says it's a 32bit CPU... So does that mean, the NetDuino, can read in Full 16bit or even 32bit data digital streams from ADC to DAC ?

No. "32bit CPU", in the vast majority of cases, refers to the size of the internal data bus. In other words, the CPU can process 32 bits of data in a single instruction. But everything else (like an ADC) can be any size.

The AVR / Arduino processors are 8 bit CPUs. This means that the internal data bus is 8 bits wide; that the CPU can process 8 bits of data in a single instruction.

Thanks, Got It!

um but? (sorry)

For example... listening to a music CD, let's just say there's a processor to do all that , and you take the Analog output and amplify it with a transistor and feed it into an analog (for example A0 on stand arduino board)
it turns that into a digital value

so why can't it simply loop 3 times and output that back to the speaker? why would the quality decrease based on the fact it's only 8bit buss / processing per cycle/instruction? - sorry i really did not want to think this but let's just say i'm on pain medication for a bad toe which got me quite high and now my mind keeps wanting to know answers to these questions, i know later i won't care less but at least i know how it worked lol.

sorry i really am :slight_smile:

cjdelphi:
so why can't it simply loop 3 times and output that back to the speaker?

You could if the AVR analog to digital converter was a 16 bit (or wider) converter.

why would the quality decrease based on the fact it's only 8bit buss / processing per cycle/instruction?

It doesn't. The processor's data bus size has nothing to do with the resolution of the analog to digital converter.

If the AVR processor had a fast 16 bit ADC theoretically it would be capable of collecting a CD quality data stream. However, it typically will not have enough processing power to do anything useful with that data stream.

Roughly, the bitness of the ADC determines the quality of the data. The bitness of the processor determines what can be done with that data.

ahhh, so people refer to the to the digital to analog converter which is presumably 12bit on a typical arduino?

thanks :slight_smile: it's a lot clearer now, (They're fault for being none specific about which part they were on about :slight_smile: )

Arduino ADC is 10 bit. There's too much electrical noise flying around on the die of a microcontroller to get much better accuracy than that - a separate dedicated chip is needed to get high performance such as 16/20/24 bits. There's a bewildering variety of ADC and DAC chips to choose from - some go for accuracy, some for speed, some for low power.

http://www.ebay.com.au/itm/ADS1213P-22-Bit-Analog-to-Digital-Converter-ADC-w-Multiplexer-ADS1213-Qty-2-/370644761313?pt=LH_DefaultDomain_0&hash=item564c263ae1

since this is a 22bit, you presumably sample at 22bit and then output it to the speakers without much sound quality loss?... and that could in theory be done? / has been?

without much sound quality loss?

Well, that depends on "the rest of the circuit." 10 bits of ADC gives you an error (theoretically) of about 0.1%; are you using a 10bit DAC as well? 0.1% resistors? Components in general designed to have 0.1% accuracy over the operating range (power, temperature, etc)? Silly expensive microphones and speakers? Trying to build an A-D circuit that was actually accurate to 22 bits would scare the crap out of me...

The ADC you reference doesn't "sample" fast enough to do audio (10 Hz for 20bits) You'd be MUCH better off with the internal 10bit ADC if you want to do audio. "CD Quality" is 16bits at 44.1kHz sampling. The Adafruit "WaveShield" has a 12bit DAC doing 22kHz, and I'd describe it as "pretty good" (probably as good as recording sound on a cassette tape, and better than most microphones.)