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

Микроконтроллер ATtiny2313. Обзор, программирование, сравнение с другими микроконтроллерами

Здравствуйте, уважаемые читатели! В этой статье хочу рассказать о пожалуй третьем по популярности после ATtiny85 и ATtiny13 представителе данного семейства – микроконтроллере ATtiny2313. Если мы попробуем вбить в Google название семейства, то он обязательно будет присутствовать в предлагаемых запросах. Характеристики ATtiny2313 Начнем с характеристик. Первое, и самое очевидное отличие от микроконтроллеров, которые я рассматривал до этого, это число ножек. У ATtiny2313 их 20. Т.е. нам потенциально доступно 18 портов ввода-вывода. По сравнению с максимально 6-ю возможными у ATtiny13/25/45/85. Данный микроконтроллер обладает 2 КБ флэш памяти, 128 байт оперативной памяти SRAM и таким же количеством энергонезависимой памяти EEPROM. Кстати, у этого микроконтроллера есть брат-близнец, ATtiny4313 с которым они во всем одинаковы, кроме того, что ATtiny4313 обладает вдвое большим объемом всех видов памяти. 4КБ флэш памяти, 256 байт EEPROM и 256 байт SRAM. Это к тому, что если не хватит ресурсов
Оглавление

Здравствуйте, уважаемые читатели! В этой статье хочу рассказать о пожалуй третьем по популярности после ATtiny85 и ATtiny13 представителе данного семейства – микроконтроллере ATtiny2313.

Микроконтроллер ATtiny2313
Микроконтроллер ATtiny2313

Если мы попробуем вбить в Google название семейства, то он обязательно будет присутствовать в предлагаемых запросах.

Характеристики ATtiny2313

Начнем с характеристик. Первое, и самое очевидное отличие от микроконтроллеров, которые я рассматривал до этого, это число ножек. У ATtiny2313 их 20. Т.е. нам потенциально доступно 18 портов ввода-вывода. По сравнению с максимально 6-ю возможными у ATtiny13/25/45/85.

Характеристики ATtiny2313
Характеристики ATtiny2313

Данный микроконтроллер обладает 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 конвертер.

Но есть у данного микроконтроллера и существенный минус – у него нет встроенной поддержки АЦП (аналогово-цифрового преобразования). Т.е. у него нет аналоговых пинов. Впрочем, если это очень нужно, можно подключить внешний АЦП или использовать другой микроконтроллер.

Важной особенностью данного микроконтроллера является его цена.

Для сравнения с другими популярными микроконтроллерами, я сделал вот такую таблицу.

Сравнение ATtiny2313 с другими популярными микроконтроллерами семейства ATtiny
Сравнение ATtiny2313 с другими популярными микроконтроллерами семейства ATtiny

Характеристики мы уже обсуждали, а последняя строка – это примерная цена на площадке AliExpress. Цены на AVR микроконтроллеры за последний год сильно увеличились, но соотношение цен сталось примерно одинаковым - ATtiny2313 не намного превышает по стоимости ATtiny13. Временами даже бывает дешевле.

Распиновка микроконтроллера ATtiny2313

Распиновка микроконтроллера ATtiny2313 выглядит следующим образом:

Распиновка микроконтроллера 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

Библиотека для работы с ATtiny2313
Библиотека для работы с ATtiny2313

Вообще, данная библиотека поддерживает очень много микроконтроллеров серии ATtiny. Но нас в данном видео интересует ATtiny2313.

Для добавления библиотеки в среду Arduino IDE, копируем данную ссылку - http://drazzy.com/package_drazzy.com_index.json

И добавляем ее в Дополнительные ссылки для менеджера плат.

Дополнительные ссылки для менеджера плат
Дополнительные ссылки для менеджера плат

Открываем Менеджер плат, находим библиотеку и добавляем ее в среду Arduino IDE.

Менеджер плат
Менеджер плат

После установки, в Платах нам становится доступна библиотека ATTinyCore с большим выбором микроконтроллеров, в т.ч. ATtiny2313.

Поддерживаемые библиотекой ATTinyCore микроконтроллеры
Поддерживаемые библиотекой ATTinyCore микроконтроллеры

Важно! Рекомендуемая для работы с библиотекой версия среды Arduino IDE 1.8.13 и выше.

Прошивка ATtiny2313 с помощью Arduino UNO

И так, перейдем к прошивке микроконтроллера. Первый вариант – используя Arduino UNO в качестве ISP программатора.

Для этого подключаем Ардуино к компьютеру и из примеров выбираем и загружаем скетч ArduinoISP. Далее подключаем Arduino UNO к ATtiny2313 по следующей схеме:

Схема подключения Arduino UNO к ATtiny2313
Схема подключения Arduino UNO к ATtiny2313

В среде Arduino IDE Инструменты – Плата выбираем нашу ATtiny2313.

Чип у нас ATtiny 2313/2313A.

Выбор параметров
Выбор параметров

Т.к. для данного микроконтроллера в библиотеке нет загрузчика (т.е. вместе с загрузкой скетча загрузчик не запишется), мы будем использовать загрузчик среды Arduino IDE.

Программатор выбираем Arduino as ISP.

Нажимаем Записать загрузчик.

После этого можем загружать скетчи в ATtiny2313, нажимая кнопку Загрузить через программатор.

Прошивка ATtiny2313 с помощью USBasp программатора

Теперь попробуем загрузить скетч с помощью, USBasp программатора. Подключим USBasp программатор по следующей схеме.

Схема подключения USBasp программатора к ATtiny2313
Схема подключения USBasp программатора к ATtiny2313

В выборе плату у нас остается всё по старому, только Программатор у нас будет USBasp.

Скетч загружается аналогичным прошлому случаю способом, нажимая кнопку Загрузить через программатор.

Ниже можно посмотреть видео по материалам статьи:

_________________________________________________________

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

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

  • USBasp программатор. Обзор, установка драйвера, прошивка микроконтроллера
  • Что такое фьюзы? Как работать с фьюзами на микроконтроллерах AVR
  • ATtiny13 и ATtiny85. Обзор и программирование с помощью Arduino.
  • Создаем удобный модуль для программирования микроконтроллеров ATtiny
  • Программирование ATtiny10 с помощью USBasp программатора