Datasheet Arduino Uno
Datasheet Arduino Uno
Overview
The Arduino Uno is a microcontroller board based on the ATmega328 (datasheet). It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz crystal oscillator, a
USB connection, a power jack, an ICSP header, and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started. The Uno differs from all preceding boards in that it does not use the FTDI USB-to-serial driver chip. Instead, it features the Atmega8U2 programmed as a USB-to-serial converter. "Uno" means one in Italian and is named to mark the upcoming release of Arduino 1.0. The Uno and version 1.0 will be the reference versions of Arduno, moving forward. The Uno is the latest in a series of USB Arduino boards, and the reference model for the Arduino platform; for a comparison with previous versions, see the index of Arduino boards.
Summary
Microcontroller ATmega328 Operating Voltage 5V Input Voltage (recommended) 7-12V Input Voltage (limits) 6-20V Digital I/O Pins 14 (of which 6 provide PWM output) Analog Input Pins 6 DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Clock Speed 16 MHz
Power
The Arduino Uno can be powered via the USB connection or with an external power supply. The power source is selected automatically. External (non-USB) power can come either from an AC-to-DC adapter (wall-wart) or battery. The adapter can be connected by plugging a 2.1mm center-positive plug into the board's power jack. Leads from a battery can be inserted in the Gnd and Vin pin headers of the POWER connector. The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may be unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts. The power pins are as follows: VIN. The input voltage to the Arduino board when it's using an external power source (as opposed to 5 volts from the USB connection or other regulated power source). You can supply voltage through this pin, or, if supplying voltage via the power jack, access it through this pin. 5V. The regulated power supply used to power the microcontroller and other components on the
board. This can come either from VIN via an on-board regulator, or be supplied by USB or another regulated 5V supply. 3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA. GND. Ground pins.
Memory
The ATmega328 has 32 KB (with 0.5 KB used for the bootloader). It also has 2 KB of SRAM and 1 KB of EEPROM (which can be read and written with the EEPROM library).
Communication
The Arduino UNo has a number of facilities for communicating with a computer, another Arduino, or other microcontrollers. The ATmega328 provides UART TTL (5V) serial communication, which is available on digital pins 0 (RX) and 1 (TX). An ATmega8U2 on the board channels this serial communication over USB and appears as a virtual com port to software on the computer. The '8U2 firmware uses the standard USB COM drivers, and no external driver is needed. However, on Windows, a .inf file is required. The Arduino
software includes a serial monitor which allows simple textual data to be sent to and from the Arduino board. The RX and TX LEDs on the board will flash when data is being transmitted via the USB-to-serial chip and USB connection to the computer (but not for serial communication on pins 0 and 1). A SoftwareSerial library allows for serial communication on any of the Uno's digital pins. The ATmega328 also supports I2C (TWI) and SPI communication. The Arduino software includes a Wire library to simplify use of the I2C bus; see the documentation for details. For SPI communication, use the SPI library.
Programming
The Arduino Uno can be programmed with the Arduino software (download). Select "Arduino Uno from the Tools > Board menu (according to the microcontroller on your board). For details, see the reference and tutorials. The ATmega328 on the Arduino Uno comes preburned with a bootloader that allows you to upload new code to it without the use of an external hardware programmer. It communicates using the original STK500 protocol (reference, C header files). You can also bypass the bootloader and program the microcontroller through the ICSP (In-Circuit Serial Programming) header; see these instructions for details. The ATmega8U2 firmware source code is available . The ATmega8U2 is loaded with a DFU bootloader, which can be activated by connecting the solder jumper on the back of the board (near the map of Italy) and then resetting the 8U2. You can then use Atmel's FLIP software (Windows) or the DFU programmer (Mac OS X and Linux) to load a new firmware. Or you can use the ISP header with an external programmer (overwriting the DFU bootloader). See this user-contributed tutorial for more information.
Physical Characteristics
The maximum length and width of the Uno PCB are 2.7 and 2.1 inches respectively, with the USB connector and power jack extending beyond the former dimension. Four screw holes allow the board to be attached to a surface or case. Note that the distance between digital pins 7 and 8 is 160 mil (0.16"), not an even multiple of the 100 mil spacing of the other pins.
IC1
IN OUT
+5V
4 2
+3V3
10K RN1A 8 1
CMP
U1A
1
U1B
7
LM358D
3
1 2
C1 100n
4
VO
2
+
PWRIN
GND
GND
USBVCC
GND
1 IN EN GND NC/FB 4 OUT 5 +3V3
GND
GND
GND
GND
T1 FDN304V
3 2
C3 1u
+5V POWER
RESET
1 2 3 4 5 6
+3V3
GND
+5V
4 5 6
VIN GND
RESET TS42
YELLOW L
RN4D 1K GND
1K RN2B
2
RN4C 1K
RN2A
10K RN1C 6 3
ICSP GND F1 X2
1 2 3 4
100n
DTR
USBVCC
GND
RESET2
24 2
USB
P$2 P$1
XT1R
R3 27R
32 4 3
(PCINT7/OC0A/OC1C)PB7 (PCINT6)PB6 (PCINT5)PB5 RESET(PC1/DW) (T1/PCINT4)PB4 (PD0/MISO/PCINT3)PB3 (PDI/MOSI/PCINT2)PB2 XTAL2(PC0) (SCLK/PCINT1)PB1 (SS/PCINT0)PB0 XTAL1 AVCC VCC GND UCAP UVCC DD+ UGND PAD (INT4/ICP1/CLK0)PC7 (OC1A/PCINT8)PC6 (PCINT9/OC1B)PC5 (PCINT10)PC4 (AIN2/PCINT11)PC2 (CTS/HWB/AIN6/TO/INT7)PD7 (RTS/AIN5/INT6)PD6 (XCK/AIN4/PCINT12)PD5 (INT5/AIN3)PD4 (TXD1/INT3)PD3 (RXD1/AIN1/INT2)PD2 (AIN0/INT1)PD1 (OC0B/INT0)PD0
RN1D 10K
U3
C5
RESET-EN
2
+5V
5
1 3 5
2 4 6
1K
GND ICSP
+5V
3 4
C4 100n
8 7 6 5 4 3 2 1
1 2 5
ICSP
GND
ZIC1
1 RESET XTAL2 XTAL1 AREF AVCC AGND VCC GND (SCK)PB5 (MISO)PB4 (MOSI)PB3 (SS)PB2 (OC1)PB1 (ICP)PB0 (ADC5)PC5 (ADC4)PC4 (ADC3)PC3 (ADC2)PC2 (ADC1)PC1 (ADC0)PC0) (AIN1)PD7 (AIN0)PD6 (T1)PD5 (T0)PD4 (INT1)PD3 (INT0)PD2 (TXD)PD1 (RXD)PD0 19 18 17 16 15 14 28 27 26 25 24 23 13 12 11 6 5 4 3 2
10 9 21 20 22 7 8
SS IO9 IO8 AD5 AD4 AD3 AD2 AD1 AD0 IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0
13 12 11 10 9 8
IOH
6 5 4 3 2 1 2 3 7 6
P$2 P$1
UGND
GND
16MHz
GND
GREEN ON
Z1
UBOOT
2
USHIELD
BLM21
100n C7 C8 1u
27 31 30 29 28 EXP
AD
8 7 6 5 4 3 2 1
GND
GROUND GND
ATMEGA8U2-MU
1K RN4B 7 2 1K RN4A 8 1
7 6 5 4 3 2 1 0
L1
IOL
C9 22p
XT1
2 2
XTAL1
16MHz 16MHz Q1 Q2
C10 22p
C11 22p
XT2
XTAL2
C12 22p
GND
GND