Всем привет! В этой статье мы познакомимся с двумя микроконтроллерами семейства ATtiny: ATtiny13 и ATtiny85 и научимся их прошивать используя в качестве программатора Arduino UNO.
Собственно, эти микроконтроллеры младшие братья семейства ATMega, т.е. того самого семейства которые установлены в Ардуино. Например, ATmega328 – основа Arduino UNO, а ATmega2560 – основа Arduino Mega.
По внешнему виду оба данных микроконтроллера идентичны. Каждый имеет по 8 ножек, распиновка тоже практически одинаковая.
Основные для нас отличия заключаются в том, что ATtiny13 имеет 1КБ flash памяти (т.е. памяти для хранения программ), 64 байта оперативной памяти SRAM и 64 байта энергонезависимой памяти EEPROM. Тогда как ATtiny85 имеет 8КБ flash памяти и по 512 байт оперативной памяти и энергонезависимой памяти.
Еще одной особенностью является то, что цена ATtiny13 более чем в 2 раза ниже, чем ATtiny85. Поэтому, если для выполнения задачи характеристик ATtiny13 хватает, то лучше брать ее. Это удешевляет стоимость готового изделия.
С полным перечнем других отличий Вы можете ознакомиться на сайте Avr.ru. Там есть достаточно подробная сравнительная таблица.
В качестве программатора будем использовать Arduino UNO. Выбираем Файл -> Примеры -> ArduinoISP. И предварительно проверив, правильно ли у нас выбрана плата и COM порт, загружаем скетч в Ардуино. Теперь Arduino UNO работает в режиме программатора. Вывести его из данного режима можно просто загрузив любой другой скетч, например тот же Blink.
Начнем с ATtiny13. Размещаем ATtiny на макетной плате.
Тут важно заметить, что отсчет пинов ATtiny начинается с ножки, возле которой присутствует круглое углубление, либо треугольник, либо, как в данном случае, и то и другое. Отсчет ведется против часовой стрелки, таким образом, что восьмой пин, находится напротив первого.
Соединяем пин 1 ATtiny с 10 Ардуино, 4 - с землей, 5 – с 11, 6 – с 12, 7 – с 13, 8 – с выходом 5V Ардуино. С помощью конденсатора на 10 мкФ, соединяем reset и gnd Ардуино. Длинная плюсовая ножка к reset, а короткая минусовая к земле.
Возвращаемся в Arduino IDE. Открываем Файл -> Настройки. И в поле Дополнительные ссылки для Менеджера плат, вставляем ссылку для работы с ATtiny13:
https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
Переходим в Инструменты -> Плата -> Менеджер плат. В списке находим нужный нам пакет для работы с ATtiny13 и нажимаем установить.
Далее открываем стандартный скетч Blink.
В соответствии с даташитом нулевой пин Ардуино соответствует 5 пину ATtiny. Привяжем стандартную константу LED_BUILTIN к нулевуму пину Ардуино, а в соответствии с даташитом, это у нас будет 5 ножка ATtiny.
В качестве Платы выбираем ATtiny13. Остальные все значения оставляем как есть.
Вначале в ATtiny нужно записать загрузчик. Уточняем, что в Инструментах -> Программатор выбрано Arduino as ISP. И нажимаем - Записать загрузчик. Это делается один раз.
Теперь загружаем сам скетч Blink в ATtiny. Выбираем Скетч -> Загрузить через программатор.
После загрузки скетча, подключаем длинную ножку светодиода к 5 пину ATtiny, а короткую через резистор 220 Ом соединяем с землей. Светодиод начинает мигать.
Теперь проделаем ту же процедуру с 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.
В начале, как и в случае с ATtiny13, записываем в Загрузчик.
А далее загружаем сам скетч Blink в ATtiny85. Светодиод мигает.
В дальнейших проектах, там, где нам будет хватать характеристик ATtiny13, мы будем использовать именно его, а в более сложных проектах, будем использовать ATtiny85 и более мощные микроконтроллеры.
В следующей статье я расскажу, как работать с аналоговым портом ATtiny13, получать из него данные, обрабатывать и выдавать нужный нам результат в цифровой порт. Ниже размещено видео по материалам данной статьи.
_________________________________________________________
Спасибо, что дочитали до конца! Если статья понравилась, нажмите, пожалуйста, соответствующую кнопку. Если интересна тематика электроники и различных электронных самоделок, подписывайтесь на канал. До встречи в новых статьях!
Другие публикации по теме:
- Что такое фоторезистор? Подключение фоторезистора к ATtiny13 и управление светодиодом.
- Создаем удобный модуль для программирования микроконтроллеров ATtiny.
- Регулируемое фотореле на ATtiny13 для уличного освещения своими руками.
- Управление яркостью светодиодной ленты с помощью ATtiny13.