Если программатор USBasp или USBtinyISP определяется в диспетчере устройств Windows с жёлтым восклицательным знаком, а среды вроде AVRDUDE выдают ошибку «could not find USB device» — причина почти всегда в отсутствующем или неверно установленном драйвере USB ISP. Эти программаторы построены на программной реализации USB и не имеют штатной подписи Microsoft, поэтому система не ставит драйвер автоматически, как для обычной флешки.
Проблема решается вручную: через утилиту Zadig, установку пакета драйверов с сайта разработчика или отключение проверки цифровой подписи. Ниже разберём, какой драйвер нужен конкретному программатору, как его поставить на Windows 10 и 11 и что делать, если устройство всё равно не определяется.
Что такое USB ISP и зачем ему драйвер
ISP (In-System Programming) — это протокол внутрисхемного программирования микроконтроллеров, чаще всего семейства AVR (ATmega, ATtiny). Программатор USB ISP подключается к компьютеру по USB, а к целевому чипу — через шести- или десятипиновый разъём с линиями MOSI, MISO, SCK, RESET, VCC и GND.
В отличие от устройств с аппаратным USB-контроллером, популярные программаторы USBasp (на ATmega8) и USBtinyISP реализуют USB-стек программно. Для операционной системы это нестандартное USB-устройство класса vendor-specific, и универсального драйвера в Windows для него нет. Пока драйвер не установлен, ни AVRDUDE, ни Arduino IDE, ни Khazama AVR Programmer не увидят программатор.
Linux и macOS обычно не требуют установки драйвера для USBasp и USBtinyISP — там достаточно настроить права доступа через правила udev. Вся специфика ручной установки относится именно к Windows.
Какие программаторы требуют драйвер USB ISP
Прежде чем искать драйвер, определите модель программатора — от этого зависит и тип драйвера, и способ установки. Внешне устройства похожи, но работают по-разному.
- 🔧 USBasp — самый распространённый вариант на ATmega8/ATmega88; требует драйвер
libusb-win32илиlibusbK. - 🔌 USBtinyISP — программатор от Adafruit; использует собственный драйвер на базе libusb.
- 💠 AVRISP mkII — оригинальный программатор Atmel/Microchip; работает с фирменным драйвером из пакета Microchip Studio (ранее Atmel Studio), с libusb несовместим.
- 🧩 ST-Link, J-Link — это уже программаторы для STM32, а не AVR; у них свои драйверы и они не относятся к USB ISP для AVR.
Если на плате есть надпись вроде «USBasp» или характерный разъём ISP-10 — это почти наверняка клон USBasp. Точную модель можно уточнить по маркировке микросхемы на плате: у USBasp это ATmega8 или ATmega88.
Установка драйвера через Zadig
Самый надёжный способ поставить драйвер для USBasp и USBtinyISP на Windows 10/11 — утилита Zadig. Она подменяет стандартный драйвер устройства на libusb-win32 или libusbK, с которыми работает AVRDUDE.
Порядок действий:
- 📥 Скачайте Zadig с официального сайта проекта (утилита портативная, установки не требует).
- 🔌 Подключите программатор к USB-порту напрямую, без хабов.
- 🖱️ В Zadig откройте меню
Options → List All Devicesи выберите в спискеUSBaspилиUSBtiny. - ⚙️ В поле драйвера выберите
libusb-win32и нажмитеInstall Driver(илиReplace Driver).
☑️ Проверка после установки драйвера
После установки проверьте работу командой чтения сигнатуры микроконтроллера. Для ATmega328P она выглядит так:
avrdude -c usbasp -p m328p
Если драйвер встал корректно, AVRDUDE выведет сигнатуру чипа и сообщение об успешном завершении. Ошибка на этом этапе уже указывает не на драйвер, а на подключение к целевому микроконтроллеру.
⚠️ Внимание: не устанавливайте драйвер libusb для AVRISP mkII — после этого фирменная среда Microchip Studio перестанет видеть устройство. Для mkII используйте только драйвер из состава Microchip Studio, а если libusb уже установлен — удалите его через диспетчер устройств с галочкой «Удалить программы драйверов».
Альтернативные способы установки
Если Zadig по какой-то причине не подходит, есть другие варианты. Для USBasp на сайте разработчика (fischl.de) выложен готовый пакет драйверов usbasp-windriver. Его ставят вручную: в диспетчере устройств правой кнопкой по неопознанному устройству → Обновить драйвер → Найти драйверы на этом компьютере → указать папку с распакованным пакетом.
На 64-битных версиях Windows может понадобиться отключение проверки подписи драйверов, поскольку пакет не имеет действующей цифровой подписи Microsoft. Это делается через меню особыx вариантов загрузки: Параметры → Восстановление → Особые варианты загрузки, затем при перезагрузке выбрать пункт «Отключить обязательную проверку подписи драйверов». Учтите, что действие работает до следующей перезагрузки.
Сравнение драйверов и совместимость
Разные драйверы дают разную совместимость с софтом. Ориентируйтесь на таблицу ниже, выбирая вариант в Zadig:
| Драйвер | ПрограмматорСовместимость | Примечания | |
|---|---|---|---|
| libusb-win32 | USBasp, USBtinyISP | AVRDUDE, Khazama, Arduino IDE | Рекомендуемый вариант для USBasp |
| libusbK | USBasp | AVRDUDE | Альтернатива, если libusb-win32 не работает |
| WinUSB | USBasp (частично) | Ограниченная | Не все версии AVRDUDE его поддерживают |
| Драйвер Microchip | AVRISP mkII | Microchip Studio | Несовместим с libusb |
Если после установки одного варианта устройство не работает, драйвер можно заменить повторным запуском Zadig — утилита позволяет ставить драйвер «поверх» сколько угодно раз.
Частые проблемы и их решение
Даже с корректно установленным драйвером программатор может не работать. Разберём типичные сценарии.
Ошибка «target doesn't answer». Драйвер в порядке, но AVRDUDE не получает ответ от прошиваемого чипа. Проверьте правильность подключения линий MOSI/MISO/SCK/RESET, наличие питания на целевой плате (многие USBasp имеют перемычку подачи 5 В или 3.3 В на разъём) и исправность самого микроконтроллера. Возможная причина — ранее прошитые фьюзы, отключившие RESET или выбравшие внешний тактовый источник; тогда потребуется высоковольтный программатор.
Ошибка «cannot set sck period». Это предупреждение об устаревшей прошивке самого USBasp. Работе оно обычно не мешает, но обновление прошивки программатора (через второй программатор и перемычку самопрограммирования) устраняет сообщение и улучшает совместимость.
Устройство пропадает после обновления Windows. Крупные обновления системы иногда заменяют драйвер libusb на стандартный. Решение — повторная установка через Zadig.
⚠️ Внимание: перед прошивкой микроконтроллера убедитесь, что напряжение программатора соответствует напряжению целевой схемы. Подача 5 В на плату, рассчитанную на 3.3 В, может вывести компоненты из строя. Если на вашем USBasp есть перемычка выбора напряжения — проверьте её положение до подключения.
Как узнать версию прошивки USBasp
Подключите USBasp и выполните команду avrdude -c usbasp -p m8 без подключённой целевой платы. В выводе AVRDUDE часто отображается версия прошивки программатора. Если версия старая, появится предупреждение о невозможности установить частоту SCK — это косвенный признак устаревшей прошивки.
FAQ: частые вопросы о драйвере USB ISP
Где скачать драйвер USBasp для Windows 10 и 11?
Два рабочих источника: пакет usbasp-windriver с сайта разработчика fischl.de и утилита Zadig, которая ставит драйвер libusb-win32 автоматически. Второй вариант проще и надёжнее для большинства пользователей.
Почему диспетчер устройств показывает USBasp с восклицательным знаком?
Это нормальное состояние до установки драйвера: у устройства нет цифровой подписи Microsoft, и система не может подобрать драйвер сама. После установки через Zadig или вручную значок исчезает.
Нужен ли драйвер USB ISP на Linux?
Нет, ядро Linux поддерживает эти устройства через libusb без установки драйверов. Может понадобиться только добавить правило udev, чтобы AVRDUDE работал без прав root.
AVRDUDE пишет «could not find USB device usbasp» — что делать?
Сначала проверьте в диспетчере устройств, установлен ли драйвер libusb. Если установлен — попробуйте другой USB-порт, замените кабель и убедитесь, что устройство не занято другой программой. Также помогает повторная установка драйвера через Zadig с вариантом libusbK.
Можно ли использовать один драйвер для USBasp и AVRISP mkII одновременно?
Нет, у них разные драйверы: USBasp работает с libusb, а AVRISP mkII — только с фирменным драйвером Microchip. Установка libusb на mkII ломает его работу в Microchip Studio, поэтому важно не перепутать устройства в Zadig.