Не удалось загрузить код на digispark ATtiny 85 после обновления загрузчика

Я только что получил свой digispark ATtiny85 (кажется, модель B). Я использую Pop_OS для своего ПК, у меня была небольшая головная боль, когда arduino IDE распознает устройство, но после некоторых проб и ошибок я добился своего.

При загрузке скетча я получал ошибки стирания, и, если я правильно помню, это была ошибка -71.

Я не смог разобраться, но обнаружил, что мои платы поставляются с микронуклеусной прошивкой версии 1.6. Поэтому я обновился до последней версии v2.6. Теперь, когда я загружаю скетч, вывод выглядит следующим образом

Sketch uses 718 bytes (11%) of program storage space. Maximum is 6012 bytes.
Global variables use 9 bytes of dynamic memory.
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
Warning: device with unknown new version of Micronucleus detected.
This tool doesn't know how to upload to this new device. Updates may be available.
Device reports version as: 2.6
Warning: device with unknown new version of Micronucleus detected.
This tool doesn't know how to upload to this new device. Updates may be available.
Device reports version as: 2.6

Я понятия не имею, что делать дальше, так как кажется, что все должно быть в рабочей точке. Не знаю, как расшифровать фразу «Могут быть доступны обновления». Я использую последнюю версию IDE arduino с URL-адресом диспетчера платы digistump и последней прошивкой micronucleus для платы.

Я попытался перепрошить прошивку до версии 2.4 на тот случай, если прошивка была слишком новой для поддержки в arduino IDE, но я получил ту же ошибку, что и выше, но с другим номером версии.< /p>

, 👍2

Обсуждение

У вас установлена версия 1.6.7 (текущая) пакета платы digistump?, @timemage

@timemage да, я думаю, что знаю. Этот файл json http://digistump.com/package_digistump_index.json С Digispark (по умолчанию - 16,5 МГц) в качестве выбранной платы,, @shmink

*"Мои платы поставлялись с микронуклеусом версии 1.6"* Я предполагаю, что вы имели в виду 1.06. Насколько я могу судить, 1.6 никогда не была версией., @timemage


1 ответ


2

Кажется, последняя версия (1.6.7) пакета поддержки платы Digispark довольно старая, старше, чем я думал угадали. И поэтому он поставляется со старым инструментом программирования Micronucleus. Инструмент сравнивает основной номер версии прошивки как указано в версии USB-устройства. А поскольку инструмент Micronucleus в пакете 1.6.7 не ожидает ничего новее, чем основная версия 1, основная версия прошивки 2 не будет работать с ним.

У вас есть несколько вариантов.

Перепрограммировать старую прошивку (1.11)

Кажется, вы уже знакомы с записью файлов .hex. Итак, если вы хотите использовать последнюю официальную поддержку платы Digispark, вам необходимо записать шестнадцатеричный файл для Micronucleus версии 1.11. Я воспроизвел вашу ошибку, но с использованиемOLIMEXINO-85-ASM который очень похож на Digispark, но может не быть идентичным. После программирования micronucleus-1.11.hex плата заработала с официальный пакет поддержки платы Digispark.

Использовать ATTinyCore

Однако вы также можете просто отказаться от этого старого официального пакета и использовать ATTinyCore, который поставляется с загрузчиком Micronucleus, достаточно новым для программирования плата Digispark с Micronucleus 2.6. Это я тоже проверял.

Добавьте новый инструмент Micronucleus в свой старый официальный пакет поддержки

Вы можете заменить инструмент Micronucleus на новый в каталоге arduino15/packages/digistump/tools/micronucleus/2.0a4. Между прочим, я понятия не имею, откуда берется 2.0a4, но это никоим образом не указывает на Micronucleus 2.0, насколько я могу судить.

Для тестирования я установил на плату прошивку 2.6, а именно t85_default. hex и украл инструмент Micronucleus из последней директории инструментов пакетов плат ATTinyCore, переименовав существующий файл в символическую ссылку на другой:

$ pwd
/home/user/.arduino15/packages/digistump/tools/micronucleus/2.0a4
$ ls
launcher  micronucleus
$ mv -iv micronucleus micronucleus.backup
renamed 'micronucleus' -> 'micronucleus.backup'
$ ln -s ~/.arduino15/packages/ATTinyCore/tools/micronucleus/2.5-azd1b/micronucleus
$ readlink micronucleus
/home/user/.arduino15/packages/ATTinyCore/tools/micronucleus/2.5-azd1b/micronucleus
$

И это тоже работает.

,