Курьер отдал коробку с Uno в обед, к вечеру у меня было свободное окно на два часа — и я потратил оба на одну вилку. Воткнул свежую плату в ноутбук и услышал тишину: ни нового окна, ни звука. Светодиод PWR горел, а дальше ничего. Я успел нагуглить себе «заводской брак», прочитать три ветки про возврат и уже составлял текст претензии, когда в ящике стола нашёлся второй кабель — от старого принтера. Вставил его, и система тут же пропищала: в диспетчере устройств выросла строка «Arduino Uno (COM3)». Первый кабель был зарядным: провода питания в нём есть, линии данных нет. Полчаса страховки — цена ста рублей экономии на шнуре.
Первое подключение платы — не «воткнул и работает», а короткий диалог из четырёх реплик: питание, вспышка светодиода, звук системы, новая строка в списке портов. Кто знает сценарий, по пропавшей реплике ставит диагноз за минуту: кабель без данных, дохлый порт или отсутствие драйвера. Кто не знает — лечит проблему переустановкой Windows, как советуют в половине ответов на форумах. Сценарий одинаков и для официальной платы, и для клона: различие в одном месте, где система решает, какой драйвер ей искать, — ниже я оговариваю такие места отдельно.
Здесь — ровно тот сценарий: что должно произойти за первые десять секунд, что означает каждая вспышка и где смотреть, если тишина. Среда к этому моменту уже стоит: её ставили в уроке про установку на Windows, общая карта «скачал, поставил, подключил» — в уроке про первое знакомство с IDE. Если плата — клон с чипом CH340, держите под рукой урок про невидимый драйвер CH340: сценарий тот же, но с одним лишним шагом посередине.
Первые десять секунд: четыре реплики платы
Реплика первая — питание. Штекер USB type B, квадратный «принтеровский», в плату, второй конец в порт компьютера — и светодиод PWR возле разъёма загорается мгновенно, без всяких драйверов: это чистая электрика, пять вольт с шины USB. Порту USB 2.0 по стандарту можно отдавать до 500 мА, Uno с её потреблением около сотни миллиампер даже со светодиодами не напрягает его и наполовину. Если PWR не горит, софт ни при чём: кабель, порт или хаб без питания.
Реплика вторая — вспышка L. При подаче питания и при каждом ресете большой светодиод L мигает два-три коротких раза: стартует бутлоадер, маленькая программа, которая после включения около секунды слушает порт, ожидая скетч от компьютера. Вспышка значит, что ядро живо и дышит. Когда позже вы зальёте свой скетч, вспышки при включении никуда не денутся: бутлоадер остаётся во флеше и всегда сначала сам отмечается, а потом уступает очередь вашему коду.
Реплики третья и четвёртая — со стороны компьютера. Windows издаёт знакомый сигнал подключения, macOS молча показывает уведомление, а в диспетчере устройств, в ветке «Порты (COM и LPT)», появляется строка «Arduino Uno (COM3)» — номер может быть любым. За превращение USB в последовательный порт отвечает отдельный микроконтроллер на плате, ATmega16U2: именно он и есть то устройство, которое видит система. У клонов вместо него стоит CH340, и строка выглядит иначе — к этому вернёмся ниже. Строку можно раскрыть и увидеть, на какой вкладке живёт устройство; при переподключении в тот же порт номер, как правило, сохраняется — Windows помнит устройство. А вот при смене разъёма номер иногда меняется: это не поломка, но помнить про это стоит, пригодится в следующем уроке.
| Что видите | Что это значит | Когда тревога |
|---|---|---|
| PWR горит сразу | Пять вольт с шины USB дошли до платы | Не горит — кабель, порт или хаб; софт ни при чём |
| L мигнула 2–3 раза при втыкании | Бутлоадер стартовал после ресета: ядро живо | Питание есть, вспышки нет — редкий, но серьёзный симптом |
| Звук или уведомление подключения | Система увидела USB-мост: 16U2 или CH340 | Тишина при живом PWR — почти всегда кабель без данных |
| Строка COM-порта в диспетчере | Драйвер встал, среде есть куда шить | «Неизвестное устройство» — драйвер не нашёлся, шаги ниже |
Теперь про вилку, на которой споткнулся я. Кабелей с type B в ящиках обычно три вида: честный шнур с четырьмя проводами, удлинитель и зарядный с двумя. Внешне они одинаковы, стоят одинаково, а разница — в судьбе целого вечера. Зарядные живут без линии данных вовсе: питание по ним идёт, данные идти не могут в принципе, и никакая установка драйверов это не изменит.
Проверка, которую я делаю до втыкания платы: подключить этим кабелем телефон — если он предлагает «передавать файлы», данные по шнуру ходят, он годится. Ещё один признак надлома: порт появляется и исчезает, если шевелить разъём у штекера. Хаб для первой платы я убираю в ящик: дешёвый хаб без своего питания режет и ток, и стабильность, а передние гнёзда системного блока бывают подключены криво. По моему опыту, половина «бракованных Uno» на поверку лечится вторым кабелем и портом на задней панели. Цвет гнезда тут не подсказка: синие и красные порты означают скорость USB 3.0, а не «качество» для платы — Uno равнодушна к скорости, ей хватает самой медленной версии шины. Разъёмы, заряжающие телефон, но не видящие его как устройство, встречаются и в мониторах, и в клавиатурах со встроенным хабом: плата в них тоже будет гореть PWR и молчать данными.
Если компьютер молчит: три проверки за пять минут
Порядок, который я повторяю с тех пор. Первый шаг — другой USB-порт, желательно на задней панели системника или на другой стороне ноутбука: часть фронтальных гнёзд подключена без линии данных или через слабый хаб. Второй шаг — другой кабель, заведомо проверенный на телефоне. Третий — другой компьютер: если там всё ожило, проблема в системе, а не в плате, и дальше копаем драйверы, а не железо.
Старый приём, который экономит минуты: открыть список портов в диспетчере устройств и шевелить кабель у обоих штекеров. Если строка COM-порта мигает, появляясь и пропадая, — кабель с надломом, диагностика закончена, идём за новым. Если порт на месте, но загрузка в него не идёт — это уже не про подключение, а про то, что среда смотрит не туда: такой случай разбирает следующий урок.
Отдельно про звук. Его отсутствие при живом PWR — самый честный симптом кабеля без линии данных: система буквально не видит, к чему её подключили. Ни перезагрузки, ни переустановки такой кабель не оживят — только замена. Если же молчат и второй компьютер, и второй кабель, дело почти всегда в драйвере или в самом мосте платы; перепрошивать 16U2 без программатора новичку не стоит — сначала пройдите тему драйверов из соседних уроков. А вот обратная ситуация, когда всё подключилось и порт есть, уже не диагностика, а работа: пора шить.
void setup() { Serial.begin(9600); pinMode(13, OUTPUT); Serial.println("cable test: start");} void loop() { digitalWrite(13, HIGH); Serial.print("led=1 t="); Serial.println(millis()); delay(300); digitalWrite(13, LOW); Serial.print("led=0 t="); Serial.println(millis()); delay(700);}Когда все четыре реплики на месте, плата готова, и проверять её логично тем же, чем проверяли себя: мигалкой. С нуля её собирают в уроке про мигание светодиодом, печать в монитор порта разобрана в уроке про первый запуск монитора, а сам ритуал «выбрал, нажал, загрузилось» — в уроке про первый скетч в IDE. На шитьё этого скетча на живую плату уйдёт меньше десяти секунд — долгим здесь бывает только ожидание первой компиляции. Суть простая: живой порт плюс живой бутлоадер — это всё железо, которое нужно для первой загрузки.
- 1. Воткнули плату: PWR горит, ни звука, ни новой строки в списке портов. Где искать в первую очередь?
- 2. Светодиод L мигнул два-три раза в момент, когда вы воткнули плату. Что произошло?
- 3. Какой узел платы превращает USB компьютера в COM-порт, который видит система?
- 4. PWR горит, в диспетчере устройств — «Неизвестное устройство». Что делать?
- Четыре реплики первого подключения: PWR горит сразу, L мигает 2–3 раза от бутлоадера, звук системы, строка COM-порта в диспетчере устройств
- Кабель USB type B обязан иметь линию данных; проверка телефоном «передавать файлы» отсеивает зарядные шнуры за десять секунд
- PWR отвечает за электрику, всё остальное — за данные: горит PWR и молчит система — ищите кабель или драйвер, не питание
- Порт в системе делает мост ATmega16U2 на официальных платах и CH340 на клонах — у них разные драйверы и разные подписи в списке
- Порядок диагностики: другой порт, другой кабель, другой компьютер; хабы и фронтальные гнёзла убираем в сторону до лучших времён
Частые вопросы по теме урока
- Воткнули плату: PWR горит, ни звука, ни новой строки в списке портов. Где искать в первую очередь?
- PWR — чистая электрика, ей данные не нужны. Если питание дошло, а система ничего не увидела, первым под подозрением кабель без линии данных, вторым — сам порт. Кабель: зарядный шнур имеет питание, но не имеет линии данных
- Светодиод L мигнул два-три раза в момент, когда вы воткнули плату. Что произошло?
- Ресет, бутлоадер, вспышки. Эти вспышки при каждом включении — признак живого ядра; позже ваш скетч встанет в очередь за бутлоадером, а вспышки останутся. После ресета стартовал бутлоадер: он около секунды слушает порт
- Какой узел платы превращает USB компьютера в COM-порт, который видит система?
- На официальной Uno мостом служит ATmega16U2. У клонов его место занимает CH340: драйверы разные, и строка в диспетчере устройств выглядит иначе. ATmega16U2 — отдельный микроконтроллер-мост
- PWR горит, в диспетчере устройств — «Неизвестное устройство». Что делать?
- Жёлтый знак — почти всегда драйвер. Но прежде чем его ставить, исключите кабель: замена шнура занимает десять секунд и отсекает половину таких случаев. Сначала второй кабель, затем драйвер: у клонов с CH340 его ставят отдельно