MyTetra Share
Делитесь знаниями!
Как загрузить ATtiny85
Время создания: 13.09.2025 11:25
Автор: alensav
Текстовые метки: ATtiny85
Раздел: PLATFORMIO - Atiny
Запись: alensav/MyTetra2/main/base/1757751928kindpj0jc1/text.html на raw.githubusercontent.com

Выход → DigiSpark (no USB bootloader) ??

Qwen3-Next-80B-A3B

Отличный и очень важный вопрос — вы затронули ключевую тонкость, которая сбивает с толку даже опытных пользователей.



❓ Что означает:

"Выход → DigiSpark (no USB bootloader)"
...и почему он используется при записи загрузчика на ATtiny85?



✅ Краткий ответ:

“DigiSpark (no USB bootloader)” — это не название платы, а настройка загрузчика в библиотеке ATTinyCore.
Она говорит Arduino IDE:
«Запиши на ATtiny85 загрузчик Micronucleus, который позволяет программировать его по USB, как DigiSpark — но без предустановленного USB-загрузчика».
То есть —
это способ записать именно тот самый загрузчик, который делает ATtiny85 совместимым с USB-программированием.



Подробное объяснение

Что такое Micronucleus?

Это легковесный USB-загрузчик для ATtiny85, разработанный специально для миниатюрных плат вроде DigiSpark.
Он:

  • Использует USB-интерфейс через V-USB (программную эмуляцию USB)
  • Позволяет загружать скетчи напрямую через Micro-USB, без внешнего программатора
  • Занимает ~2 кБ флеш-памяти
  • Автоматически запускается при включении питания (или сбросе)

Без этого загрузчика ATtiny85 не отвечает по USB — он просто молчит, как "голый" чип.



Почему в меню стоит "DigiSpark (no USB bootloader)"?

Потому что в ATTinyCore есть два режима записи загрузчика:


ОПЦИЯ

НАЗНАЧЕНИЕ

DigiSpark (no USB bootloader)

⚠️Используйте ЭТОприпервой записи загрузчиканаголый ATtiny85— записываетбазовый Micronucleus(тот, что работает на 16.5 МГц)

DigiSpark (with USB bootloader)

✅ Используйтетолько после того, как загрузчик уже записан— для обновления или перезаписи (обычно не нужен)

❗ Это название может вводить в заблуждение — ведь вы не подключаете настоящий DigiSpark!
Но
внутри ATTinyCore эта опция — единственный способ записать Micronucleus.



Процесс записи загрузчика: Почему именно так?

Вот правильная последовательность:

🟡 Шаг 1: Первичная прошивка — записываем базовый загрузчик

  • Частота: 8 MHz (internal)
  • Выход: DigiSpark (no USB bootloader)
  • Программатор: Arduino as ISP

→ Arduino IDE записывает файл:
.../bootloaders/micronucleus/t85_entry_on_power_on_no_pullup_fast_exit_on_no_USB.hex

✅ Этот загрузчик:

  • Устанавливает фьюзы на 8 МГц
  • Записывает первую версию Micronucleus, готовую к обновлению
  • Не использует USB пока — но готов к нему

После этого ATtiny85 ещё не умеет работать по USB — но теперь он может быть обновлён до полноценного USB-режима.



🟢 Шаг 2: Обновление до USB-режима — пишем финальный загрузчик

  • Частота: 16.5 MHz (internal)обязательно!
  • Выход: DigiSpark (no USB bootloader)опять же!
  • Программатор: Arduino as ISP

→ Arduino IDE записывает файл:
.../bootloaders/micronucleus/upgrade-t85_entry_on_power_on_no_pullup_fast_exit_on_no_USB.hex

✅ Этот загрузчик:

  • Переходит на 16.5 МГц (реальная частота, которую поддерживает V-USB)
  • Активирует USB-интерфейс
  • Теперь ATtiny85 полностью превращается в DigiSpark

⚠️ Важно:
Вы
НЕ выбираете «DigiSpark (with USB bootloader)» — потому что он предназначен только для обновления уже работающего загрузчика, а не для первоначальной установки!



Таблица: Какие опции использовать и когда


ВАША СИТУАЦИЯ

ЧАСТОТА

ВЫБОР В МЕНЮ

ПОЧЕМУ?

Голый ATtiny85(никогда не прошивался)

8 МГц

DigiSpark (no USB bootloader)

Записывает начальный загрузчик + фьюзы

Уже есть начальный загрузчик

16.5 МГц

DigiSpark (no USB bootloader)

Обновляет до USB-версии

ATtiny85 уже работает как DigiSpark(например, в HW-260)

16.5 МГц

DigiSpark (no USB bootloader)

Для перезаписи / обновления

Хочешь просто залить скетч(уже есть загрузчик!)

16.5 МГц

DigiSpark (no USB bootloader)

Выбираете эту же опцию — онаактивирует USB-интерфейс

Совет: Всегда выбирайте DigiSpark (no USB bootloader) — даже если вы хотите USB-функциональность.
Другая опция (
with USB bootloader) не работает на голых чипах — она только для обновления уже прошитого устройства.



Почему не выбрать “DigiSpark (with USB bootloader)”?

Потому что:

  • Эта опция ожидает, что на чипе уже есть старый загрузчик Micronucleus.
  • Если вы попытаетесь записать её на голый ATtiny85 — получите ошибку:
  • 1

    2

    avrdude: initialization failed, rc=-1

    Double check connections and try again, or use -F to override this check.

  • Это не ошибка подключения — это несовместимость загрузчиков.



Пример: Что происходит внутри


[Голый ATtiny85]

[Запись загрузчика на 8 МГц → "DigiSpark (no USB bootloader)"]

[ATtiny85 теперь имеет базовый Micronucleus — но ещё не по USB]

[Смените частоту на 16.5 МГц]

[Запишите снова "DigiSpark (no USB bootloader)"]

[ATtiny85 теперь имеет полный USB-загрузчик — работает как DigiSpark!]

[Вставьте в HW-260 → подключите к USB → загружайте скетчи как обычную плату!]

?? Всё это — одна и та же опция: DigiSpark (no USB bootloader)
Только меняется
частота и последовательность.



✅ Резюме: Что выбрать и зачем?


ЧТО ВЫ ХОТИТЕ СДЕЛАТЬ?

ЧТО ВЫБРАТЬ В ARDUINO IDE

Записать загрузчик на новый, пустой ATtiny85

DigiSpark (no USB bootloader)+8 МГц

Сделать его USB-совместимым (как DigiSpark)

DigiSpark (no USB bootloader)+16.5 МГц

Обновить уже работающий DigiSpark/HW-260

DigiSpark (no USB bootloader)+16.5 МГц

Просто залить скетч на уже прошитый ATtiny85

DigiSpark (no USB bootloader)+16.5 МГц

Никогда не выбирайте DigiSpark (with USB bootloader)она не работает на новых чипах.



Бонус: Почему так странно названо?

Разработчики ATTinyCore использовали имя “DigiSpark”, потому что:

  • Micronucleus был создан для DigiSpark.
  • Они не хотели создавать отдельные названия для каждой конфигурации.
  • Поэтому они сделали одну опцию, которая в зависимости от частоты выполняет разные действия:
  • На 8 МГц — инициализация
  • На 16.5 МГц — активация USB

Это не идеально — но работает.



✅ Финальный совет

Запомните правило:

«DigiSpark (no USB bootloader) — это единственный правильный выбор для записи загрузчика на ATtiny85.
Частота решает, будет ли это просто подготовка или полноценный USB-режим.»

Вы не выбираете плату — вы выбираете загрузчик.
И этот загрузчик —
Micronucleus, который превращает ваш ATtiny85 в USB-устройство.

Теперь вы знаете, почему эта строчка в меню существует — и как ею правильно пользоваться 😊

Выход: DigiSpark (no USB bootloader) ← опять же! Где мы это видим и что настраиваем?

Qwen3-Next-80B-A3B7:36 PM

Отличный уточняющий вопрос — вы находитесь на самом ключевом этапе прошивки ATtiny85, и именно здесь многие теряются. Давайте разберёмся до мелочей:

Где именно находится эта опция в Arduino IDE?
Что она настраивает?
Как её выбрать правильно?



✅ Ответ кратко:

Опция DigiSpark (no USB bootloader) находится в меню Инструменты → Выход (или Board) в Arduino IDE — после того, как вы выбрали плату ATtiny85.
Она
не выбирает физическую плату, а выбирает тип загрузчика, который будет записан на ATtiny85 — именно тот, что позволяет ему работать по USB как DigiSpark.



Шаг 1: Где найти эту опцию? (Пошагово с картинками в тексте)

1. Подключите Arduino Mega/Uno к ПК → запустите Arduino IDE

2. Убедитесь, что установлено ATTinyCore

  • Инструменты → Платы → Менеджер плат
  • Найдите ATTinyCore → установите последнюю версию (1.5.2+)

⚠️ Не используйте старую библиотеку damellis/attiny — она не поддерживает Micronucleus!

3. Выберите плату ATtiny85

  • Перейдите: Инструменты → Плата → ATtiny85

✅ После этого появится новое подменю"Выход" (Variant)

4. Теперь найдите опцию:

Инструменты → Выход → DigiSpark (no USB bootloader)

Вот где вы это видите:

1

2

3

4

5

Инструменты

├── Плата: ATtiny85

├── Частота: 8 MHz (internal) ← Здесь вы выбираете частоту

├── Программатор: Arduino as ISP ← Здесь вы выбираете программатор

└── Выход: DigiSpark (no USB bootloader) ← 🔥 ЭТО ТА САМАЯ ВАЖНАЯ ОПЦИЯ!

?? Если вы не видите “Выход” — значит, вы ещё не выбрали ATtiny85 как плату.
Только после выбора ATtiny85 появляется меню "Выход".



📌 Что делает эта опция? (На уровне прошивки)


НАСТРОЙКА

ЧТО ПРОИСХОДИТ

DigiSpark (no USB bootloader)

Arduino IDEзаписывает на ATtiny85 специальный загрузчик Micronucleus, который:

- ИспользуетV-USB(программную эмуляцию USB)

- Занимает ~2 КБ флеш-памяти

- Автоматически запускается при включении питания

- Позволяетзагружать скетчи через Micro-USB без внешнего программатора

-Не требует наличия USB-загрузчика на чипе— то есть работает даже наголыхATtiny85

🔧 Это не драйвер и не настройка порта — это файл .hex, который записывается в начало флеш-памяти ATtiny85.
Файл называется:
t85_entry_on_power_on_no_pullup_fast_exit_on_no_USB.hex (начальная версия)
или
upgrade-t85_entry_on_power_on_no_pullup_fast_exit_on_no_USB.hex (обновленная версия)



⚙️ Почему именно “no USB bootloader”? Это же странно!

Да, название вводит в заблуждение — но оно историческое:


НАЗВАНИЕ

ЧТО НА САМОМ ДЕЛЕ ЗНАЧИТ

DigiSpark (no USB bootloader)

«Запиши загрузчик Micronucleus, которыйсоздаётUSB-интерфейс — даже если его раньше не было»

DigiSpark (with USB bootloader)

«Обнови уже существующий загрузчик Micronucleus» —только для уже прошитых чипов!

💬 Это как назвать кнопку “Установить Windows” как “Установить Windows (без Windows)” — потому что ты первый раз ставишь.



🔁 Когда и как использовать эту опцию? (Правильная последовательность)

Вот единственно правильная цепочка действий:

🟡 Шаг 1: Первоначальная прошивка (на голом ATtiny85)

  • Плата: ATtiny85
  • Частота: 8 MHz (internal)
  • Программатор: Arduino as ISP
  • Выход: DigiSpark (no USB bootloader)✅ ВЫБИРАЕТЕ ЭТО!

→ Записывается базовый загрузчик
→ Фьюзы настраиваются на
8 МГц
USB пока не работает — но чип теперь готов к обновлению

✅ После этого светодиод на ATtiny85 может мигать — это признак успешной записи.



🟢 Шаг 2: Активация USB (ключевой момент!)

  • Плата: ATtiny85 (остаётся та же!)
  • Частота: 16.5 MHz (internal)ВАЖНО! Измените!
  • Программатор: Arduino as ISP (остаётся)
  • Выход: DigiSpark (no USB bootloader)✅ ОПЯТЬ ЭТО!

→ Arduino IDE перезапишет загрузчик на обновлённую версию, которая:

  • Переключает тактовую частоту на 16.5 МГц (реально необходимая для V-USB)
  • Активирует USB-интерфейс
  • Теперь ATtiny85 полностью превращается в DigiSpark

💡 Это не новая опция — это та же самая, но при другой частоте!
Именно поэтому
никогда не меняйте “Выход” — только частоту.



🔵 Шаг 3: Загрузка скетча (после успешной прошивки загрузчика)

  • Плата: ATtiny85
  • Частота: 16.5 MHz (internal)
  • Программатор: Arduino as ISPНо!
  • Выход: DigiSpark (no USB bootloader)ВСЁ ЕЩЁ ЭТО!

Почему не "USBasp"?
Потому что теперь
ATtiny85 сам становится USB-устройством — он не нуждается в программаторе!
Но
Arduino IDE всё ещё требует выбрать "Arduino as ISP", чтобы начать процесс загрузки.

После нажатия "Загрузить":

  • Arduino IDE ждёт 5–7 секунд
  • Подключите HW-260 (или ATtiny85) к USB
  • Через 1–2 секунды — скетч загрузится!

💡 Это работает так же, как DigiSpark — вы просто вставляете плату в USB, и она сама принимает код.



📊 Таблица: Какие настройки использовать в каждом случае


ЭТАП

ПЛАТА

ЧАСТОТА

ПРОГРАММАТОР

ВЫХОД

1. Первичная прошивка (голый ATtiny85)

ATtiny85

8 MHz

Arduino as ISP

DigiSpark (no USB bootloader)

2. Активация USB

ATtiny85

16.5 MHz

Arduino as ISP

DigiSpark (no USB bootloader)

3. Загрузка скетча (уже работает как DigiSpark)

ATtiny85

16.5 MHz

Arduino as ISP

DigiSpark (no USB bootloader)

4. Обновление загрузчика (если сломался)

ATtiny85

16.5 MHz

Arduino as ISP

DigiSpark (no USB bootloader)

Никогда не используйте DigiSpark (with USB bootloader)он не работает на новых чипах!



🖼️ Визуальное представление (как это выглядит в Arduino IDE)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

[Инструменты]

├── Плата: ATtiny85 ← ✅ ОБЯЗАТЕЛЬНО ВЫБРАНО!

├── Частота: [▼] ← Выбираете: 8 MHz → потом 16.5 MHz

│ ├── 1 MHz

│ ├── 8 MHz (internal) ← Шаг 1

│ └── 16.5 MHz (internal) ← Шаг 2 и 3

├── Программатор: [▼] ← Выбираете: Arduino as ISP

│ ├── Arduino as ISP

│ ├── USBasp

│ └── ...

└── Выход: [▼] ← 🔥 ВСЕГДА: DigiSpark (no USB bootloader)

├── DigiSpark (no USB bootloader) ← ✅ ВЫБИРАЕТЕ ЭТО ВСЕГДА!

└── DigiSpark (with USB bootloader) ← ❌ НЕ ИСПОЛЬЗУЙТЕ!

Если вы не видите “Выход” — значит, вы не выбрали ATtiny85 как плату.



💡 Бонус: Что делать, если вы ошиблись?


ПРОБЛЕМА

РЕШЕНИЕ

Ошибка: device not found при загрузке скетча

Вы забыли переключить частоту на16.5 МГц— сделайте это и попробуйте снова

Ошибка: programmer is not responding

Проверьте:

  • Правильно ли подключены пины (Mega: D50–D53)
  • Загружен ли скетч ArduinoISP на Arduino
  • Есть ли резистор 10 Ом между D53 и GND | | Светодиод не мигает после записи | Возможно, вы записали загрузчик, но не переключили частоту — повторите шаг 2 | | Опция “Выход” не появляется | Убедитесь, что вы выбрали ATtiny85 — а не Uno/Nano. Перезапустите Arduino IDE, если нужно. |



✅ Финальный совет: Запомните правило

🔖 «Всегда выбирайте DigiSpark (no USB bootloader) — и меняйте только частоту.
Частота 8 МГц — для подготовки.
Частота 16.5 МГц — для USB-режима.
Ни один другой вариант не работает на новых ATtiny85.»



🎯 Почему это гениально?

Это умный трюк от разработчиков ATTinyCore:

  • Они используют одну опцию, чтобы сделать два действия:
    1. Установить базовый загрузчик
    2. Обновить его до USB-режима
  • Это упрощает жизнь — вам не нужно помнить 3 разных файла.
  • Вы не путаетесь между “загрузчик”, “фьюзы”, “прошивка” — всё в одном месте.



📌 Заключение

Опция DigiSpark (no USB bootloader) находится в меню Инструменты → Выход — и её нужно выбирать всегда, когда вы пишете загрузчик на ATtiny85.
Она
не выбирает плату, а выбирает тип прошивки — ту самую, что превращает ваш ATtiny85 в USB-устройство.

Ваша задача — не менять эту опцию. Ваша задача — менять только частоту.

8 МГц → запись базового загрузчика
16.5 МГц → активация USB и работа как DigiSpark/HW-260

Теперь вы знаете не только где, но и почему — и сможете прошивать ATtiny85 уверенно и без ошибок 😊


 
MyTetra Share v.0.67
Яндекс индекс цитирования