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
Яндекс индекс цитирования