Здравствуйте, уважаемые читатели! В этой статье хочу рассказать о пожалуй третьем по популярности после ATtiny85 и ATtiny13 представителе данного семейства – микроконтроллере ATtiny2313.
Если мы попробуем вбить в Google название семейства, то он обязательно будет присутствовать в предлагаемых запросах.
Характеристики ATtiny2313
Начнем с характеристик. Первое, и самое очевидное отличие от микроконтроллеров, которые я рассматривал до этого, это число ножек. У ATtiny2313 их 20. Т.е. нам потенциально доступно 18 портов ввода-вывода. По сравнению с максимально 6-ю возможными у ATtiny13/25/45/85.
Данный микроконтроллер обладает 2 КБ флэш памяти, 128 байт оперативной памяти SRAM и таким же количеством энергонезависимой памяти EEPROM.
Кстати, у этого микроконтроллера есть брат-близнец, ATtiny4313 с которым они во всем одинаковы, кроме того, что ATtiny4313 обладает вдвое большим объемом всех видов памяти. 4КБ флэш памяти, 256 байт EEPROM и 256 байт SRAM. Это к тому, что если не хватит ресурсов памяти для работы вашего скетча на ATtiny 2313, можно его заменить на ATtiny 4313 и не придется менять код или устанавливать другую библиотеку.
ATtiny2313 располагает двумя таймерами – 8 битным и 16 битным, встроенным аналоговым компаратором, четырьмя ШИМ каналами и аппаратным UART. Это единственный из тех микроконтроллеров, семейства ATtiny, что я рассматривал ранее в своих статьях, содержит аппаратный UART. Т.е. нам доступен обмен данных с другим устройством по привычной двухпроводной схеме RX-TX как на Arduino UNO. И в том числе загрузка скетчей через USB-TTL конвертер.
Но есть у данного микроконтроллера и существенный минус – у него нет встроенной поддержки АЦП (аналогово-цифрового преобразования). Т.е. у него нет аналоговых пинов. Впрочем, если это очень нужно, можно подключить внешний АЦП или использовать другой микроконтроллер.
Важной особенностью данного микроконтроллера является его цена.
Для сравнения с другими популярными микроконтроллерами, я сделал вот такую таблицу.
Характеристики мы уже обсуждали, а последняя строка – это примерная цена на площадке AliExpress. Цены на AVR микроконтроллеры за последний год сильно увеличились, но соотношение цен сталось примерно одинаковым - ATtiny2313 не намного превышает по стоимости ATtiny13. Временами даже бывает дешевле.
Распиновка микроконтроллера ATtiny2313
Распиновка микроконтроллера ATtiny2313 выглядит следующим образом:
Первая ножка связана с Reset. Она же может превратится в 17 пин среды Arduino IDE если мы изменим фьюзы. Как это делается я рассказывал в отдельной статье (Что такое фьюзы? Как работать с фьюзами на микроконтроллерах AVR).
Далее у нас идут две ножки поддерживающие аппаратный UART. Т.е. RX и TX. Они занимают те же нулевой и первый пин, что и у Arduino UNO.
4-я и 5-я ножки служат для подключения внешнего источника тактирования (например, кварцевого резонатора).
Далее идут 2 ножки связанные с аппаратного прерыванием.
Внизу у нас, как обычно земля, а первая верхняя ножка в правом ряду – питание.
Ножки, обозначенные как 17, 18 и 19 мы будем использовать для прошивки микроконтроллера, используя SPI интерфейс которые используются при прошивке и так же используются для обмена данных по I2C интерфейсу.
Ниже идут два таймера Timer0 – 8 битный и Timer1 – 16 битный.
У модели 2313A все 18 цифровых пинов поддерживают программное прерывание. У модели 2313 без буквы A, программное прерывание доступно на 8 пинах.
Программирование микроконтроллера ATtiny2313
Как и в случае с другими AVR микроконтроллерами, пожалуй, кроме ATtiny10, для прошивки микроконтроллера ATtiny2313 мы можем использовать Arduino UNO в качестве ISP-программатора.
Так же можно использовать другие программаторы, такие как USBasp, AVRISP mkII и другие, поддерживающие SPI интерфейс.
Установка библиотеки для работы с ATtiny2313
Для начала, нужно установить библиотеку для работы с ATtiny2313:
https://github.com/SpenceKonde/ATTinyCore
Вообще, данная библиотека поддерживает очень много микроконтроллеров серии ATtiny. Но нас в данном видео интересует ATtiny2313.
Для добавления библиотеки в среду Arduino IDE, копируем данную ссылку - http://drazzy.com/package_drazzy.com_index.json
И добавляем ее в Дополнительные ссылки для менеджера плат.
Открываем Менеджер плат, находим библиотеку и добавляем ее в среду Arduino IDE.
После установки, в Платах нам становится доступна библиотека ATTinyCore с большим выбором микроконтроллеров, в т.ч. ATtiny2313.
Важно! Рекомендуемая для работы с библиотекой версия среды Arduino IDE 1.8.13 и выше.
Прошивка ATtiny2313 с помощью Arduino UNO
И так, перейдем к прошивке микроконтроллера. Первый вариант – используя Arduino UNO в качестве ISP программатора.
Для этого подключаем Ардуино к компьютеру и из примеров выбираем и загружаем скетч ArduinoISP. Далее подключаем Arduino UNO к ATtiny2313 по следующей схеме:
В среде Arduino IDE Инструменты – Плата выбираем нашу ATtiny2313.
Чип у нас ATtiny 2313/2313A.
Т.к. для данного микроконтроллера в библиотеке нет загрузчика (т.е. вместе с загрузкой скетча загрузчик не запишется), мы будем использовать загрузчик среды Arduino IDE.
Программатор выбираем Arduino as ISP.
Нажимаем Записать загрузчик.
После этого можем загружать скетчи в ATtiny2313, нажимая кнопку Загрузить через программатор.
Прошивка ATtiny2313 с помощью USBasp программатора
Теперь попробуем загрузить скетч с помощью, USBasp программатора. Подключим USBasp программатор по следующей схеме.
В выборе плату у нас остается всё по старому, только Программатор у нас будет USBasp.
Скетч загружается аналогичным прошлому случаю способом, нажимая кнопку Загрузить через программатор.
Ниже можно посмотреть видео по материалам статьи:
_________________________________________________________
Спасибо, что дочитали до конца! Если статья понравилась, нажмите, пожалуйста, соответствующую кнопку. Если интересна тематика электроники и различных электронных самоделок, подписывайтесь на канал. До встречи в новых статьях!
Другие публикации по теме:
- USBasp программатор. Обзор, установка драйвера, прошивка микроконтроллера
- Что такое фьюзы? Как работать с фьюзами на микроконтроллерах AVR
- ATtiny13 и ATtiny85. Обзор и программирование с помощью Arduino.
- Создаем удобный модуль для программирования микроконтроллеров ATtiny
- Программирование ATtiny10 с помощью USBasp программатора