
Arduino Nano использует микроконтроллер ATmega328P, который может поставляться с пустой памятью или поврежденным загрузчиком. В таких случаях программирование напрямую через USB невозможно, и требуется программатор USBasp для восстановления функциональности платы.
Следующий шаг – выбор правильного программатора в среде Arduino IDE. USBasp необходимо указать как Tools → Programmer → USBasp. Для модели ATmega328P следует выбрать соответствующий вариант платы, например Arduino Nano (Old Bootloader), чтобы обеспечить совместимость с прошивкой.
Перед записью загрузчика рекомендуется проверить соединения мультиметром или логическим анализатором: это исключает короткие замыкания и неправильное расположение контактов, которые могут повредить микроконтроллер. Только после подтверждения корректности подключения можно запускать команду Burn Bootloader, которая автоматически запишет загрузчик и установит фьюзы микроконтроллера.
После успешной записи загрузчика плата готова к обычной работе через USB, а ошибки вроде «avrdude: stk500_getsync()» исчезают. Процесс можно повторять при необходимости, используя те же шаги, что гарантирует восстановление Nano без замены микроконтроллера.
Подготовка USBasp и проверка драйверов на ПК

Подключите USBasp к свободному USB-порту ПК. Для корректной работы требуется установка драйверов. На Windows 10/11 используйте Zadig (версия не ниже 2.6) для замены драйвера по умолчанию на «libusbK» или «WinUSB».
Запустите Zadig, в меню «Options» включите «List All Devices», выберите USBasp и установите драйвер «libusbK (v3.x.x)». После успешной установки появится сообщение «Driver installed successfully».
На Linux драйверы обычно встроены, но убедитесь, что текущий пользователь входит в группу «dialout» или «plugdev», чтобы получить права на доступ к USB. Команда для проверки: lsusb – USBasp должен отображаться как «Atmel Corp. USBasp».
После установки драйверов протестируйте связь с устройством через команду avrdude -c usbasp -p m328p. Если соединение установлено, отобразится информация о микроконтроллере, что подтверждает готовность к записи загрузчика.
Для стабильной работы используйте короткий USB-кабель без переходников. Не подключайте USBasp через USB-хабы с низким питанием, это может вызвать ошибки при прошивке.
Подключение Arduino Nano к USBasp корректно
Для правильного подключения Arduino Nano к USBasp используйте 10-контактный или 6-контактный разъем ISP. Убедитесь, что пины MISO, MOSI, SCK, RESET, VCC и GND соответствуют схеме программатора.
Подключайте VCC и GND только после проверки полярности. Неверное соединение может повредить плату. Если используется 3.3 В Arduino Nano, убедитесь, что USBasp поддерживает этот уровень напряжения или используйте преобразователь уровня.
Пин RESET Arduino Nano соединяется напрямую с выходом RESET USBasp. Не добавляйте конденсаторы или резисторы без необходимости, чтобы избежать сбоев программирования.
Для 6-контактного ISP ориентируйте разъем так, чтобы MISO на программаторе совпадал с MISO на Nano. Обычно красная метка на кабеле указывает VCC, которую подключают к 5 В на плате.
Перед подачей питания убедитесь, что контакты не имеют коротких замыканий. Для Nano с чипом CH340 подключение через USBasp не требует отключения USB-порта от компьютера, но убедитесь, что Arduino не питается одновременно от USB и программатора.
После подключения проверьте мультиметром наличие напряжения на VCC и GND, а также целостность сигнальных линий MISO, MOSI и SCK перед запуском записи загрузчика.
Настройка среды Arduino IDE для записи загрузчика

Установите последнюю версию Arduino IDE с официального сайта. Версия 2.2.0 и выше обеспечивает стабильную работу с USBasp. Запустите IDE и откройте меню Файл → Настройки. В поле Дополнительные ссылки для менеджера плат добавьте URL: https://downloads.arduino.cc/packages/package_index.json, если необходимо использовать нестандартные платы.
Перейдите в Инструменты → Плата → Менеджер плат и убедитесь, что установлена плата Arduino Nano с ядром ATmega328P (Old Bootloader), так как USBasp не поддерживает автоматическое переключение на новое ядро.
Подключите USBasp к компьютеру и убедитесь, что драйвер установлен. В Инструменты → Программатор выберите USBasp. Проверка соединения производится через Инструменты → Проверить соединение программатора (или кнопка «Проверить наличие платы» в некоторых версиях IDE).
Перед записью загрузчика рекомендуется проверить версию ядра и настройки тактовой частоты платы: ATmega328P, 16 MHz. Это обеспечит корректную работу после прошивки. Если IDE выдает ошибки типа «avrdude: stk500_recv(): programmer is not responding», проверьте питание Nano и переподключение USBasp.
После настройки плат и программатора в меню Инструменты → Записать загрузчик IDE выполнит прошивку bootloader через USBasp. В процессе будет отображен прогресс и статус. После завершения убедитесь, что плата правильно определяется в разделе Плата → Порт для дальнейшей загрузки скетчей через USB.
Выбор типа платы и процессора в Arduino IDE

Для корректной записи загрузчика через USBasp важно точно выбрать модель платы и микроконтроллера в Arduino IDE. Ошибочный выбор приведет к сбоям в программировании и возможному повреждению загрузчика.
Пошаговые действия:
- Откройте Arduino IDE и перейдите в меню Инструменты → Плата → Arduino AVR Boards.
- Выберите Arduino Nano. Если плата Nano более ранних выпусков, убедитесь, что выбран правильный процессор.
- Перейдите в меню Инструменты → Процессор и выберите соответствующую версию:
- ATmega328P – стандартный чип с 16 МГц, обычно встречается на платах после 2018 года.
- ATmega328P (Old Bootloader) – необходим для плат Nano до 2018 года или с оригинальным старым загрузчиком.
- Проверка: после выбора платы и процессора меню Инструменты → Программатор должно быть установлено на USBasp.
- Рекомендуется сверить маркировку микроконтроллера на плате Nano с выбранным процессором в IDE. На чипе ATmega328P старого выпуска стоит маркировка 328P-PU или 328P-AU.
Точное соответствие платы и процессора обеспечивает правильную конфигурацию fuses и стабильную запись загрузчика через USBasp без ошибок.
Запуск записи загрузчика и отслеживание ошибок

Подключите Arduino Nano к USBasp согласно распиновке: MOSI → D11, MISO → D12, SCK → D13, RESET → D10, GND и VCC. Убедитесь, что питание стабильное, напряжение соответствует 5 В.
Откройте Arduino IDE, в меню «Инструменты» выберите плату «Arduino Nano» и процессор ATmega328P (Old Bootloader при старых моделях). В поле «Программатор» выберите «USBasp».
Нажмите «Записать загрузчик». IDE начнет передачу данных через USBasp. Статус отображается в консоли, где указаны адреса флеш-памяти и шаги прошивки.
Если процесс останавливается с ошибкой «avrdude: stk500_recv(): programmer is not responding», проверьте подключение RESET к D10 и убедитесь, что драйвер USBasp установлен корректно. Переподключение кабеля часто решает проблему.
Ошибка «avrdude: initialization failed, rc=-1» указывает на неправильный выбор микроконтроллера или поврежденный загрузчик. В этом случае проверьте процессор в настройках и повторите попытку.
После успешной записи консоль IDE покажет «avrdude done. Thank you.» или аналогичное сообщение. Для проверки корректности работы загрузчика подключите Nano к USB и попробуйте загрузить пример Blink. Если плата реагирует, запись завершена корректно.
Проверка работы Arduino Nano после прошивки загрузчика

Подключите Arduino Nano к компьютеру через USB и убедитесь, что драйвер USB установлен корректно. В диспетчере устройств должно появиться новое COM-подключение.
Откройте Arduino IDE, в меню «Инструменты» выберите плату «Arduino Nano» и соответствующий процессор (ATmega328P или ATmega328P (Old Bootloader), в зависимости от версии платы). Выберите COM-порт, соответствующий Nano.
Для проверки загрузчика загрузите стандартный скетч «Blink» (Файл → Примеры → 01.Basics → Blink). Убедитесь, что пин LED соответствует встроенному светодиоду платы (обычно D13).
Нажмите «Загрузить». Если компиляция прошла без ошибок, а IDE успешно передала скетч на Nano, это подтверждает корректную работу загрузчика. Светодиод должен мигать с периодом около 1 секунды.
При появлении ошибки «avrdude: stk500_getsync()» или отсутствия COM-порта проверьте следующие моменты: исправность USB-кабеля, правильный выбор процессора и COM-порта, надежность соединения с USBasp при прошивке загрузчика.
Дополнительно можно проверить работу последовательного порта. Загрузите скетч «Serial → SerialEcho» и откройте монитор порта с настройкой скорости 9600 бод. Вводимые символы должны отображаться без искажений, что подтверждает корректность загрузчика и функционирование UART.
После успешной загрузки Blink и корректной работы последовательного порта Arduino Nano готов к дальнейшему использованию.
Вопрос-ответ:
Можно ли прошить загрузчик на Arduino Nano без USBasp через обычный USB-кабель?
Нет, через стандартный USB-кабель Arduino Nano прошивку загрузчика записать нельзя. USB-соединение используется для передачи скетчей через уже установленный загрузчик. Чтобы записать загрузчик, нужен программатор вроде USBasp или аналогичный, который напрямую подключается к контактам ISP на плате и позволяет управлять микроконтроллером на низком уровне.
Какие ошибки чаще всего возникают при записи загрузчика через USBasp и как их исправить?
Чаще всего появляются ошибки из-за неправильного подключения проводов к контактам ISP, использования некорректного напряжения или старых версий прошивальщика. Например, если питание Arduino не подключено, запись не стартует. Если выбрана неправильная модель платы в среде Arduino IDE, микроконтроллер может не распознаваться. Исправляется это проверкой соединений, правильной настройкой напряжения и обновлением драйверов USBasp.
Можно ли использовать USBasp с Nano версии CH340 и как это отразится на процессе записи загрузчика?
Да, можно. CH340 отвечает только за USB-соединение для передачи скетчей, на запись загрузчика это напрямую не влияет, так как USBasp подключается к контактам ISP. Нужно убедиться, что программатор подаёт питание на плату или что Nano подключен к внешнему источнику. После этого процесс записи идентичен моделям с другими USB-контроллерами.
Как проверить, что загрузчик записан на Arduino Nano успешно?
После записи загрузчика можно проверить плату, попробовав загрузить простой скетч через обычный USB. Если скетч загружается и Nano корректно отвечает на последовательные команды, значит загрузчик установлен правильно. Также можно использовать команду “Burn Bootloader” в Arduino IDE и наблюдать за сообщениями о успешной записи. Ошибки при этом укажут на проблемы с соединением или неисправный микроконтроллер.
Нужно ли менять кристалл на Arduino Nano при записи нового загрузчика?
Обычно менять кварцевый резонатор не требуется. Загрузка нового загрузчика производится под существующую частоту, указанную в Arduino IDE для конкретной модели Nano. Изменение кристалла понадобится только в случае, если микроконтроллер был изначально настроен на нестандартную частоту или повреждён основной кварц. В стандартных случаях достаточно правильно выбрать модель платы и частоту в настройках.
Почему Arduino Nano не определяется компьютером после попытки записи загрузчика через USBasp?
Если плата перестала определяться, причиной может быть несколько факторов. Во-первых, проверьте правильность подключения всех контактов между USBasp и Nano: MISO, MOSI, SCK, RESET, VCC и GND должны быть подключены точно по схеме. Во-вторых, убедитесь, что на компьютере установлены драйверы для USBasp и они корректно работают. Иногда конфликт могут вызывать другие устройства или версии драйверов. Также стоит проверить, не используется ли устаревшая версия прошивки на USBasp: некоторые платы Nano требуют обновления прошивки программатора. Наконец, обратите внимание на питание платы: если Nano получает недостаточно тока, запись загрузчика может не проходить, и плата не будет определяться.
