Перейти к содержанию

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-файлу платы. Выберите группу — её контакты подсветятся; наведите курсор на контакт, чтобы увидеть вывод микроконтроллера и его функции.

USB-BПитание 7–12 ВATmega328P16U2RESETD0 — PD0, вывод 2 — PCINT16, Serial RXD0D1 — PD1, вывод 3 — PCINT17, Serial TXD1D2 — PD2, вывод 4 — INT0, attachInterrupt(0), PCINT18D2D3 — PD3, вывод 5 — ШИМ OC2B (490 Гц), INT1, attachInterrupt(1), PCINT19D3D4 — PD4, вывод 6 — PCINT20D4D5 — PD5, вывод 11 — ШИМ OC0B (977 Гц), PCINT21D5D6 — PD6, вывод 12 — ШИМ OC0A (977 Гц), PCINT22D6D7 — PD7, вывод 13 — PCINT23D7D8 — PB0, вывод 14 — PCINT0D8D9 — PB1, вывод 15 — ШИМ OC1A (490 Гц), PCINT1D9D10 — PB2, вывод 16 — ШИМ OC1B (490 Гц), PCINT2, SPI SSD10D11 — PB3, вывод 17 — ШИМ OC2A (490 Гц), PCINT3, SPI MOSID11D12 — PB4, вывод 18 — PCINT4, SPI MISOD12D13 — PB5, вывод 19 — PCINT5, SPI SCK, LED_BUILTIND13GNDGNDAREF — AREF, вывод 21AREFSDA — PC4, вывод 27 — АЦП, канал 4, PCINT12, I2C SDASDASCL — PC5, вывод 28 — АЦП, канал 5, PCINT13, I2C SCLSCLNCNCIOREFIOREFRESET — PC6, вывод 1RESET3.3V3.3V5V5VGNDGNDGNDGNDVINVINA0 — PC0, вывод 23 — АЦП, канал 0, PCINT8A0A1 — PC1, вывод 24 — АЦП, канал 1, PCINT9A1A2 — PC2, вывод 25 — АЦП, канал 2, PCINT10A2A3 — PC3, вывод 26 — АЦП, канал 3, PCINT11A3A4 — PC4, вывод 27 — АЦП, канал 4, PCINT12, I2C SDAA4A5 — PC5, вывод 28 — АЦП, канал 5, PCINT13, I2C SCLA5MISO — PB4, вывод 18 — PCINT4, SPI MISOMISO5V5VSCK — PB5, вывод 19 — PCINT5, SPI SCK, LED_BUILTINSCKMOSI — PB3, вывод 17 — ШИМ OC2A (490 Гц), PCINT3, SPI MOSIMOSIRESET — PC6, вывод 1RESETGNDGNDMISO5VSCKMOSIRESETGND
Arduino Uno R3: плата 68,58 × 53,34 мм по контуру CAD-файла.
  • ввод-вывод
  • питание и земля
  • сброс и выбор загрузки
  • не подключён
  • выбранная периферия

Контакты и выводы микроконтроллера

У каждого контакта — номер Arduino, вывод ATmega328P (порт и номер вывода в корпусе PDIP28) и что с ним делает ядро Arduino. Соответствие проверено по трём источникам: цепям CAD-файла, распиновке корпуса в атласе и таблицам ядра Arduino AVR; подписи на плате совпадают с номерами. Код на регистрах для каждого вывода — в инструменте «Пины Arduino».

Цифровые выводы 0–7

КонтактВывод МКЧто умеет
D0PD0, вывод 2PCINT16, Serial RX
D1PD1, вывод 3PCINT17, Serial TX
D2PD2, вывод 4INT0, attachInterrupt(0), PCINT18
D3PD3, вывод 5ШИМ OC2B (490 Гц), INT1, attachInterrupt(1), PCINT19
D4PD4, вывод 6PCINT20
D5PD5, вывод 11ШИМ OC0B (977 Гц), PCINT21
D6PD6, вывод 12ШИМ OC0A (977 Гц), PCINT22
D7PD7, вывод 13PCINT23

Цифровые выводы 8–13, AREF, I²C

КонтактВывод МКЧто умеет
D8PB0, вывод 14PCINT0
D9PB1, вывод 15ШИМ OC1A (490 Гц), PCINT1
D10PB2, вывод 16ШИМ OC1B (490 Гц), PCINT2, SPI SS
D11PB3, вывод 17ШИМ OC2A (490 Гц), PCINT3, SPI MOSI
D12PB4, вывод 18PCINT4, SPI MISO
D13PB5, вывод 19PCINT5, SPI SCK, LED_BUILTIN
GNDпитаниеобщий провод
AREFAREF, вывод 21внешнее опорное напряжение АЦП
SDA (A4)PC4, вывод 27АЦП, канал 4, PCINT12, I2C SDA
SCL (A5)PC5, вывод 28АЦП, канал 5, PCINT13, I2C SCL

Питание

КонтактВывод МКЧто умеет
NC—не подключён
IOREFпитаниеуровень логики платы (5 В) для шилдов
RESETPC6, вывод 1сброс микроконтроллера низким уровнем
3.3Vпитание3,3 В для маломощных модулей
5Vпитаниецепь 5 В платы: выход стабилизатора и питание микроконтроллера
GNDпитаниеобщий провод
GNDпитаниеобщий провод
VINпитаниевнешнее питание: то же, что на гнезде после диода защиты

Аналоговые входы

КонтактВывод МКЧто умеет
A0PC0, вывод 23АЦП, канал 0, PCINT8
A1PC1, вывод 24АЦП, канал 1, PCINT9
A2PC2, вывод 25АЦП, канал 2, PCINT10
A3PC3, вывод 26АЦП, канал 3, PCINT11
A4PC4, вывод 27АЦП, канал 4, PCINT12, I2C SDA
A5PC5, вывод 28АЦП, канал 5, PCINT13, I2C SCL

ICSP ATmega328P

КонтактВывод МКЧто умеет
MISO (D12)PB4, вывод 18PCINT4, SPI MISO
5Vпитаниецепь 5 В платы: выход стабилизатора и питание микроконтроллера
SCK (D13)PB5, вывод 19PCINT5, SPI SCK, LED_BUILTIN
MOSI (D11)PB3, вывод 17ШИМ OC2A (490 Гц), PCINT3, SPI MOSI
RESETPC6, вывод 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 Unooptiboot_atmega328.hex115200 бит/с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). Лицензии и источники данных.

Нашли ошибку на странице платы?