РадиоЛоцман - Все об электронике

Программируем новые микроконтроллеры серии ATtiny в Arduino

Microchip ATtiny1614

John Bradnam

hackster.io

Программируем новые микроконтроллеры Microchip серий ATtiny1614, ATtiny1604 в среде Arduino IDE. Они имеют объем памяти как у серии ATmega, но выпускаются в миниатюрных корпусах

Вы, наверное, знакомы с серией микроконтроллеров (МК) Microchip ATtiny85 или ATtiny2313. Эти МК предназначены для небольших систем и имеют ограниченный объем памяти программ (обычно не более 8 Кбайт) и еще более ограниченное ОЗУ (обычно менее 1 Кбайт).

На сегодняшний день доступна новая серия МК ATtiny с увеличенным объемом памяти и расширенным функционалом. Они даже могут конкурировать с более дорогой серией ATmega, ассортимент которой намного шире.  Например, МК ATtiny1614, рассмотренный в качестве примера в статье, имеет 16 Кбайт Flash-памяти программ и 2 Кбайт ОЗУ, но выпускается в миниатюрном 14-выводном корпусе SOIC (Рисунок 1).

Программируем микроконтроллеры серии ATtiny16x4 в среде Arduino IDE.
Рисунок 1. Программируем микроконтроллеры серии
ATtiny16x4 в среде Arduino IDE.

Используем переходную плату

Одна из проблем при экспериментировании с этими новыми МК заключается в том, что они поставляются только в корпусах для поверхностного монтажа (SMD). Это затрудняет их использование на макетных платах. Для этой цели была разработана плата-адаптер, которая позволит использовать МК ATtiny1614 как стандартный элемент в форм-факторе DIL (Dual-In-Line). Принципиальная схема платы-адаптера изображена на Рисунке 2.

Принципиальная схема платы адаптера (SOIC-DIL) для МК ATtiny1614.
Рисунок 2. Принципиальная схема платы адаптера (SOIC-DIL) для МК ATtiny1614.

Плата была разработана в САПР Eagle, и проектные файлы доступны для скачивания в разделе загрузок (Рисунок 3). Стоит заметить, что расположение выводов переходной платы DIL форм-фактора отличается от расположения выводов МК в SMD корпусе. Сделано это было специально, чтобы плата адаптера получилась односторонней и ее можно было изготовить в домашних условиях по ЛУТ-технологии, сохранив стандартную ширину 0.3 дюйма. Выводы UPDI/Reset, VCC и GND выведены на отдельную планку, поэтому программатор можно подключить к МК, даже когда плата-адаптер уже запаяна на другую плату (в устройстве).

Проект платы адаптера (SOIC-DIL) для МК ATtiny1614 в САПР Eagle.
Рисунок 3. Проект платы адаптера (SOIC-DIL) для МК ATtiny1614 в САПР Eagle.

Способ программирования новых МК серии ATtiny

Одним из самых больших изменений в этих МК подвергся интерфейс программирования. В новой серии МК ATtiny применен интерфейс, получивший название Unified Program and Debug Interface (UPDI), – универсальный интерфейс программирования и отладки. В этом интерфейсе задействован вывод МК Reset/UPDI. Для программирования МК по интерфейсу UPDI и подачи корректных сигналов на вывод Reset/UPDI мы будем использовать плату Arduino Nano. После программирования МК плата Arduino Nano больше не понадобиться. Схема подключения платы Arduino Nano к МК изображена на Рисунке 4.

Схема подключения Arduino Nano в качестве UPDI программатора к МК ATtiny1614.
Рисунок 4. Схема подключения Arduino Nano в качестве UPDI программатора к МК ATtiny1614.

Шаг 1. Настраиваем плату Arduino Nano в качестве программатора

В секции загрузок доступен для скачивания архив SpenceKonde - jtag2updi.zip. Распакуйте архив в папку со скетчами Arduino и запрограммируйте плату Arduino Nano. Этот архив содержит скетч, который превращает Arduino Nano в UPDI программатор.

Примечание:
не пугайтесь, что файл jtag2updi.ino пустой, фактически, весь код находится в других файлах.

Чтобы предотвратить запись Arduino скетчей в плату Arduino Nano при программировании МК ATtiny1614, необходимо отключить линию Reset на Arduino. Сделать это можно, добавив конденсатор емкостью 10 мкФ между линией Reset Arduino и GND (см. Рисунок 4). Короткий импульс сброса будет сбрасывать только МК ATtiny1614, а не  Arduino. Плату Arduino можоно сбросить нажатием кнопки сброса в течение более длительного времени.

Между выводами D6 Arduino и Reset/UPDI МК ATtiny1614 необходимо включить резистор 4.7 кОм. Также необходимо подключить МК к питанию +5 В и GND (на плате Arduino Nano).

Шаг 2. Установка поддержки плат megaTinyCore в Arduino IDE

Пакет поддержки плат в Arduino IDE устанавливается с помощью менеджера плат. Для этого необходимо:

  • В меню «Настройки» (Preferences) добавить ссылку  http://drazzy.com/package_drazzy.com_index.json в менеджер дополнительных плат;
  • Запустить менеджер плат (Tools – Boards - Board Manager);
  • Найти в списке платы "megaTinyCore by Spence Konde" и нажать кнопку «Установить» (Install).

Шаг 3. Выбор программатора

После того как пакет дополнительных плат "megaTinyCore by Spence Konde" был установлен в Arduino IDE, в меню «Инструменты» (Tools) выбираем (Рисунок 5):

  • Плату «ATtiny1614/ATtiny1604/ATtiny814/ATtiny804/ATtiny414/ATtiny404/ATtiny214/ATtiny204»;
  • Тактовая частота: 16 МГц;
  • COM-порт, к которому подключен наш программатор на плате Arduino Nano;
  • Программатор: - «jtag2updi(megaTinyCore)».
Выбор типа платы и программатора для работы с МК ATtiny1614 в Arduino IDE.
Рисунок 5. Выбор типа платы и программатора для работы с МК ATtiny1614 в Arduino IDE.

При выполнении этих настроек убедитесь, что вы выбрали МК, который собираетесь запрограммировать. Кроме того, слеудет учитывать, что некоторые библиотеки не буду работать на тактовой частоте 20 МГц (например, Adafruit Neopixel), поэтому тактовую частоту нужно выбирать ниже – 16 МГц, а если МК питается от напряжения 3.3 В, то 8 МГц.

Карта портов ввода/вывода МК и Arduino IDE

Чтобы получить доступ к физическим портам ввода/вывода МК, в Arduino IDE используются функции digitalRead, digitalWrite, analogRead или analogWrite. Используйте карту портов МК, приведенную на Рисунке 6, чтобы определить номер вывода для использования в среде Arduino. В отличие от МК ATmega328, новые МК серии ATtiny не имеют отдельных аналоговых входов. Является ли порт аналоговым или цифровым, зависит от того, какую функцию вы используете при обращении к этому порту.

Карта портов ввода/вывода МК ATtiny1614 и их соответствие в Arduino IDE.
Рисунок 6. Карта портов ввода/вывода МК ATtiny1614 и их соответствие в Arduino IDE.

Пример Blink

Для проверки программатора загрузим в МК скетч мигания светодиодом (Blink). Для этого подключите светодиод и резистор к выводу 2 (порт PA4) МК ATtiny1614, как показано на  Рисунке 7. На схеме также изображен программатор на плате Arduino Nano.

Программируем новые микроконтроллеры серии ATtiny в Arduino
Рисунок 7. Принципиальная схема подключения светодиода к МК ATtiny1614 для проверочного
скетча Blink.

Откройте в Arduino IDE файл Blink_ATTiny1614.ino и загрузите его в МК с помощью команды «Upload using programmer» в меню «Sketch». В процессе загрузки скетча проигнорируйте сообщения об ошибке программатора «avrdude: jtagmkII_initialize(): Cannot locate "flash" and "boot" memories in description». После загрузки скетча подключенный к МК светодиод начнет мигать (Рисунок 8).

Программируем новые микроконтроллеры серии ATtiny в Arduino
Рисунок 8. Пример подключения светодиода к МК Attiny1614 на монтажной плате.

Обратите внимание, что физический вывод 2 (PA4) МК в Arduino IDE является портом D0 (см. карту портов ввода/вывода на Рисунке 6).

Пример Color Change

В этом примере используется адресный RGB светодиод на контроллере WS2812B, потенциометр 10 кОм (подойдет любой потенциометр в диапазоне 1 кОм - 100 кОм) и библиотека Adafruit Neopixel. Схема подключения светодида и потенциометра изображена на Рисунке 9.

Программируем новые микроконтроллеры серии ATtiny в Arduino
Рисунок 9. Принципиальная схема подключения адресного RGB светодиода к МК ATtiny1614
для проверочного скетча Color Change.

Все скетчи примеров доступны для скачивания в разделе загрузок.

Заключение

Благодаря дополнительному объему Flash-памяти и ОЗУ в новых МК серии ATtiny, не говоря уже о новых функциях внутренних блоков, открываются двери для новых небольших устройств и проектов. Мы думаем, что вам понятна необходимость изучения документации на эти МК; это может стать началом вашего следующего захватывающего проекта.

Загрузки

  1. Принципиальная схема платы адаптера и проект печатной платы (Eagle)
  2. Скетч для программатора SpenceKonde - jtag2updi
  3. Скетчи для примеров (Blink, Color Change), приведенных в статье

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: Using the New ATtiny Processors with Arduino IDE

ATtiny1614 Купить ЦенаКупить ATtiny1614 на РадиоЛоцман.Цены — от 59,00 до 105
13 предложений от 7 поставщиков
Микроконтроллер AVR; EEPROM:256Б; SRAM:2кБ; Flash:16кБ; SO14 Новинка!
Элитан
Россия
ATTINY1614-SSN
Microchip
59 ₽
ЭИК
Россия
ATTINY1614-SSNR
от 69 ₽
Терраэлектроника
Россия
ATTINY1614-SSNR
Microchip
78 ₽
Триема
Россия
ATTINY1614-SSNR
105 ₽
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя