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

Arduino Nano: распиновка, питание и схема платы

Arduino Nano (A000005) — плата на ATmega328P с частотой 16 МГц: 14 цифровых выводов, из них 6 с ШИМ, 8 аналоговых входов, USB через FT232RL. Ниже — где какой контакт по CAD-файлу Arduino, что за ним стоит в микроконтроллере и как устроено питание.

Обновлено по CAD-файлам и документации Arduino (A000005)

Микроконтроллер
ATmega328P
Тактовая частота
16 МГц
Цифровые выводы
14, из них 6 с ШИМ
Аналоговые входы
8
Питание через VIN
7–12 В
Ток вывода
20 мА
USB
Mini-B USB, FT232RL
Размер
45 × 18 мм, 7 г

Расположение контактов

Вид сверху, размеры и места контактов — по CAD-файлу платы. Выберите группу — её контакты подсветятся; наведите курсор на контакт, чтобы увидеть вывод микроконтроллера и его функции.

Mini-USB328PRESETD1 — PD1, вывод 31 — PCINT17, Serial TXD1D0 — PD0, вывод 30 — PCINT16, Serial RXD0RESET — PC6, вывод 29RESETGNDGNDD2 — PD2, вывод 32 — INT0, attachInterrupt(0), PCINT18D2D3 — PD3, вывод 1 — ШИМ OC2B (490 Гц), INT1, attachInterrupt(1), PCINT19D3D4 — PD4, вывод 2 — PCINT20D4D5 — PD5, вывод 9 — ШИМ OC0B (977 Гц), PCINT21D5D6 — PD6, вывод 10 — ШИМ OC0A (977 Гц), PCINT22D6D7 — PD7, вывод 11 — PCINT23D7D8 — PB0, вывод 12 — PCINT0D8D9 — PB1, вывод 13 — ШИМ OC1A (490 Гц), PCINT1D9D10 — PB2, вывод 14 — ШИМ OC1B (490 Гц), PCINT2, SPI SSD10D11 — PB3, вывод 15 — ШИМ OC2A (490 Гц), PCINT3, SPI MOSID11D12 — PB4, вывод 16 — PCINT4, SPI MISOD12VINVINGNDGNDRESET — PC6, вывод 29RESET5V5VA7 — ADC7, вывод 22 — АЦП, канал 7A7A6 — ADC6, вывод 19 — АЦП, канал 6A6A5 — PC5, вывод 28 — АЦП, канал 5, PCINT13, I2C SCLA5A4 — PC4, вывод 27 — АЦП, канал 4, PCINT12, I2C SDAA4A3 — PC3, вывод 26 — АЦП, канал 3, PCINT11A3A2 — PC2, вывод 25 — АЦП, канал 2, PCINT10A2A1 — PC1, вывод 24 — АЦП, канал 1, PCINT9A1A0 — PC0, вывод 23 — АЦП, канал 0, PCINT8A0AREF — AREF, вывод 20AREF3.3V3.3VD13 — PB5, вывод 17 — PCINT5, SPI SCK, LED_BUILTIND13MISO — PB4, вывод 16 — PCINT4, SPI MISOMISO5V5VSCK — PB5, вывод 17 — PCINT5, SPI SCK, LED_BUILTINSCKMOSI — PB3, вывод 15 — ШИМ OC2A (490 Гц), PCINT3, SPI MOSIMOSIRESET — PC6, вывод 29RESETGNDGND
Arduino Nano: плата 43,18 × 17,78 мм по контуру CAD-файла.
  • ввод-вывод
  • питание и земля
  • сброс и выбор загрузки
  • не подключён
  • выбранная периферия

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

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

Цифровые выводы

КонтактВывод МКЧто умеет
D1PD1, вывод 31PCINT17, Serial TX
D0PD0, вывод 30PCINT16, Serial RX
RESETPC6, вывод 29сброс микроконтроллера низким уровнем
GNDпитаниеобщий провод
D2PD2, вывод 32INT0, attachInterrupt(0), PCINT18
D3PD3, вывод 1ШИМ OC2B (490 Гц), INT1, attachInterrupt(1), PCINT19
D4PD4, вывод 2PCINT20
D5PD5, вывод 9ШИМ OC0B (977 Гц), PCINT21
D6PD6, вывод 10ШИМ OC0A (977 Гц), PCINT22
D7PD7, вывод 11PCINT23
D8PB0, вывод 12PCINT0
D9PB1, вывод 13ШИМ OC1A (490 Гц), PCINT1
D10PB2, вывод 14ШИМ OC1B (490 Гц), PCINT2, SPI SS
D11PB3, вывод 15ШИМ OC2A (490 Гц), PCINT3, SPI MOSI
D12PB4, вывод 16PCINT4, SPI MISO

Аналоговые входы и питание

КонтактВывод МКЧто умеет
VINпитаниевнешнее питание: вход стабилизатора 5 В
GNDпитаниеобщий провод
RESETPC6, вывод 29сброс микроконтроллера низким уровнем
5Vпитаниецепь 5 В платы: выход стабилизатора и питание микроконтроллера
A7ADC7, вывод 22АЦП, канал 7
A6ADC6, вывод 19АЦП, канал 6
A5PC5, вывод 28АЦП, канал 5, PCINT13, I2C SCL
A4PC4, вывод 27АЦП, канал 4, PCINT12, I2C SDA
A3PC3, вывод 26АЦП, канал 3, PCINT11
A2PC2, вывод 25АЦП, канал 2, PCINT10
A1PC1, вывод 24АЦП, канал 1, PCINT9
A0PC0, вывод 23АЦП, канал 0, PCINT8
AREFAREF, вывод 20внешнее опорное напряжение АЦП
3.3Vпитание3,3 В для маломощных модулей
D13PB5, вывод 17PCINT5, SPI SCK, LED_BUILTIN

ICSP ATmega328P

КонтактВывод МКЧто умеет
MISO (D12)PB4, вывод 16PCINT4, SPI MISO
5Vпитаниецепь 5 В платы: выход стабилизатора и питание микроконтроллера
SCK (D13)PB5, вывод 17PCINT5, SPI SCK, LED_BUILTIN
MOSI (D11)PB3, вывод 15ШИМ OC2A (490 Гц), PCINT3, SPI MOSI
RESETPC6, вывод 29сброс микроконтроллера низким уровнем
GNDпитаниеобщий провод

Питание

Вход VIN Из VIN стабилизатор IC2 (LM1117IMPX-5.0) делает 5 В для микроконтроллера и контакта 5V. Arduino рекомендует подавать на VIN 7–12 В: ниже рекомендуемого стабилизатору не хватает запаса, выше — он сильнее греется.

От USB 5 В идут через самовосстанавливающийся предохранитель F1 (MFFSMF050) и диод Шоттки D1 (SS1P3L) на цепь 5 В. Диод не даёт напряжению со стабилизатора уйти в USB, когда плата питается от VIN.

Отдельной микросхемы стабилизатора 3,3 В на плате нет: по CAD-файлу контакт 3V3 соединён с выводом 17 (3V3OUT) преобразователя USB FT232RL — выходом его встроенного стабилизатора. Ток с этого контакта документация Arduino не называет, поэтому модули на 3,3 В с заметным потреблением лучше питать от своего стабилизатора.

Загрузка скетчей и сброс

Скетч загружается по USB через загрузчик в конце флеш-памяти. Настройки ядра Arduino (файл boards.txt):

Плата в Arduino IDEЗагрузчикСкоростьМеста для скетчаФьюзы L/H/E
ATmega328Poptiboot_atmega328.hex115200 бит/с30 720 байт0xFF/0xDA/0xFD
ATmega328P (Old Bootloader)ATmegaBOOT_168_atmega328.hex57600 бит/с30 720 байт0xFF/0xDA/0xFD

Что значит каждый бит фьюзов — в калькуляторе фьюзов AVR; прошить загрузчик заново можно программатором через разъём ICSP.

Перед загрузкой скетча компьютер сбрасывает микроконтроллер сам: вывод 2 (DTR#) преобразователя FT232RL соединён с RESET через конденсатор C4 100 нФ. Когда программа на компьютере открывает порт, на нём появляется перепад, конденсатор передаёт короткий импульс на RESET, и после сброса запускается загрузчик.

Светодиод L подключён к D13 напрямую через резистор 1 кОм (по CAD-файлу — резисторная сборка RP2): когда D13 работает как вход, светодиод с резистором остаётся нагрузкой на линии, и это нужно учитывать, например, при включённой подтяжке INPUT_PULLUP.

Микроконтроллер тактируется от керамического резонатора Y1 (16 МГц) на выводах XTAL1 и XTAL2.

Частые вопросы

Какие выводы Arduino Nano поддерживают ШИМ?

analogWrite() работает на выводах D3, D5, D6, D9, D10 и D11 — у них есть выходы сравнения таймеров. Частота ШИМ после init() ядра Arduino — около 490 Гц, у выводов таймера 0 — около 980 Гц; точные значения и регистры — в таблице контактов и в инструменте «Пины Arduino».

Какой ток можно брать с вывода Arduino Nano?

Arduino указывает 20 мА на вывод. Абсолютный предел ATmega328P по даташиту (DS40002061B, раздел 29.1) — 40 мА на вывод и 200 мА через выводы VCC и GND; работать на пределе нельзя, а светодиоды и реле подключают через резистор или транзистор.

Где у Arduino Nano шина I²C?

SCL — A5, SDA — A4.

Почему A6 и A7 у Arduino Nano не работают как цифровые?

Это отдельные входы АЦП микроконтроллера (ADC6 и ADC7) без порта ввода-вывода: в корпусах TQFP32 и QFN32 они есть, а в DIP28, как у Uno, их нет. analogRead(A6) и analogRead(A7) работают, а digitalRead() и pinMode() — нет.

Источники

Расположение контактов, цепи, детали питания и контур платы — из CAD-файлов Eagle, характеристики — из tech-specs.yml и даташита платы в документации Arduino (Arduino Nano, A000005), лицензия CC BY-SA 4.0. Рисунок и тексты — GAW, по фактам из этих файлов.

Номера выводов Arduino, ШИМ, прерывания и настройки загрузчика — ядро Arduino AVR Boards (коммит 11b9130): boards.txt и variants/*/pins_arduino.h. Выводы корпуса QFN32 — из атласа ATmega328P, предельные токи — из даташита ATmega48A/PA/88A/PA/168A/PA/328/P (DS40002061B). Лицензии и источники данных.

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