Arduino Uno R3: распиновка, питание и схема платы
Arduino Uno R3 (A000066) — плата на ATmega328P с частотой 16 МГц: 14 цифровых выводов, из них 6 с ШИМ, 6 аналоговых входов, USB через ATmega16U2. Ниже — где какой контакт по CAD-файлу Arduino, что за ним стоит в микроконтроллере и как устроено питание.
Обновлено по CAD-файлам и документации Arduino (A000066)
- Микроконтроллер
- ATmega328P
- Тактовая частота
- 16 МГц
- Цифровые выводы
- 14, из них 6 с ШИМ
- Аналоговые входы
- 6
- Питание через VIN
- 7–12 В
- Ток вывода
- 20 мА
- USB
- USB-B, ATmega16U2
- Размер
- 68,6 × 53,4 мм, 25 г
Расположение контактов
Вид сверху, размеры и места контактов — по CAD-файлу платы. Выберите группу — её контакты подсветятся; наведите курсор на контакт, чтобы увидеть вывод микроконтроллера и его функции.
- ввод-вывод
- питание и земля
- сброс и выбор загрузки
- не подключён
- выбранная периферия
Контакты и выводы микроконтроллера
У каждого контакта — номер Arduino, вывод ATmega328P (порт и номер вывода в корпусе PDIP28) и что с ним делает ядро Arduino. Соответствие проверено по трём источникам: цепям CAD-файла, распиновке корпуса в атласе и таблицам ядра Arduino AVR; подписи на плате совпадают с номерами. Код на регистрах для каждого вывода — в инструменте «Пины Arduino».
Цифровые выводы 0–7
| Контакт | Вывод МК | Что умеет |
|---|---|---|
| D0 | PD0, вывод 2 | PCINT16, Serial RX |
| D1 | PD1, вывод 3 | PCINT17, Serial TX |
| D2 | PD2, вывод 4 | INT0, attachInterrupt(0), PCINT18 |
| D3 | PD3, вывод 5 | ШИМ OC2B (490 Гц), INT1, attachInterrupt(1), PCINT19 |
| D4 | PD4, вывод 6 | PCINT20 |
| D5 | PD5, вывод 11 | ШИМ OC0B (977 Гц), PCINT21 |
| D6 | PD6, вывод 12 | ШИМ OC0A (977 Гц), PCINT22 |
| D7 | PD7, вывод 13 | PCINT23 |
Цифровые выводы 8–13, AREF, I²C
| Контакт | Вывод МК | Что умеет |
|---|---|---|
| D8 | PB0, вывод 14 | PCINT0 |
| D9 | PB1, вывод 15 | ШИМ OC1A (490 Гц), PCINT1 |
| D10 | PB2, вывод 16 | ШИМ OC1B (490 Гц), PCINT2, SPI SS |
| D11 | PB3, вывод 17 | ШИМ OC2A (490 Гц), PCINT3, SPI MOSI |
| D12 | PB4, вывод 18 | PCINT4, SPI MISO |
| D13 | PB5, вывод 19 | PCINT5, SPI SCK, LED_BUILTIN |
| GND | питание | общий провод |
| AREF | AREF, вывод 21 | внешнее опорное напряжение АЦП |
| SDA (A4) | PC4, вывод 27 | АЦП, канал 4, PCINT12, I2C SDA |
| SCL (A5) | PC5, вывод 28 | АЦП, канал 5, PCINT13, I2C SCL |
Питание
| Контакт | Вывод МК | Что умеет |
|---|---|---|
| NC | — | не подключён |
| IOREF | питание | уровень логики платы (5 В) для шилдов |
| RESET | PC6, вывод 1 | сброс микроконтроллера низким уровнем |
| 3.3V | питание | 3,3 В для маломощных модулей |
| 5V | питание | цепь 5 В платы: выход стабилизатора и питание микроконтроллера |
| GND | питание | общий провод |
| GND | питание | общий провод |
| VIN | питание | внешнее питание: то же, что на гнезде после диода защиты |
Аналоговые входы
| Контакт | Вывод МК | Что умеет |
|---|---|---|
| A0 | PC0, вывод 23 | АЦП, канал 0, PCINT8 |
| A1 | PC1, вывод 24 | АЦП, канал 1, PCINT9 |
| A2 | PC2, вывод 25 | АЦП, канал 2, PCINT10 |
| A3 | PC3, вывод 26 | АЦП, канал 3, PCINT11 |
| A4 | PC4, вывод 27 | АЦП, канал 4, PCINT12, I2C SDA |
| A5 | PC5, вывод 28 | АЦП, канал 5, PCINT13, I2C SCL |
ICSP ATmega328P
| Контакт | Вывод МК | Что умеет |
|---|---|---|
| MISO (D12) | PB4, вывод 18 | PCINT4, SPI MISO |
| 5V | питание | цепь 5 В платы: выход стабилизатора и питание микроконтроллера |
| SCK (D13) | PB5, вывод 19 | PCINT5, SPI SCK, LED_BUILTIN |
| MOSI (D11) | PB3, вывод 17 | ШИМ OC2A (490 Гц), PCINT3, SPI MOSI |
| RESET | PC6, вывод 1 | сброс микроконтроллера низким уровнем |
| GND | питание | общий провод |
Второй разъём ICSP рядом с USB подключён не к ATmega328P, а к преобразователю USB ATmega16U2: через него перепрошивают сам преобразователь.
Питание
От гнезда питания напряжение идёт через диод D1 (M7), который защищает плату от обратной полярности, на цепь VIN — к ней же подключён контакт VIN разъёма. Из VIN стабилизатор U1 (NCP1117ST50T3G) делает 5 В для микроконтроллера и контакта 5V. Arduino рекомендует подавать на VIN 7–12 В, а пределом называет 6–20 В: ниже рекомендуемого стабилизатору не хватает запаса, выше — он сильнее греется.
От USB 5 В идут через самовосстанавливающийся предохранитель F1 (MF-MSMF050-2, 500 мА) и P-канальный транзистор T1 (FDN340P). Транзистором управляет компаратор U5 (LMV358IDGKR): он сравнивает половину напряжения VIN (делитель из двух резисторов по 10 кОм) с 3,3 В. Когда на VIN больше примерно 6,6 В, транзистор закрывается и плата питается от VIN, иначе — от USB; диод для этого не нужен, и напряжение USB почти не падает.
Контакт 3.3V питает отдельный стабилизатор U2 (LP2985-33DBVR), подключённый к цепи 5 В.
Загрузка скетчей и сброс
Скетч загружается по USB через загрузчик в конце флеш-памяти. Настройки ядра Arduino (файл boards.txt):
| Плата в Arduino IDE | Загрузчик | Скорость | Места для скетча | Фьюзы L/H/E |
|---|---|---|---|---|
| Arduino Uno | optiboot_atmega328.hex | 115200 бит/с | 32 256 байт | 0xFF/0xDE/0xFD |
Что значит каждый бит фьюзов — в калькуляторе фьюзов AVR; прошить загрузчик заново можно программатором через разъём ICSP.
Перед загрузкой скетча компьютер сбрасывает микроконтроллер сам: вывод 13 ((CTS/HWB/AIN6/TO/INT7)PD7) преобразователя ATmega16U2 соединён с RESET через конденсатор C5 100 нФ. Когда программа на компьютере открывает порт, на нём появляется перепад, конденсатор передаёт короткий импульс на RESET, и после сброса запускается загрузчик.
Светодиод L подключён к D13 не напрямую, а через вторую половину микросхемы U5 (LMV358IDGKR), включённую повторителем: светодиод не нагружает вывод, и D13 можно использовать как обычный вход.
Микроконтроллер тактируется от керамического резонатора Y2 (CSTCE16M0V53-R0) на выводах XTAL1 и XTAL2.
Частые вопросы
Какие выводы Arduino Uno R3 поддерживают ШИМ?
analogWrite() работает на выводах D3, D5, D6, D9, D10 и D11 — у них есть выходы сравнения таймеров. Частота ШИМ после init() ядра Arduino — около 490 Гц, у выводов таймера 0 — около 980 Гц; точные значения и регистры — в таблице контактов и в инструменте «Пины Arduino».
Какой ток можно брать с вывода Arduino Uno R3?
Arduino указывает 20 мА на вывод. Абсолютный предел ATmega328P по даташиту (DS40002061B, раздел 29.1) — 40 мА на вывод и 200 мА через выводы VCC и GND; работать на пределе нельзя, а светодиоды и реле подключают через резистор или транзистор.
Где у Arduino Uno R3 шина I²C?
SDA — A4, SCL — A5. Рядом с AREF эти же линии выведены ещё раз и подписаны SDA и SCL — это не второй интерфейс.
Можно ли подключить USB и внешнее питание одновременно?
Да. Компаратор на плате сам отключает USB от цепи 5 В, когда на VIN больше примерно 6,6 В, и снова подключает его, когда внешнее питание пропадает. Подавать 5 В на контакт 5V одновременно с USB или VIN не стоит: этот контакт идёт мимо стабилизатора и коммутатора.
Источники
Расположение контактов, цепи, детали питания и контур платы — из CAD-файлов Eagle, характеристики — из tech-specs.yml и даташита платы в документации Arduino (Arduino UNO R3, A000066), лицензия CC BY-SA 4.0. Рисунок и тексты — GAW, по фактам из этих файлов.
Номера выводов Arduino, ШИМ, прерывания и настройки загрузчика — ядро Arduino AVR Boards (коммит 11b9130): boards.txt и variants/*/pins_arduino.h. Выводы корпуса PDIP28 — из атласа ATmega328P, предельные токи — из даташита ATmega48A/PA/88A/PA/168A/PA/328/P (DS40002061B). Лицензии и источники данных.
Нашли ошибку на странице платы?
Инструменты и статьи
- Пины ArduinoПин Arduino → порт ATmega, ШИМ, прерывания и регистры
- ATmega328PРаспиновка, фьюзы, Optiboot, периферия, питание, схема и код на C
- Arduino и AVRЧто делают init(), millis(), analogWrite(), analogRead() и загрузчик
- Фьюзы AVRБиты фьюзов, заводские значения и avrdude
- Скорость UARTUBRR, BRR, TH1 и ошибка скорости
- Резистор для светодиодаНоминал и мощность гасящего резистора
- AVR ISP, UPDI и TPIISP 6 и 10 pin, USBasp, UPDI и TPI