AVR Microcontrollers
Atmel now makes a family of nice 8 bit microcontrollers
(as well as 32 bit ones also, but we won't talk about those here).
I have come to really like these for small projects that need
a microcontroller, but don't require ethernet.
The Chips
The three that I have been working with are:
- ATmega328P 20 Mhz, 32K flash, 2K SRAM, 1K EEPROM, 8 channel 10 bit ADC, 23 IO pins.
- ATmega32u4 16 Mhz, 32K flash, 2.5K SRAM, 1K EEPROM, 12 channel 10 bit ADC, 26 IO pins.
- AT90USB1286 16 Mhz, 128K flash, 8K SRAM, 4K EEPROM, 8 channel 10 bit ADC, 46 IO pins.
For more information, including datasheets, see:
Boards
These boards are cheap, $20 or $30 in most cases, and some are quite small:
Software Development
The software development environment (compiler, editors, and libraries) is everything
in a microcontroller project. In truth, it is far more important and critical than the
choice of hardware. I use the proven combination of the Gnu C compiler, Gnu make, and
(last but not least) the Vim editor.
USB
It won't be long once you are working with AVR controllers before you are needing and
wanting to know more about USB.
Arduino
"Arduino" is the name for a project, a family of little boards, and a culture.
At this point most, if not all, have as their core one of the Atmel AVR controllers.
They are cheap (around $40), but more expensive than other alternatives.
Their real claim to fame is the Arduino development environment, which is intended
to make this technology accessible to kids and artists.
As an experienced programmer, I have been less than pleased with it.
I had lots of trouble getting the development environment set up, and I can
only imagine what a non tech person would have done. Java provided a unique
set of headaches. Arduino code is written as "sketches", which are sugar
coated C++ code. Worst of all, the Arduino IDE, like all development environments,
forces you to use a lame and annoying editor. So I abandoned the world of Arduino,
and have never looked back.
You can read about some of my experiences here:
Feedback? Questions?
Drop me a line!
Tom's Computer Info / tom@mmto.org