Платка размером с почтовую марку пришла в конверте без единого разъёма под USB — и это был не брак. Arduino Pro Mini устроена так нарочно: из платы выкинули USB-чип, разъём и всю обвязку вокруг них, оставив ATmega328P, регулятор питания и ряды ножек. Первый вечер с такой платой у меня кончился тупиком: кабель воткнуть некуда, а в голове один вопрос — чем её вообще прошивать. Идея не в экономии ради экономии: такие платы ставят внутрь устройств, где USB нужен ровно один раз — на первую прошивку.
Ответ — отдельный USB-TTL адаптер за пару долларов, который превращает USB-порт компьютера в три полезных провода: передатчик, приёмник и линию DTR для автосброса. Здесь я развожу провода по местам (TX и RX идут крест-накрест, и это грабля номер один), разбираю два варианта платы — 5 В/16 МГц и 3,3 В/8 МГц — и складываю сравнение с Nano и Uno в таблицу. Механику заливки через порт и её типовые заторы я уже собирал в уроке про Old Bootloader у Nano — без повторов, только то, что отличает Pro Mini.
Почему на плате нет USB: размер и цена
Uno и Nano неспроста толще: на каждой сидит отдельный чип-посредник между USB и UART — ATmega16U2 на Uno, CH340 или FT232 на клонах Nano, — плюс кварц для него и разъём. Pro Mini этот слой снимает: на её плате 33×18 мм — примерно треть площади Nano — остаются только микроконтроллер, регулятор и пины, вес — пара граммов. Клон на маркетплейсах укладывается в 2-4 доллара; оригинал SparkFun стоит 11,25 $, и переплата ровно за то, за что плату и любят: компактность для постоянной установки внутрь устройства, где USB не нужен вовсе.
Оборотная сторона — адаптер, который придётся держать под рукой: без него Pro Mini глухая. Модули на CH340 или FT232RL стоят 2-3 доллара, и с ними вы получаете те же истории с драйвером, что и у клонов Nano: если порт не виден в меню, лечение то же самое — я разбирал его в уроке про драйвер CH340. Зато появляется провод, которого нет у обычных плат: DTR, про него дальше. Если сомневаетесь, оригинал перед вами или клон, у меня есть урок про отличия клона и оригинала, а таблица ниже складывает три платы рядом.
| Параметр | Pro Mini | Nano | Uno |
|---|---|---|---|
| Цена клона на маркетплейсах | 2-4 $ | 3-5 $ | 6-10 $ |
| Габариты | 33×18 мм | 45×18 мм | 69×54 мм |
| USB на плате | нет — нужен USB-TTL адаптер | mini-USB и чип CH340/FT232 | USB-B и чип ATmega16U2 |
| Варианты питания | Raw: 5-12 В (5-вольтовая) или 3,4-12 В (3,3-вольтовая) | USB или Vin 7-12 В | USB или Vin 7-12 В |
| Кому подходит | вшить в устройство и забыть | макетки с прошивкой по USB | старт, щедрые пины, шилды |
Таблицу стоит читать через задачу. Для первых месяцев с макеткой честнее Nano: USB на борту, воткнул и шьёшь, а цена та же. Pro Mini покупают под финал: макет уже собран и проверен, остался шаг «перенести это в устройство». Мой сценарий выглядел так: прототип на Uno, а в корпусе живёт Pro Mini с тем же чипом — скетч заливается без единой правки, потому что железо внутри одинаковое: тот же ATmega328P, те же 32 КБ флеша, 2 КБ ОЗУ и 1 КБ EEPROM. Разница только в питании и в способе доставки прошивки.
Распиновка адаптера: крест-накрест и DTR
Проводов пять, и два из них идут крестом. TX адаптера — его передатчик — идёт в RX платы, то есть в приёмник; RX адаптера — в TX платы. Я держу в голове картинку с телефоном: у каждого собеседника есть рот и ухо, и рот одного соединяется с ухом другого. Соедините рот с ртом — оба говорят и оба оглохли: плата и адаптер в такой схеме не слышат друг друга, а IDE печатает, что программатор не отвечает. Это самая частая грабля Pro Mini, лечится перекрещиванием двух проводов.
DTR — линия автосброса. При обычной заливке IDE дёргает DTR, плата перезапускается, и загрузчик успевает открыть своё окно приёма — порядок старта заливки я показывал в уроке про выбор платы и порта. На Pro Mini контакт DTR сидит на краю платы и заведён на RESET через конденсатор 100 нФ, уже впаянный на плату: адаптер просто дёргает этот контакт, и автосброс работает без лишних деталей на проводе. Если у вашего адаптера DTR нет — не беда: зажмите Reset, нажмите «Загрузить» и отпустите кнопку, когда компиляция кончилась. Руками вы делаете ровно то, что DTR делает сам.
Питание — два контакта, и здесь прячется выбор, который легко испортить плату. У адаптеров на FT232 и CH340 есть джампер 5V/3.3V: он переключает и уровень сигналов, и напряжение на выводе VCC. Для 5-вольтовой Pro Mini джампер ставится на 5 В, для 3,3-вольтовой — на 3,3 В, и это не мелочь: пять вольт на ножках чипа, рассчитанного на 3,3 В, молча убивают чип. GND общий для всего — без него не заведётся даже правильная схема.
- Соедините VCC адаптера с VCC платы и GND с GND; джампер напряжения — под ваш вариант платы.
- TX адаптера — в RX платы, RX адаптера — в TX платы: крест-накрест.
- DTR адаптера — в контакт DTR на краю платы, если он у адаптера есть.
- «Инструменты → Плата»: Arduino Pro or Pro Mini; «Процессор»: ATmega328P (5V, 16MHz) или (3.3V, 8MHz) — под маркировку вашего кварца.
- «Инструменты → Порт» — адаптер; «Программатор» не трогайте: заливка идёт через UART, как у обычных плат.
- Нажмите «Загрузить» и следите за огоньками TX/RX на адаптере: бегут — прошивка уходит в плату.
const int LED = 12;const int BTN = 2; void setup() { pinMode(LED, OUTPUT); pinMode(BTN, INPUT); Serial.begin(9600); digitalWrite(LED, HIGH); // двойная вспышка при старте: delay(150); // знак, что прошивка встала digitalWrite(LED, LOW); delay(150); digitalWrite(LED, HIGH); delay(150); digitalWrite(LED, LOW); Serial.println("Pro Mini onlayn: D2 knopka, D12 led");} void loop() { if (digitalRead(BTN) == HIGH) { digitalWrite(LED, HIGH); Serial.println("btn=1 led=on"); } else { digitalWrite(LED, LOW); } delay(100);}Варианты платы различаются ещё на заводе, и различие видно по кварцу — серому бочонку возле края платы: маркировка 16.000 означает 5 В и 16 МГц, 8.000 — 3,3 В и 8 МГц. Даташит ATmega328P обещает честные 20 МГц только при питании около 5 В, поэтому 3,3-вольтовая версия живёт на 8 МГц и не притворяется быстрой. Выбор делается в меню «Процессор», и он же задаёт скорость заливки: 5-вольтовая шьётся на 115200 бод, 3,3-вольтовая — на 57600. Перепутанный пункт меню даёт молчащего программатора — симптом тот же, что и у перепутанных TX/RX, поэтому проверяйте обе вещи подряд.
Что взять — зависит от питания проекта. 5 В/16 МГц совместима с привычной макетной логикой Uno: датчики, дисплеи, сервоприводы. 3,3 В/8 МГц экономнее, дружит с батарейками и с 3,3-вольтовой электроникой, где 5-вольтовые сигналы на входе уже опасны. Вычисления на 8 МГц идут вдвое медленнее, но delay(1000) остаётся секундой: константы такта прописаны в ядре под каждый вариант, и тайминги не уплывают. Собираете плату в объёмный макет? Тогда рядом пригодится урок про макетку — длинные ряды Pro Mini удобно раскладывать по обеим рельсам.
Отдельный плюс 3,3-вольтовой версии — энергопотребление. Активный чип на 5 В берёт единицы миллиампер, а в глубоком сне ATmega328P падает до микроампер — на паре батареек AA устройство со сном живёт месяцами, и 3,3 В здесь лишняя причина не поднимать напряжение. У 5-вольтовой версии сон тоже работает, но батарейки кончаются заметно раньше, поэтому батарейные проекты я собираю на 3,3 В сразу и не перекраиваю потом.
- На Pro Mini нет USB-чипа и разъёма — отсюда 33×18 мм и 2-4 доллара за клон; прошивают через внешний USB-TTL адаптер на CH340 или FT232
- TX и RX идут крест-накрест: передатчик каждого — в приёмник другого; DTR адаптера дёргает автосброс через впаянный на плату конденсатор 100 нФ
- Два варианта платы: 5 В/16 МГц (заливка 115200) и 3,3 В/8 МГц (заливка 57600) — различаются маркировкой кварца и пунктом «Процессор»
- Джампер 5V/3.3V на адаптере переключает и уровень сигналов, и питание VCC: пять вольт на 3,3-вольтовом чипе молча его убивают
- Без DTR шьют вручную: зажать Reset, нажать «Загрузить», отпустить после компиляции
- 1. Чем приходится платить за отсутствие USB-чипа на Pro Mini?
- 2. Куда идёт TX адаптера?
- 3. У вас Pro Mini с кварцем на 8.000 и питанием 3,3 В. Что выбрать в меню «Процессор»?
- 4. Зачем на Pro Mini линия DTR?
- 5. На какой скорости общается с IDE 3,3-вольтовая Pro Mini на 8 МГц?
Частые вопросы по теме урока
- Чем приходится платить за отсутствие USB-чипа на Pro Mini?
- Прошивка и Serial идут через внешний адаптер на CH340 или FT232, а ему нужен драйвер — те же грабли, что у клонов Nano. Питание от адаптера при этом работает, а по UART плату шьют как обычную. нужен внешний USB-TTL адаптер и его драйвер
- Куда идёт TX адаптера?
- Сериальние линии соединяются крест-накрест: TX одного участника — в RX другого. Ровные соединения TX-TX и RX-RX оставляют обоих глухими, и IDE печатает молчание программатора. TX к RX — передатчик в приёмник платы
- У вас Pro Mini с кварцем на 8.000 и питанием 3,3 В. Что выбрать в меню «Процессор»?
- Пункт процессора задаёт частоту такта и скорость заливки: для 8 МГц это 57600 бод. Пятовольтовый пункт стучится на 115200, где 3,3-вольтовый загрузчик никого не ждёт. ATmega328P (3.3V, 8MHz) — под маркировку кварца
- Зачем на Pro Mini линия DTR?
- DTR через конденсатор 100 нФ на плате дёргает RESET перед заливкой, и загрузчик открывает окно приёма. Нет DTR — тот же сброс делают вручную кнопкой Reset. автосброс: IDE дёргает DTR, плата перезапускается и слушает порт
- На какой скорости общается с IDE 3,3-вольтовая Pro Mini на 8 МГц?
- Загрузчик 8-мегагерцовой версии слушает на 57600. Скорость зашита в ядре под каждый вариант платы и выбирается пунктом «Процессор», отдельно её не ставят. 57600 бод — пункт процессора 3.3V 8MHz выбирает её сам