Прошивка и программирование ATtiny13 при помощи Arduino UPD 17.03.2016 — АСУ ТП: сообщество инженеров

Прошивка и программирование ATtiny13 при помощи Arduino UPD 17.03.2016

Коротко о статье

Статья объясняет, как настроить Arduino IDE для работы с микроконтроллером ATtiny13A и прошивать в него скетчи через Arduino в роли программатора. Из неё можно узнать о выборе частоты, фьюзах, доступных функциях и объёме памяти.

Главное
  • Для добавления ATtiny13A в список плат Arduino IDE нужно распаковать архив с ядром в папку hardware и перезапустить среду.
  • Прошивка скетчей выполняется через Arduino, на которую предварительно загружен пример ArduinoISP, а программатор выбирается как Arduino as ISP.
  • С завода ATtiny13 работает на 1.2 МГц от внутренней RC-цепочки 9.6 МГц с делителем на 8; доступны также 4.8 МГц и 9.6 МГц.
  • Смена частоты производится однократным нажатием кнопки «Записать загрузчик», при этом Arduino IDE выставляет соответствующие фьюзы.
  • Рост частоты увеличивает потребление; при 1.2 МГц микроконтроллер потребляет около 1 миллиампера, а минимальное рабочее напряжение — 1.8 В.
  • В ATtiny13 доступно 1024 байта памяти и поддерживается ряд функций Arduino, включая pinMode(), digitalWrite(), analogRead() и другие.
Термины и технологии
  • ATtiny13A
  • Arduino IDE
  • ArduinoISP
  • Arduino as ISP
  • фьюзы
  • ШИМ
  • ADC

Кому полезно: Инженерам и начинающим разработчикам, работающим с микроконтроллерами ATtiny13A в среде Arduino.

По теме на сайте

Выжимка составлена редакцией сайта с помощью ИИ по тексту статьи.

lxbefVYiC60.jpg

Всем привет. Уже давно появился способ программировать маленькие, дешёвые, экономичные к питанию и доступные микроконтроллеры ATtiny13A.

Вот собственно всё то что ниже, только в видео формате:

Видео в источнике.
Сегодня расскажу, как я зашиваю Arduino’вские скетчи в ATtiny13A.

Итак, для начала нам нужно скачать вот этот архив (взято и совсем чуть-чуть доделано отсюда), положить файлы по адресу «DocumentsArduinohardware». Должно получится что-то типа «C:UsersАдминистраторDocumentsArduinohardwareattiny13avrcorescore13».

Перезапускаем Arduino IDE если она запущена на данный момент, это нужно для того, чтобы среда добавила новый микроконтроллер в список плат.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-O49UrRZW5s.jpg
Источник: https://m.habr.com/ru/post/234477

Оставьте комментарий

Войти

Зарегистрироваться

Сбросить пароль

Пожалуйста, введите ваше имя пользователя или эл. адрес, вы получите письмо со ссылкой для сброса пароля.

Прокрутить вверх