цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Самодельный программатор UPDI для программирования микроконтроллеров ATtiny серии 0


Самодельный программатор UPDI для программирования микроконтроллеров ATtiny серии 0

Автор: Mike(admin) от 22-11-2019, 05:55

Программатор UPDI для микроконтроллеров ATtiny своими руками


Благодаря своим крошечным размерам и улучшенным возможностям, микроконтроллеры ATtiny серии 0 были восхищением для разработчиков, ищущих микроконтроллер с простотой использования, связанной с платами Arduino, но с гораздо меньшим форм-фактором. Наряду с ATtiny серии 1 микроконтроллеры серии ATtiny-0 должны были служить современной заменой другим популярным чипам ATtiny, таким как ATtiny85 и ATtiny45. Хотя они были в состоянии сделать это, обеспечивая при этом невероятный функционал, одна проблема, с которой пользователи сталкивались со временем, заключалась в трудности в программировании микросхем, так как в отличие от предыдущих микросхем ATtiny они используют не очень популярный протокол программирования UPDI вместо протокола ISP, использовавшегося в предыдущих сериях.


Самодельный программатор UPDI для программирования микроконтроллеров ATtiny серии 0

Чтобы решить эту проблему, несколько инженеров разработали различные способы программирования серии Attiny-0. В сегодняшнем материале мы рассмотрим, пожалуй, самый элегантный способ, который может предложит инженерное сообщество – миниатюрный программатор UPDI с разъемом USB, разработанный Дэвидом Джонсоном-Дэвисом.


Этот программатор основан на Atmega328P и действительно может быть назван Arduino Uno на USB. Он использует микроконтроллер Atmega328P в качестве программатора UPDI, а FT231 служит конвертером USB в UART, облегчая обмен данными между программатором и компьютером. Как упомянуто выше, устройство может также использоваться в качестве ограниченного Arduino Uno, по той причине, что цифровой вывод 6 Atmega328P, который совместим с контактом 6 на Arduino Uno, выведен, поэтому его можно использовать для связанных с Arduino действий.


Принципиальная схема программатора UPDI представлена на следующем изображении. Здесь в основном используются SMD-компоненты для достижения необходимого уровня миниатюризации.


Схема самодельного программатора UPDI для программирования микроконтроллеров ATtiny серии 0

Он имеет две основные микросхемы: микроконтроллер Atmega328p и конвертер FT231 «USB в UART». ATmega328p действует как программатор UPDI, а FTDI-чип служит конвертером, преобразуя сигналы USB с ПК в UART для ATmega328p и наоборот. Одним из ключевых конструктивных соображений, реализованных на плате, является создание трех дополнительных площадок вместе с контактами программирования UPDI на краю платы. Дополнительные контакты предоставляют пользователю порт ISP, через который пользователи могут загружать загрузчик на ATmega328p.


Хотя программатор серии ATTiny-0 можно прошить с помощью нескольких инструментов, таких как Atmel Studio, мы понимаем, что среднестатистический радиолюбитель хочет иметь возможность писать код, как в Arduino IDE. В результате мы сосредоточимся на программировании с помощью Arduino IDE. Как и в случае любой платы / микроконтроллера, для программирования в Arduino IDE требуется ядро Arduino. Это требование было реализовано для серии ATtiny-0 с новым ядром Arduino для новых чипов ATtiny, разработанным Спенсом Конде и его сотрудниками, под названием megaTinyCore (https://github.com/SpenceKonde/megaTinyCore).


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


Сначала припаяйте провод на месте резистора 0 Ом на плате. Это соединит линию сброса с микроконтроллером. Далее припаяйте провода к контактам MOSI, MISO, SCK и RESET на плате и соедините их с разъемами, к которым можно подключить провода. Рекомендуется использовать для соединений очень тонкие провода, чтобы вы случайно не перекрыли площадки печатной платы. Другой вариант – припаять контакты разъема прямо к плате.


Затем подключите 3-контактный разъем к трем клеммам в верхней части платы программатора UPDI, чтобы вы могли использовать это для подключения GND и 5 В к плате.


Самодельный программатор UPDI для программирования микроконтроллеров ATtiny серии 0

Подключите ISP-программатор к плате через шесть проводов, которые вы припаяли. Обратите внимание, что это может быть плата Arduino, как UNO. В Arduino IDE выберите Arduino/Genuino Uno из раздела Arduino AVR Boards в меню Boards (Платы) и установите для Programmer (Программатор) значение ArduinoISP при использовании Arduino UNO или соответствующее имя программатора при использовании любого другого программатора. Выберите порт, к которому подключен программатор, и выберите Burn Bootloader (Загрузить загрузчик), чтобы загрузить загрузчик на плату.


После того, как эта работа будет успешно завершена, у вас должен быть установлен загрузчик UPDI. Вы можете проверить успешность процесса перепрошивки загрузчика, загрузив пример Arduino Blink в программатор UPDI через порт USB. После тестирования загрузчика следующая задача – загрузить код jtag2updi на плату.


Сначала загрузите скетч jtag2updi (https://github.com/SpenceKonde/jtag2updi). Распакуйте zip-файл и откройте папку jtag2updi. Откройте скетч jtag2updi.ino с помощью Arduino IDE, подключите программатор UPDI к компьютеру через USB и загрузите код, как вы это делали для примера Blink. Уберите провод, который вы установили ранее на позицию резистора 0 Ом на плате программатора UPDI.


Вот и все, плата теперь готова к использованию в качестве программатора UPDI, но у нас есть еще один шаг. UPDI – это протокол, который не входит в список протоколов программатора, которые были поставлены с Arduino IDE. Таким образом, чтобы Arduino IDE распознал плату как программатор, в IDE необходимо установить megaTinyCore. Шаги по установке megaTinyCore уже были описаны в нашем недавнем руководстве, в котором мы рассмотрели, как превратить Arduino Nano в программатор UPDI. Вы можете выполнить эти шаги, чтобы установить megaTinyCore в Arduino IDE.


Итак, программатор UPDI готов, и Arduino IDE готова к программированию по UPDI. Выполните следующие действия, чтобы запрограммировать микроконтроллер ATtiny серии 0. Сначала подключите ATtiny к программатору UPDI, как показано на следующем изображении.


Самодельный программатор UPDI для программирования микроконтроллеров ATtiny серии 0

Соединение довольно простое: GND – GND, 5V – VCC, UPDI – UPDI.


С микроконтроллером, подключенным к вашему программатору Arduino UPDI, теперь мы готовы загрузить код в ATtiny/ Откройте или напишите код, который вы хотите загрузить. Проверьте код, чтобы убедиться в отсутствии ошибок, затем перейдите в Tools - Board (Инструменты – Плата) и прокрутите вниз, пока не увидите ATtiny, с которым вы работаете, в списке и выберите его. Платы ATtiny будут установлены автоматически после установки megaTinyCore.


Самодельный программатор UPDI для программирования микроконтроллеров ATtiny серии 0

Это должно обновить параметры, отображаемые при нажатии на инструменты. Теперь нам нужно указать Arduino IDE, чтобы мы использовали наш программатор. Для этого перейдите в Tools-Programmers (Инструменты – Программаторы). Прокрутите вниз панель и выберите в качестве программатора jtag2updi (megaTinycore).


Самодельный программатор UPDI для программирования микроконтроллеров ATtiny серии 0

После этого ваш экран должен выглядеть как на следующем изображении, когда вы нажимаете на инструменты.


Самодельный программатор UPDI для программирования микроконтроллеров ATtiny серии 0

Теперь выберите порт, к которому подключен программатор, и нажмите кнопку загрузки в IDE. Вы должны сразу увидеть процесс загрузки, а после завершения микроконтроллер должен работать как запрограммировано.


По сравнению с прежними микроконтроллерами ATtiny, эти новые серии микроконтроллеров оснащены большим количеством флэш-памяти, стоят намного дешевле и более эффективны по сравнению с предыдущим набором, поэтому их, вероятно, следует учитывать при следующем выборе крошечного недорогого, маломощного микроконтроллера для вашего проекта, и благодаря сегодняшнему проекту у вас есть программатор, который будет программировать эти микроконтроллеры.




© digitrode.ru


Теги: UPDI, ATtiny, Arduino, программатор




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий
Цитата
  • Сергей Шийко

  • 17 октября 2020 07:37
  • Группа: Гости
  • ICQ:
  • Регистрация: --
  • Статус:
  • Комментариев: 0
  • Публикаций: 0
^
Вовсе необязательно использовать в программаторе ATmega328. Его прошивка помещается в ATmega8 или ATmega88, они дешевле.