Всем привет. В этой статье я хочу рассказать о компактных, недорогих и все еще актуальных микроконтроллерах ATtiny13A и работу с ними в среде Arduino IDE.
Микроконтроллер ATtiny13 и плата переходник для него.
Прежде всего остановимся на характеристиках микроконтроллера. ATtiny13 выпускается в корпусах, как для выводного (DIP8) так и для поверхностного монтажа (SOIC8). Я выбрал для себя второй вариант.
ATtiny13 в корпусе для поверхностного монтажа.
Ниже перечислены некоторые характеристики Attiny13:
- Частота 128 KHz — 9.6 MHz. До 20 MHz при внешнем генераторе. (по умолчанию частота 1.2 MHz).
- Напряжение питания 1.8 – 5.5 V.
- Flash память для программ — 1k.
- SRAM (Оперативная память) — 64b.
- EEPROM (энергонезависимая память) — 64b.
- Цифровые пины — 6 шт
- Аналоговые пины — 4 шт
- Таймер – 1шт (шим может работать одновременно только на одном пине из двух)
Интерфейсов SPI, UART, I2C нет. На самом деле характеристики достаточно скудные, но для простых задач их вполне достаточно. Основные особенности – малое количество памяти для программ и малое количество пинов (всего доступно 6 шт). Но это плата за компактность и малую стоимость.
Микроконтроллер ATtiny13 и язык Arduino. Подключение и прошивка.
Переходим к программированию. Нам понадобится: Arduino IDE с установленным ядром для ATtiny13. Плата Arduino в нашем случае Arduino Nano, желательно макетная плата и провода для нее. Если микроконтроллер у вас в корпусе для поверхностного монтажа, то рекомендую заказать или сделать переходник на DIP8. Так же желательны: конденсатор на 10мкФ, конденсатор на 0.1 мкФ и резистор на 10 кОм.
В первую очередь установим и настроим Arduino IDE. Если Arduino IDE уже установлена переходим к следующему этапу. Если нет – скачиваем последнюю версию с официального сайта ( https://www.arduino.cc/en/software ). У меня версия 2.0.3.
Для того, чтобы работать с ATtiny13 в среде Arduino IDE, нужно установить так называемое ядро. Дело в том, что изначально Arduino IDE может работать только с платами ардуино. Для этого открываем Arduino IDE, нажимаем Файл/Параметры – откроется окно с параметрами. Кстати, там же можно выбрать темную тему приложения (как у меня).
Источник: dzen.ru
Прошивка и программирование ATtiny13 при помощи Arduino UPD 17.03.2016
Всем привет. Уже давно появился способ программировать маленькие, дешёвые, экономичные к питанию и доступные микроконтроллеры ATtiny13A.
Вот собственно всё то что ниже, только в видео формате:
Сегодня расскажу, как я зашиваю Arduino’вские скетчи в ATtiny13A.
Итак, для начала нам нужно скачать вот этот архив (взято и совсем чуть-чуть доделано отсюда), положить файлы по адресу «DocumentsArduinohardware». Должно получится что-то типа «C:UsersАдминистраторDocumentsArduinohardwareattiny13avrcorescore13».
Учимся писать прошивки.
Перезапускаем Arduino IDE если она запущена на данный момент, это нужно для того, чтобы среда добавила новый микроконтроллер в список плат.
Обязательно проверяем, правильно ли у нас выбрано «расположение папки со скетчами» (посмотреть можно во вкладке «Файл/Настройки»):
Туда нам будет нужно распаковать архив с ядром для ATtiny13.
Теперь прошьём в дуинку ArduinoISP из примеров Arduino IDE:
Потом подключаем ATtiny13 к Arduino, как показано на картинке:
Потом нужно изменить тип программатора на Arduino as ISP, как показано на скриншоте:
Теперь мы можем выбрать, на какой частоте может работать микроконтроллер ATtiny13.
С завода ATtiny13 работает на частоте в 1.2 МГц, то есть микроконтроллер тактируется от внутренней RC- цепочки на частоте в 9.6 МГц и включён делитель на 8, поэтому я указал частоту в 1.2 МГц как дефолтную:
Как видим, доступные частоты — 1.2 МГц, 4.8 МГц и 9.6 МГц. Для изменения частоты нам нужно нажать на кнопку «Записать загрузчик», которая располагается в вкладке «Сервис».
Что же среда делает при нажатии на кнопку «Записать загрузчик»?
Arduino IDE в данном случае просто выставляет нужные фьюзы микроконтроллера.
К примеру, мне нужно, чтобы ATtiny13 работал на частоте в 4.8 мГц, я выбираю нужную мне частоту и только один раз жму кнопку «Записать загрузчик» — всё. Теперь микроконтроллер будет всегда работать на заданной частоте, если будет нужно изменить частоту опять — проделываем описанную выше процедуру.
Сразу скажу, что рост частоты приведёт за собой рост потребления контроллера, чем чаще переключаются транзисторы в микроконтроллере тем больше он потребляет.
Для каких-то там мигалок, я считаю, выполнение 1.2 миллиона инструкций будет с лихвой, да и на такой частоте микроконтроллер потребляет около 1 миллиампера, вот можете посмотреть скрин из даташита:
Минимальное рабочее напряжение, при котором ATtiny13 сохраняет работоспособность — 1.8 В, причем гарантировано будет работать, в данном случае, только на частоте в 1.2 МГц.
Итак, зашьем для начала почти родной начинающим ардуинщикам пример blink, ну как же без него?
Как вы уже заметили, скетч стал заметно легче, чем для Arduino Uno. Это связано с тем, что урезаны большинство Arduino’вских функций ну и они немного больше оптимизированные.
поддерживаются следующие функции:
pinMode()
digitalWrite()
digitalRead()
analogRead()
analogReference(INTERNAL) / (EXTERNAL)
shiftOut()
pulseIn()
analogWrite()
millis()
micros()
delay()
delayMicroseconds()
Итак, как мы только что увидели, нам доступно всего 1024 байта. Мало ли это? Ну, смотря для каких задач. Если, например, для каких-то там мигалок, пищалок или индикаторов, думаю, будет вполне достаточно, хотя можно даже что-то посерьёзней сварганить, особенно если познакомится с AVR-Cи.
Распиновка микроконтроллера из даташита:
К примеру, PB4 — это то же, что и pin 4, или просто 4.
Аналоговые входы — все, на которых пишет ADC*, например PB4 — это есть ADC2, то есть для того, чтобы считать напряжение, пишем analogRead(A2); или просто analogRead(2);, аппаратный ШИМ поддерживают только порты 0 и 1.
UPD0: добавил ссылку как экономить место на микроконтроллере и как моделировать Arduino в программе Proteus:
Источник: habr.com
Программирование ATTINY13 / ATTINY13A в Arduino IDE
Несмотря на то, что микроконтроллеры семейства ATtiny чрезвычайно дешёвые и при этом считаются очень полезными, всё равно ощущается острый недостаток проектов и руководств по применению этих микросхем. Из этого руководства вы узнаете, как создавать приложения для микроконтроллера ATtiny13 и загружать их посредством среды разработки Arduino IDE.
Прежде всего, ATtiny13 — это 8‑битный микроконтроллер КМОП с низким энергопотреблением на базе усовершенствованной RISC-архитектуры AVR. После приобретения компании Atmel компанией Microchip новый микроконтроллер ATtiny13 по-прежнему находится в производстве.
Выполняя мощные инструкции за один тактовый цикл, микроконтроллер ATtiny13 достигает производительность в 1 миллион операций в секунду на 1 МГц, позволяя разработчикам систем сбалансировать энергопотребление и скорость обработки.
Для проекта нам понадобятся следующие компоненты:
- Плата Arduino (Uno или другая)
- Микроконтроллер ATtiny13 / ATtiny13A
- Макетная плата
- Проволочные перемычки
Схема подключения
Соедините элементы, как показано на нижеследующей схеме, созданной с помощью программы Fritzing (полный обзор программы по ссылке).
Чтобы подсоединить компоненты друг с другом вам в первую очередь понадобится расположить микросхему ATtiny, как показано на схеме.
Сначала нужно соединить вывод 5V платы Arduino и вывод 8 микроконтроллера ATtiny. Затем соедините соответствующие выводы платы и микроконтроллера: GND к 4, 13 к 7, 12 к 6, 11 к 5 и, наконец, 10 к 1.
Программирование микроконтроллера ATtiny13
Для загрузки программы в микроконтроллер ATtiny13 нам необходимо настроить плату Arduino в режим программатора. Это можно сделать, загрузив готовый пример ArduinoISP в плату, выбрав пункт меню Файл > Примеры > ArduinoISP (File > Examples > ArduinoISP) в среде разработки.
Теперь наша плата Arduino готова запрограммировать микроконтроллер ATtiny13, но нам ещё нужно настроить среду разработки для работы с ATtiny13, установив специальные файлы. В этом руководстве отдаётся предпочтение файлам от пользователя sleepmanj.
Для установки этих файлов запустите среду Arduino IDE и выберите пункт меню Файл > Настройки (File > Preferences). Скопируйте следующий адрес в поле «Дополнительные ссылки для Менеджера плат» (Additional Boards Manager URLs): https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json. Если у вас уже есть ссылка в этом поле, то можно добавить новую, отделив её от прежней запятой и пробелом.
Теперь зайдите в меню Инструменты > Плата (Tools > Board) и щёлкните на пункте «Менеджер плат» (Boards Manager). Теперь прокрутите вниз, пока не увидите плату DIY ATtiny, установите её файлы, нажав кнопку «Установка» (Install).
Источник: voltiq.ru