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-файлу платы. Выберите группу — её контакты подсветятся; наведите курсор на контакт, чтобы увидеть вывод микроконтроллера и его функции.
- ввод-вывод
- питание и земля
- сброс и выбор загрузки
- не подключён
- выбранная периферия
Контакты и выводы микроконтроллера
У каждого контакта — номер Arduino, вывод ATmega328P (порт и номер вывода в корпусе QFN32) и что с ним делает ядро Arduino. Соответствие проверено по трём источникам: цепям CAD-файла, распиновке корпуса в атласе и таблицам ядра Arduino AVR; подписи на плате совпадают с номерами. Код на регистрах для каждого вывода — в инструменте «Пины Arduino».
Цифровые выводы
| Контакт | Вывод МК | Что умеет |
|---|---|---|
| D1 | PD1, вывод 31 | PCINT17, Serial TX |
| D0 | PD0, вывод 30 | PCINT16, Serial RX |
| RESET | PC6, вывод 29 | сброс микроконтроллера низким уровнем |
| GND | питание | общий провод |
| D2 | PD2, вывод 32 | INT0, attachInterrupt(0), PCINT18 |
| D3 | PD3, вывод 1 | ШИМ OC2B (490 Гц), INT1, attachInterrupt(1), PCINT19 |
| D4 | PD4, вывод 2 | PCINT20 |
| D5 | PD5, вывод 9 | ШИМ OC0B (977 Гц), PCINT21 |
| D6 | PD6, вывод 10 | ШИМ OC0A (977 Гц), PCINT22 |
| D7 | PD7, вывод 11 | PCINT23 |
| D8 | PB0, вывод 12 | PCINT0 |
| D9 | PB1, вывод 13 | ШИМ OC1A (490 Гц), PCINT1 |
| D10 | PB2, вывод 14 | ШИМ OC1B (490 Гц), PCINT2, SPI SS |
| D11 | PB3, вывод 15 | ШИМ OC2A (490 Гц), PCINT3, SPI MOSI |
| D12 | PB4, вывод 16 | PCINT4, SPI MISO |
Аналоговые входы и питание
| Контакт | Вывод МК | Что умеет |
|---|---|---|
| VIN | питание | внешнее питание: вход стабилизатора 5 В |
| GND | питание | общий провод |
| RESET | PC6, вывод 29 | сброс микроконтроллера низким уровнем |
| 5V | питание | цепь 5 В платы: выход стабилизатора и питание микроконтроллера |
| A7 | ADC7, вывод 22 | АЦП, канал 7 |
| A6 | ADC6, вывод 19 | АЦП, канал 6 |
| A5 | PC5, вывод 28 | АЦП, канал 5, PCINT13, I2C SCL |
| A4 | PC4, вывод 27 | АЦП, канал 4, PCINT12, I2C SDA |
| A3 | PC3, вывод 26 | АЦП, канал 3, PCINT11 |
| A2 | PC2, вывод 25 | АЦП, канал 2, PCINT10 |
| A1 | PC1, вывод 24 | АЦП, канал 1, PCINT9 |
| A0 | PC0, вывод 23 | АЦП, канал 0, PCINT8 |
| AREF | AREF, вывод 20 | внешнее опорное напряжение АЦП |
| 3.3V | питание | 3,3 В для маломощных модулей |
| D13 | PB5, вывод 17 | PCINT5, SPI SCK, LED_BUILTIN |
ICSP ATmega328P
| Контакт | Вывод МК | Что умеет |
|---|---|---|
| MISO (D12) | PB4, вывод 16 | PCINT4, SPI MISO |
| 5V | питание | цепь 5 В платы: выход стабилизатора и питание микроконтроллера |
| SCK (D13) | PB5, вывод 17 | PCINT5, SPI SCK, LED_BUILTIN |
| MOSI (D11) | PB3, вывод 15 | ШИМ OC2A (490 Гц), PCINT3, SPI MOSI |
| RESET | PC6, вывод 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 |
|---|---|---|---|---|
| ATmega328P | optiboot_atmega328.hex | 115200 бит/с | 30 720 байт | 0xFF/0xDA/0xFD |
| ATmega328P (Old Bootloader) | ATmegaBOOT_168_atmega328.hex | 57600 бит/с | 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). Лицензии и источники данных.
Нашли ошибку на странице платы?
Инструменты и статьи
- Пины 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