Микроконтроллер ATTiny2313 является возрождением в новой серии старого микроконтроллера AT90S2313, который в свое время вышел довольно удачным. ATTiny2313 улучшенный вариант своего предка. Но он также унаследовал и довольно скромную периферию. Так что, в плане функциональности ATTiny2313 скромноват. Микроконтроллер выпускается в двух вариантах – обычном (ATTiny2313) и с пониженным питанием (ATTiny2313V). За пониженное питание приходится платить понижением тактовой частоты микроконтроллера (более медленная работа).
Общие характеристики:
- 120 инструкций оптимизированных для программирования на языках высокого уровня;
- 32 регистра общего назначения (я тащусь от этого);
- почти каждая инструкция выполняется за 1 такт генератора, за счет чего быстродействие достигает 20 MIPS (20 миллионов операций за секунду);
- 2 килобайта флеш-памяти для программ. Флеш-память может программироваться прямо с контроллера (сама себя);
- 128 байт EEPROM (энергонезависимая память);
- 128 байт SRAM (оперативная память).
Что мы имеем на борту у этого чипа из периферии?
- один 8 битный таймер/счетчик;
- один 16 битный таймер/счетчик;
- четыре ШИМ канала;
- аналоговый компаратор;
- Watchdog таймер;
- USI универсальный последовательный интерфейс;
- USART (это компьютерный COM RS232).
Особые плюшки:
- внутрисхемная отладка по одному проводу debugWIRE;
- программирование по последовательному SPI интерфейсу;
- различные источники прерывания как внешние, так и внутренние, различные режимы экономии энергии, детектор понижения питания, встроенный задающий генератор.
Питание, частота:
1.8 – 5.5В (для ATTiny2313V) до 10МГц
2.7 – 5.5В (для ATTiny2313) до 20МГц
В рабочем режиме потребляет 230 мкА при питании 1.8 В и частоте задающего генератора 1МГц. В режиме энергосбережения Power-down кушает меньше 1мкА при 1.8В
Программирование
Для микроконтроллера наиболее удобен режим программирования по последовательному SPI интерфейсу. Именно им мы и будем пользоваться. Для реализации этого режима необходимо подключить микроконтроллер к программатору по SPI интерфейсу (MOSI, MISO, SCK, RESET, GRD), запитать микроконтроллер номинальным напряжением.
Микроконтроллер может программироваться прямо в рабочей схеме (внутрисхемное программирование) но при этом должно соблюдаться условие – линиям SPI интерфейса при программировании не должно ничего мешать (большие емкости, маленькие сопротивления относительно общего провода и т.д.). Более подробно почитать про внутрисхемное программирование и программаторы >
ATTiny2313 умудрился пережить еще одну ревизию и обзавелся буковкой А в конце. Из нововведений следует отметить:
— Появились внешние прерывания на всех ножках.
— Убрано разделение на обычное и низковольтное питание. ATTiny2313А может питаться от 1.8 до 5.5В, при этом лишь необходимо соблюдать ограничения по частоте от 4МГц (для 1.8В) до 20Мгц.
— Значительно уменьшено потребление тока, как в штатном режиме, так и в режимах энергосбережения – соответственно 190мкА и 0.1мкА.
Мало того, в результате последней ревизии — ATTiny2313 обзавелся старшим братом ATTiny4313 (без буковки А). Старший брат аналогичен ATTiny2313А за исключением в два раза увеличенной памяти (4 кбайт Flash, 256 байт EEPROM, 256 байт SRAM). Такие преобразования показывают намеренья Atmel продолжать поддерживать данный микроконтроллер.
По причине плохой доступности и непонятной цены новых версий ATTiny2313А и ATTiny4313 мои устройства будут разрабатываться на старом варианте ATTiny2313. Но так как новые версии совместимы со старыми то, теоретически, прошивки должны работать и на новых микроконтроллерах.
Выводы:
Как и все микроконтроллеры AVR серии ATTiny2313 производителен и экономичен. Имеет удобный для разводки платы и пайки корпус SOIC. Расстояния между ножками относительно большое (можно даже умудриться кинуть дорожку на плате между соседними ножками). Простой в изучении. Имеется много литературы на русском языке. Ввиду большой популярности предшественника AT90S2313 разработано много интересных схем в сети для повторения. Широко доступен в продаже. Недорог. Для начала изучения микроконтроллеров – самое то. Из недостатков стоит отметить довольно скромную периферию на сегодняшний день. И как обратная сторона достоинства — корпус SOIC немного великоват (хотя это я уже придираюсь). Небольшие объемы памяти не позволят сделать на ATTiny2313 масштабные проекты. В общем, неплохой высокопроизводительный контроллер для небольших проектов, не требующих особой периферии. В своих устройствах планирую использовать довольно широко по причине наилучшей доступности и дешевизны.
Даташит для ATTiny2313 можно скачать у меня:
[Загрузка не найдена]
Свежие Datasheets, Errata, Application Notes можно посмотреть на официальной страничке.
Вот касательно часов описывал немного.
http://www.getchip.net/posts/052-kak-zapustit-nerabotayushhijj-chasovojj-kvarc-32768-gc/
в общем ничего такого сложного. Указываешь какой режим, даешь команду SLEEP и МК засыпает и ждет сигнала к пробуждению (набор пробуждающих событий для каждого режима приведен в табличке даташита).
Приветствую. Может плохо искал. Не нашел ничего по теме сна для 2313. Как его, этот 2313 в режим сна загонять? Слишком глубокий сон я полагаю не нужен. Это нужно глубоко копать, и со временем опыт и знания будут. И это будет реализовано. Сейчас же задача наиболее простыми, и доступными средствами, снизить энергопотребление насколько это возможно. Какие приемы для этого есть? Применительно именно к 2313?
Спасибо за квалифицированный совет. Моя практика тоже говорит за то что с кварцем — надежней. Так оно и есть.
В моей практике на тини2313 UART работает без кварца безотказно (а это и есть допустимая девиация в пределах 10%), но это в «комнатных» условиях.
Для применения в таких экстремальных условиях как в автомобиле просто необходим кварц. А вообще для автомобильного применения атмел выпускает специальную серию контроллеров http://www.atmel.com/products/automotive/automotive_microcontrollers/avr-based_microcontroller.aspx
Приветствую друзья. Интересная микросхема, сделано на ней немало. В период освоения пытался работать с ней от внутреннего генератора. Но опыт был отрицательным. Но и опыта тогда совсем не было… Плыла частота от температуры, хотя может это я что либо делал не так. В связи с появлением нового кристалла ATTiny4313. Интересно поднять свои старые проекты ATTiny2313А, и перевести их на новый процессор. В связи с этим вопрос. Насколько надежно работает ATTiny2313А от внутреннего генератора? Есть ли опыт его использования скажем на улице (в корпусе конечно), в авто. С использованием именно внутреннего генератора. Речь не идет о каких либо скоростных приемо передатчиках. Важно что бы он не засыпал при отрицательных температурах. При перегреве, скажем под торпедой авто иногда ну очень жарко. И частота не уходила скажем плюс минус процентов 10. Тогда вопрос решился установкой кварца на 4-ре мгц и керамических конденсаторов 22 пф. Но не нравятся лишние компоненты на борту. Хотелось бы от них избавиться. Конечно. Я попробую сам, и первым делом в холодильник в морозильную камеру. На сутки. Потом, через часик, пока отойдет. Термофеном прогрею до 80 градусов цельсия. Но если у кого есть подобный опыт работы с внутренним генератором. Прошу подсказать.
Спасибо, исправил.
Опечатка «RS323»
Да, у меня тоже тини чуть дешевле меги8?!! Интересно почему так?
Жаль что сейчас смысла брать ATTINY2313A нет. Цена 11.35грн.
Уж лучше сразу ATMEGA8A-PU брать 11.50грн 🙂
Правда под 2313 в сети очень много готовых проэктов.
ATtiny2313-20PU и ATtiny2313-PU одно и тоже
Буковка А — кристалл изготовлен по последней технологии (совместимо с предыдущими).
Еще есть с буковкой L — пониженное питание и P — изготовлен по технологии ПикоПавер — пониженное питание и энергопотребление (выпускались до технологии A)
Чем отличаются МК ATtiny2313-20PU, ATtiny2313A, ATtiny2313-PU
Внутренний генератор конечно будет плавать от изменения напряжения, но очень незначительно. Считайте частоту постоянной.
Вот как проверить модуль UART:
http://www.getchip.net/posts/078-proverka-modulya-uart-attiny2313-testovaya-proshivka/
Играюсь с UART. поскольку последовательный порт на внешнем устройстве у меня работает на уровнях 3,3В, я, чтобы ничего не спалить, питаю тиньку от этих самых 3.3В, тактируя ее от внутренних часов. как правильнее прикинуть, как снижается при этом частота чипа? правильно ли я понимаю, что фактический baude rate тоже будет ниже заявленных 9600? и самое главное, должен ли я увидеть хотя бы какой-нибудь мусор при этом на внешнем устройстве? пока что я его не вижу. мусор на внешнем устройстве вижу только если замыкаю его пин rx на землю. эхо тест вроде бы тоже отрабатывается нормально.
как подручными средствами можно понять, выводится что-нибудь в uart порт тиньки вообще, или нет?
ну и насущное (видимо, чем буду заниматься завтра) — как правильно подключить внешний генератор?