Как написать программу для микроконтроллера attiny13

Всем привет. В этой статье я хочу рассказать о компактных, недорогих и все еще актуальных микроконтроллерах 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 если она запущена на данный момент, это нужно для того, чтобы среда добавила новый микроконтроллер в список плат.

Обязательно проверяем, правильно ли у нас выбрано «расположение папки со скетчами» (посмотреть можно во вкладке «Файл/Настройки»):

image

Туда нам будет нужно распаковать архив с ядром для ATtiny13.

Теперь прошьём в дуинку ArduinoISP из примеров Arduino IDE:

image

Потом подключаем ATtiny13 к Arduino, как показано на картинке:

image

Потом нужно изменить тип программатора на Arduino as ISP, как показано на скриншоте:

image

Теперь мы можем выбрать, на какой частоте может работать микроконтроллер ATtiny13.
С завода ATtiny13 работает на частоте в 1.2 МГц, то есть микроконтроллер тактируется от внутренней RC- цепочки на частоте в 9.6 МГц и включён делитель на 8, поэтому я указал частоту в 1.2 МГц как дефолтную:

image

Как видим, доступные частоты — 1.2 МГц, 4.8 МГц и 9.6 МГц. Для изменения частоты нам нужно нажать на кнопку «Записать загрузчик», которая располагается в вкладке «Сервис».

Что же среда делает при нажатии на кнопку «Записать загрузчик»?

Arduino IDE в данном случае просто выставляет нужные фьюзы микроконтроллера.
К примеру, мне нужно, чтобы ATtiny13 работал на частоте в 4.8 мГц, я выбираю нужную мне частоту и только один раз жму кнопку «Записать загрузчик» — всё. Теперь микроконтроллер будет всегда работать на заданной частоте, если будет нужно изменить частоту опять — проделываем описанную выше процедуру.

Читайте также:
Программа для плота готова напиши код для велосипеда и переберись на другой берег

Сразу скажу, что рост частоты приведёт за собой рост потребления контроллера, чем чаще переключаются транзисторы в микроконтроллере тем больше он потребляет.
Для каких-то там мигалок, я считаю, выполнение 1.2 миллиона инструкций будет с лихвой, да и на такой частоте микроконтроллер потребляет около 1 миллиампера, вот можете посмотреть скрин из даташита:

image

Минимальное рабочее напряжение, при котором ATtiny13 сохраняет работоспособность — 1.8 В, причем гарантировано будет работать, в данном случае, только на частоте в 1.2 МГц.

Итак, зашьем для начала почти родной начинающим ардуинщикам пример blink, ну как же без него?

image

Как вы уже заметили, скетч стал заметно легче, чем для Arduino Uno. Это связано с тем, что урезаны большинство Arduino’вских функций ну и они немного больше оптимизированные.

поддерживаются следующие функции:

pinMode()
digitalWrite()
digitalRead()
analogRead()
analogReference(INTERNAL) / (EXTERNAL)
shiftOut()
pulseIn()
analogWrite()
millis()
micros()
delay()
delayMicroseconds()

Итак, как мы только что увидели, нам доступно всего 1024 байта. Мало ли это? Ну, смотря для каких задач. Если, например, для каких-то там мигалок, пищалок или индикаторов, думаю, будет вполне достаточно, хотя можно даже что-то посерьёзней сварганить, особенно если познакомится с AVR-Cи.

Распиновка микроконтроллера из даташита:

image

К примеру, PB4 — это то же, что и pin 4, или просто 4.
Аналоговые входы — все, на которых пишет ADC*, например PB4 — это есть ADC2, то есть для того, чтобы считать напряжение, пишем analogRead(A2); или просто analogRead(2);, аппаратный ШИМ поддерживают только порты 0 и 1.

UPD0: добавил ссылку как экономить место на микроконтроллере и как моделировать Arduino в программе Proteus:

Источник: habr.com

Программирование ATTINY13 / ATTINY13A в Arduino IDE

Программирование ATTINY13 / ATTINY13A в Arduino IDE

Несмотря на то, что микроконтроллеры семейства ATtiny чрезвычайно дешёвые и при этом считаются очень полезными, всё равно ощущается острый недостаток проектов и руководств по применению этих микросхем. Из этого руководства вы узнаете, как создавать приложения для микроконтроллера ATtiny13 и загружать их посредством среды разработки Arduino IDE.

Читайте также:
Кого вчера раскрыли в программе маска

Прежде всего, ATtiny13 — это 8‑битный микроконтроллер КМОП с низким энергопотреблением на базе усовершенствованной RISC-архитектуры AVR. После приобретения компании Atmel компанией Microchip новый микроконтроллер ATtiny13 по-прежнему находится в производстве.

Создание приложений для ATTINY13/ATTINY13A в среде Arduino IDE

ATTINY13 распиновка

Выполняя мощные инструкции за один тактовый цикл, микроконтроллер ATtiny13 достигает производительность в 1 миллион операций в секунду на 1 МГц, позволяя разработчикам систем сбалансировать энергопотребление и скорость обработки.

Для проекта нам понадобятся следующие компоненты:

  • Плата Arduino (Uno или другая)
  • Микроконтроллер ATtiny13 / ATtiny13A
  • Макетная плата
  • Проволочные перемычки

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

Соедините элементы, как показано на нижеследующей схеме, созданной с помощью программы Fritzing (полный обзор программы по ссылке).

Создание приложений для ATTINY13/ATTINY13A в среде Arduino IDE

Чтобы подсоединить компоненты друг с другом вам в первую очередь понадобится расположить микросхему ATtiny, как показано на схеме.

Сначала нужно соединить вывод 5V платы Arduino и вывод 8 микроконтроллера ATtiny. Затем соедините соответствующие выводы платы и микроконтроллера: GND к 4, 13 к 7, 12 к 6, 11 к 5 и, наконец, 10 к 1.

Программирование микроконтроллера ATtiny13

Для загрузки программы в микроконтроллер ATtiny13 нам необходимо настроить плату Arduino в режим программатора. Это можно сделать, загрузив готовый пример ArduinoISP в плату, выбрав пункт меню Файл > Примеры > ArduinoISP (File > Examples > ArduinoISP) в среде разработки.

Создание приложений для ATTINY13/ATTINY13A в среде Arduino IDE

Теперь наша плата 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. Если у вас уже есть ссылка в этом поле, то можно добавить новую, отделив её от прежней запятой и пробелом.

Создание приложений для ATTINY13/ATTINY13A в среде Arduino IDE

Теперь зайдите в меню Инструменты > Плата (Tools > Board) и щёлкните на пункте «Менеджер плат» (Boards Manager). Теперь прокрутите вниз, пока не увидите плату DIY ATtiny, установите её файлы, нажав кнопку «Установка» (Install).

Источник: voltiq.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru