Добавить в корзинуПозвонить
Найти в Дзене

Как заставить работать ATTiny13 c Arduino IDE

В этой статье расскажу о своих сложностях при первом знакомстве с этим микроконтроллером. Про ATtiny13 есть уже множество материалов в сети, я не буду повторять их, а расскажу о том, с чем я столкнулся. Хотя, материалов много (но они в основном о ATtiny85) и я думал, что для камня уже все есть, но в среде Arduino IDE мне не получилось установить загрузчик и прошивать микроконтроллер через UART. Но в итоге я расскажу как эту проблему решил. Все началось с того, что я думал, что ATtiny13 один из самых дешевых микроконтроллеров и отчасти это так, но правдивее это было 5 лет назад, сейчас этот камень уже не такой дешевый и на замену ему можно использовать CH32V003J4M6. Но не смотря на это, камни ко мне уже пришли и я хотел их попробовать. Вспомнил, что послужило причиной того, что я так подумал, что ATtiny такой дешевый. Это плата разработки, по-моему она называется digispark. (Но не важно, если поискать в сети отладочные платы для ATtiny13 вы её легко найдете.) Эту плату можно купить за 3
Оглавление

В этой статье расскажу о своих сложностях при первом знакомстве с этим микроконтроллером. Про ATtiny13 есть уже множество материалов в сети, я не буду повторять их, а расскажу о том, с чем я столкнулся.

Хотя, материалов много (но они в основном о ATtiny85) и я думал, что для камня уже все есть, но в среде Arduino IDE мне не получилось установить загрузчик и прошивать микроконтроллер через UART. Но в итоге я расскажу как эту проблему решил.

Тот самый микроконтроллер
Тот самый микроконтроллер

Все началось с того, что я думал, что ATtiny13 один из самых дешевых микроконтроллеров и отчасти это так, но правдивее это было 5 лет назад, сейчас этот камень уже не такой дешевый и на замену ему можно использовать CH32V003J4M6. Но не смотря на это, камни ко мне уже пришли и я хотел их попробовать.

Вспомнил, что послужило причиной того, что я так подумал, что ATtiny такой дешевый. Это плата разработки, по-моему она называется digispark. (Но не важно, если поискать в сети отладочные платы для ATtiny13 вы её легко найдете.) Эту плату можно купить за 30-80 рублей и я то думал, что все будет просто. А оказалось, что микроконтроллер для неё стоит в разы дороже, но кто знал.

Отладочная плата digispark
Отладочная плата digispark

Краткая история

В итоге я заказал макетку и камни на Алиэкспресс. Прочитал, что прошить их можно через другую плату ардуино, например, нано или с помощью программатора USBASP. Написал программу мигания светодиода и прошил ее через другую плату. Получилось, но когда я попытался прошить микроконтроллер через кнопку Upload, т.е. без программатора, ничего не работало. Загрузчик не отвечал. Дальше я узнал, что функционал прошивки загрузчика в Arduino IDE для ATtiny13 не работает. Её надо отдельно скачивать и прошивать через avrdude. Когда я так сделал, то все заработало.

Подробная история

Для работы с платой я использовал MicroCore. На странице библиотеки очень много полезной информации. Для меня главным были разделы про загрузчик и схемы подключения.

Устанавливаем библиотеку MicroCore в Arduino IDE. Выбираем программатор, например USB asp (slow) и прошиваем программу с мигающим светодиодом. Для удобства используем макетную плату и подсоединяем микроконтроллер к плате, как показано у Алекс Гайвера.

Схема подключения USBASP к отладочной плате
Схема подключения USBASP к отладочной плате

Светодиод расположен на пине PB1, как показано на схеме ниже (взятой отсюда).

Схема отладочной платы digispark
Схема отладочной платы digispark

Все должно получится. Даже работает функция прошивки загрузчика в Arduino IDE, но как я узнал позже, она только записывает фьюзы, а загрузчик не трогает. Т.е. если подключить микроконтроллер к USB-TTL адаптеру, как по схеме с загрузчиком, то будет вылезать ошибка “Warning: attempt 1 of 10: not in sync” при нажатии на кнопку Upload, т.е. обычной загрузке микроконтроллера. Забегая вперед эта ошибка означает, что микроконтроллер принимает с одной скоростью, а загрузчик настроен на другую или что загрузчика нету.

Схема для работы с MicroCore, здесь видно как подключать к USB-TTL
Схема для работы с MicroCore, здесь видно как подключать к USB-TTL

Решается это тем, что нужно установить загрузчик вручную, через AVRDUDE. Загрузчик можно взять со страницы Urboot, например, здесь. Выбираем тот, который размером с 352 байта, последний.

Загружаем с помощью AVRDUDE, для этого я использовал AVRDUDESS, например, как скриншотом ниже или можно использовать команду “avrdude.exe -c usbasp -p t13 -P usb -e -U flash:w:"urboot_attiny13a_pr_ee_ce.hex":i “ . После чего в Arduino IDE можно будет прошивать микроконтроллер с помощью кнопки Upload.

AVRDUDESS
AVRDUDESS

Еще такой нюанс, если выбрать другой загрузчик, с отличной скоростью, то Arduino IDE его не распознает, это связано с тем, что скорости зашиты в библиотеке MicroCore. Их посмотреть можно тут.

#attiny13 #микроконтроллеры #microcore #arduino