This chapter presents technical descriptions of the types of AVR parts used in Arduino models that are based on 8-bit AVR devices. This is intended to build on the functional descriptions presented in Chapter 2 for AVR microcontrollers in general, but with a specific focus on the ATmega168/328, ATmega1280/2560, and ATmega32U4 microcontrollers.
From the perspective of someone programming an Arduino with the IDE, the microcontroller is a simplified abstraction of the actual underlying AVR device. The code necessary to perform operations such as configuring an output pin to generate a PWM signal or internally route an analog voltage into the built-in ADC is straightforward. The internal addresses of the control registers and their control bits are predefined, so the sketch author need not worry about the low-level details.
Because an Arduino board is really nothing more than a carrier for an AVR chip, the electrical characteristics of the Arduino are largely those of the processor. The pins from the chip are connected directly to the pin terminals or solder pads along the edge of the Arduino board. There is no buffering or level-shifting between the chips and the board’s connection points.
At the time this book was written Arduino used five basic types of ATmega microcontrollers and three variations, for a total of eight part numbers. These are listed in Table 3-1. The main differences between the various AVR devices lie in the amount ...