Оглавление:

Программирование ATTiny85, ATTiny84 и ATMega328P: Arduino как ISP: 9 шагов (с изображениями)
Программирование ATTiny85, ATTiny84 и ATMega328P: Arduino как ISP: 9 шагов (с изображениями)

Видео: Программирование ATTiny85, ATTiny84 и ATMega328P: Arduino как ISP: 9 шагов (с изображениями)

Видео: Программирование ATTiny85, ATTiny84 и ATMega328P: Arduino как ISP: 9 шагов (с изображениями)
Видео: Работа с микроконтроллером ATmega328. Обзор, прошивка, схема подключения 2024, Ноябрь
Anonim
Программирование ATTiny85, ATTiny84 и ATMega328P: Arduino как ISP
Программирование ATTiny85, ATTiny84 и ATMega328P: Arduino как ISP
Программирование ATTiny85, ATTiny84 и ATMega328P: Arduino как ISP
Программирование ATTiny85, ATTiny84 и ATMega328P: Arduino как ISP

Предисловие

Недавно я разработал несколько проектов IoT на основе ESP8266 и обнаружил, что основной процессор изо всех сил пытается выполнять все задачи, которые мне нужно было решать, поэтому я решил распределить некоторые из менее важных действий на другой микроконтроллер (ы) в таким образом освобождая ESP8266, чтобы он мог выполнять свою работу в качестве устройства IoT.

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

Ограничения проектирования

Чтобы обеспечить разумное количество целевых устройств, позволяющих выбрать подходящий микроконтроллер для конкретного приложения, я остановился на следующих частях Atmel; ATMega328P, ATTiny84 и ATTiny85. Чтобы ограничить сложность необходимого программиста, я ограничил выбор часов внутренними для всех устройств и 16 МГц внешними только для ATMega328P и ATTiny84.

Далее следует сборник заметок по программированию с помощью Arduino и описание того, как я собрал простой программатор на основе Arduino Uno для этих устройств (рисунки выше).

Какие запчасти мне нужны?

Для сборки программатора вам потребуются следующие части

  1. 1 шт. На Arduino Uno
  2. 2 28-контактных DIP-разъема с нулевым усилием вставки (ZIF) (для размещения ATMega328P, ATTiny85, ATTiny84)
  3. 1 от прототипа щита Arduino (мой здесь;
  4. 2 выключенных светодиода 5 мм
  5. 2 резистора 1K
  6. 1 резистор 10 кОм
  7. Керамические конденсаторы 4 шт., 22 пФ
  8. 2 кристалла с частотой 16 МГц
  9. 3 керамических конденсатора по 0,1 мкФ
  10. 1 электролитический конденсатор емкостью 47 мкФ
  11. 1 электролитический конденсатор емкостью 10 мкФ
  12. Проволока разной длины.

Какое программное обеспечение мне нужно?

IDE Arduino 1.6.9

Какие навыки мне нужны?

  1. Знание Arduino IDE
  2. Некоторые знания электроники и пайки
  3. Большая ловкость рук
  4. Груз терпения и хорошего зрения

Темы охватывали

  1. Общее введение в программирование микроконтроллеров Atmel
  2. Интернет-провайдер или загрузчик: все это немного сбивает с толку
  3. Обзор схемы
  4. Настройка вашего программиста
  5. Использование вашего Arduino ISP Programmer
  6. Разработка кода для вашей целевой системы
  7. Попался
  8. Заключение
  9. Использованные ссылки

Отказ от ответственности

Как всегда, вы используете эти инструкции на свой страх и риск, и они не поддерживаются

Шаг 1. Общее введение в программирование микроконтроллеров Atmel

Общее введение в программирование микроконтроллеров Atmel
Общее введение в программирование микроконтроллеров Atmel
Общее введение в программирование микроконтроллеров Atmel
Общее введение в программирование микроконтроллеров Atmel
Общее введение в программирование микроконтроллеров Atmel
Общее введение в программирование микроконтроллеров Atmel

Доступны два метода программирования микроконтроллеров Atmel;

  1. В системном программировании (ISP),
  2. Самостоятельное программирование (через загрузчик).

Первый метод (1) напрямую программирует микроконтроллер через интерфейс SPI после первого сброса устройства. Если не указано иное, скомпилированная исполняемая исходная программа записывается в устройство постепенно в память кода, откуда она выполняется при запуске. Существует множество устройств ISP, способных программировать устройства Atmel, некоторые из которых (рис. 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. На рисунке 2 показано, как устройство ISP подключается к ATMega328P (со странным обозначением ICSP) на плате Arduino Uno R3 (на рисунке 3 показан вывод ISP). Если также можно запрограммировать микроконтроллер Atmel через его интерфейс SPI, используя Arduino Uno в качестве ISP (рисунок 4), здесь Uno используется для программирования ATMega328P.

В последнем методе (2) используется небольшая заглушка кода, известная как «загрузчик», постоянно находящаяся в памяти исполняемого кода (обычно заблокированная для предотвращения случайной перезаписи рис. 5). Этот код выполняется первым делом при включении питания или сбросе устройства и позволяет микроконтроллеру перепрограммировать себя с новым кодом, полученным через один из его интерфейсов от внешнего по отношению к нему источника. Метод загрузчика используется IDE Arduino для перепрограммирования Arduinos, отображаемого как порт связи USB на ПК (или MAC, Linux и т. Д., Рис. 6), а в случае Arduino Uno связывается с устройством Atmel через него. последовательный интерфейс на выводах 2 и 3 микросхемы ATMega328P. Также Arduino Uno (с удаленным микроконтроллером ATMega328P) можно использовать для программирования ATMega328P с помощью метода загрузчика, эффективно действующего как устройство USB-последовательного адаптера (рис. 7).

Что такое переходник с USB на последовательный?

Адаптер USB-последовательный порт - это аппаратное обеспечение, которое подключается к USB-порту вашего ПК и выглядит как последовательный COM-порт (наследие с более ранних времен, когда компьютеры использовали стандарт последовательной связи, известный как EIA-232, V24 или RS232), позволяющий вам отправлять и получать последовательные данные на тех же электрических уровнях микроконтроллера. Когда вы выбираете Tools -> Port -> COMx в Arduino IDE, вы подключаете свой компьютер к Arduino.

Такое устройство иногда называют FTDI (рис. 8, что на самом деле является торговой маркой) или CH340G и т. Д. Подключение USB к последовательному порту на Arduino uno достигается через ATMega16U2-MU (R) IC ZU4, как на схеме Arduino. ниже.

Для наглядности на рисунке 9 показаны два устройства Atmel и их соответствующие разъемы ISP на Arduino Uno R3.

Примечание 1. Если вы решите пойти по пути устройства FTDI, убедитесь, что вы покупаете его у надежного продавца, так как на рынке было много дешевых поддельных устройств, которые вышли из строя после применения обновления Windows.

Рекомендуемые: