Найти в Дзене
Электроника и жизнь

ATtiny13 и ATtiny85. Обзор и программирование с помощью Arduino.

Всем привет! В этой статье мы познакомимся с двумя микроконтроллерами семейства ATtiny: ATtiny13 и ATtiny85 и научимся их прошивать используя в качестве программатора Arduino UNO.

ATtiny13 20PU и ATtiny85 20PU
ATtiny13 20PU и ATtiny85 20PU

Собственно, эти микроконтроллеры младшие братья семейства ATMega, т.е. того самого семейства которые установлены в Ардуино. Например, ATmega328 – основа Arduino UNO, а ATmega2560 – основа Arduino Mega.

По внешнему виду оба данных микроконтроллера идентичны. Каждый имеет по 8 ножек, распиновка тоже практически одинаковая.

Распиновка
Распиновка

Основные для нас отличия заключаются в том, что ATtiny13 имеет 1КБ flash памяти (т.е. памяти для хранения программ), 64 байта оперативной памяти SRAM и 64 байта энергонезависимой памяти EEPROM. Тогда как ATtiny85 имеет 8КБ flash памяти и по 512 байт оперативной памяти и энергонезависимой памяти.

Сравнение ATtiny13, ATtiny85 и Arduino UNO
Сравнение ATtiny13, ATtiny85 и Arduino UNO

Еще одной особенностью является то, что цена ATtiny13 более чем в 2 раза ниже, чем ATtiny85. Поэтому, если для выполнения задачи характеристик ATtiny13 хватает, то лучше брать ее. Это удешевляет стоимость готового изделия.

Цена за 10 шт ATtiny13
Цена за 10 шт ATtiny13

Цена за 10 шт ATtiny85
Цена за 10 шт ATtiny85

С полным перечнем других отличий Вы можете ознакомиться на сайте Avr.ru. Там есть достаточно подробная сравнительная таблица.

В качестве программатора будем использовать Arduino UNO. Выбираем Файл -> Примеры -> ArduinoISP. И предварительно проверив, правильно ли у нас выбрана плата и COM порт, загружаем скетч в Ардуино. Теперь Arduino UNO работает в режиме программатора. Вывести его из данного режима можно просто загрузив любой другой скетч, например тот же Blink.

Выбор скетча для перевода Arduino UNO в режим программатора
Выбор скетча для перевода Arduino UNO в режим программатора

Начнем с ATtiny13. Размещаем ATtiny на макетной плате.

Тут важно заметить, что отсчет пинов ATtiny начинается с ножки, возле которой присутствует круглое углубление, либо треугольник, либо, как в данном случае, и то и другое. Отсчет ведется против часовой стрелки, таким образом, что восьмой пин, находится напротив первого.

Номера пинов ATtiny13 и ATtiny85
Номера пинов ATtiny13 и ATtiny85

Соединяем пин 1 ATtiny с 10 Ардуино, 4 - с землей, 5 – с 11, 6 – с 12, 7 – с 13, 8 – с выходом 5V Ардуино. С помощью конденсатора на 10 мкФ, соединяем reset и gnd Ардуино. Длинная плюсовая ножка к reset, а короткая минусовая к земле.

Схема соединения ATtiny и Arduino UNO
Схема соединения ATtiny и Arduino UNO

Возвращаемся в Arduino IDE. Открываем Файл -> Настройки. И в поле Дополнительные ссылки для Менеджера плат, вставляем ссылку для работы с ATtiny13:

https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json

Ссылка для Менеджера плат
Ссылка для Менеджера плат

Переходим в Инструменты -> Плата -> Менеджер плат. В списке находим нужный нам пакет для работы с ATtiny13 и нажимаем установить.

Далее открываем стандартный скетч Blink.

В соответствии с даташитом нулевой пин Ардуино соответствует 5 пину ATtiny. Привяжем стандартную константу LED_BUILTIN к нулевуму пину Ардуино, а в соответствии с даташитом, это у нас будет 5 ножка ATtiny.

Скетч Blink
Скетч Blink

В качестве Платы выбираем ATtiny13. Остальные все значения оставляем как есть.

Выбор ATtiny13
Выбор ATtiny13

Вначале в ATtiny нужно записать загрузчик. Уточняем, что в Инструментах -> Программатор выбрано Arduino as ISP. И нажимаем - Записать загрузчик. Это делается один раз.

Теперь загружаем сам скетч Blink в ATtiny. Выбираем Скетч -> Загрузить через программатор.

После загрузки скетча, подключаем длинную ножку светодиода к 5 пину ATtiny, а короткую через резистор 220 Ом соединяем с землей. Светодиод начинает мигать.

Собранная схема с ATtiny13 , Ардуино и мигающим светодиодом
Собранная схема с ATtiny13 , Ардуино и мигающим светодиодом

Теперь проделаем ту же процедуру с ATtiny85. Извлекаем из макетной платы ATtiny13 и на его место ставим ATtiny85.

Возвращаемся в Arduino IDE. И в Дополнительные ссылки для Менеджера плат, вставляем ссылку для работы с ATtiny85:

https://raw.githubusercontent.com/damellis/ATtiny/ide-1.6.x-boards-manager/package_damellis_ATtiny_index.json - ATtiny85

Переходим в Инструменты -> Плата -> Менеджер плат. И устанавливаем пакет для работы с ATtiny85.

В Платах выбираем - ATtiny25/45/85. Процессор - ATtiny85. Clock – internal 16 MHz.

Выбираем ATtiny85
Выбираем ATtiny85

В начале, как и в случае с ATtiny13, записываем в Загрузчик.

А далее загружаем сам скетч Blink в ATtiny85. Светодиод мигает.

Собранная схема с ATtiny85 , Ардуино и мигающим светодиодом
Собранная схема с ATtiny85 , Ардуино и мигающим светодиодом

В дальнейших проектах, там, где нам будет хватать характеристик ATtiny13, мы будем использовать именно его, а в более сложных проектах, будем использовать ATtiny85 и более мощные микроконтроллеры.

В следующей статье я расскажу, как работать с аналоговым портом ATtiny13, получать из него данные, обрабатывать и выдавать нужный нам результат в цифровой порт. Ниже размещено видео по материалам данной статьи.

_________________________________________________________

Спасибо, что дочитали до конца! Если статья понравилась, нажмите, пожалуйста, соответствующую кнопку. Если интересна тематика электроники и различных электронных самоделок, подписывайтесь на канал. До встречи в новых статьях!

Другие публикации по теме: