Как прошить атмегу 328 через ардуино уно

Как прошить атмегу 328 через ардуино уно

Материалы

Программируем м/к Atmega через Arduino

Иногда на новый м/к необходимо прошить загрузчик ,или мы хотим использовать нестандартный микроконтроллер в своих поделках,а отдельного программатора у нас нет,то тут приходит на помощь плата arduino со специально загруженным скетчем.

Подключение микроконтроллеров к плате Arduino

Напомним расположение выводов SCK,MISO,MOSI на ардуинке:

У плат серии Mega выводы SCK,MISO,MOSI находятся на других портах: 50 -MISO, 51 -MOSI , 52 -SCK , 53 — reset у программируемого м/к .

Подключаем питание на соотвествующие выводы программируемого микроконтроллера GND и VCC к Arduina , а так же соотвественно выводы SCK,MISO,MOSI.Вывод м/к Reset необходимо подключить к 10 выводу(53 у Mega) По такой схеме подключаются все м/к Atmega для программирования или просто прошивки загрузчика.

Прошивка микроконтроллеров Atmega через плату arduino:

Если Вы уже подключили программируемый микроконтроллер к плате arduino ,то можем уже заняться прошивкой,но для этого необходимо запрограммировать плату arduino в режим программатора. Для этого выбираем скетч из примеров под названием ArduinoISP:

Загружаем данный скетч в плату arduino.

Выбираем программатор arduino as ISP в меню сервис в подменю программатор.Не забываем вернуть программатор на место,когда будем программировать снова платы arduino.

Выбираем в меню свой микроконтроллер:

Если Вы просто хотите загрузить в микроконтроллер загрузчик,то необходимо через меню сервис выбрать записать загрузчик,этим самым вы установите необходимые фьюзы.

Для чего нужен загрузчик ? Установка загрузчика дает возможность напрямую ,через последовательный порт прошивать микроконтроллер (только имеющие аппаратный последовательный порт).Например так прошиваются пустые ATMEGA328P,которые потом можно использовать вместо установленной штатно микросхемы на Arduino UNO и устанавливать далее на самодельные платы.

Далее пример заливки скетча на Attiny85:

Не пугайтесь — при прошивке возможно могут появится некоторые ошибки,но они никак не влияют на сам процесс программирования:

Далее,если мы прошиваем сам скетч (например у нас не стандартный микроконтроллер), то сейчас просто выбираем в меню файл загрузить с помощью программатора:

Обратите внимание,что прошивать необходимо именно через данный пункт меню,а не через стандартную кнопку «загрузить».

Для проверки работоспособности прошьем скетч Blink из примеров,укажем номер вывода тот,на котором будет подключен светодиод.Если указать порт номер 2 и оставить подключенный проводок SCK ,то увидим мигание светодиода на плате arduino на 13 ноге(не актуально для плат arduino Mega -там выводы SCK,MISO,MOSI находятся на других портах )

Прошивка микроконроллеров Atmega возможна и через дешевые программаторы USBasp без использования плат Arduino.Цена такого программатора всего 3 $ .Подробно тут.

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.

Источник

Как прошить атмегу 328 через ардуино уно

Программируем м/к Atmega через Arduino

Иногда на новый м/к необходимо прошить загрузчик ,или мы хотим использовать нестандартный микроконтроллер в своих поделках,а отдельного программатора у нас нет,то тут приходит на помощь плата arduino со специально загруженным скетчем.

Подключение микроконтроллеров к плате Arduino

Напомним расположение выводов SCK,MISO,MOSI на ардуинке:

У плат серии Mega выводы SCK,MISO,MOSI находятся на других портах: 50 -MISO, 51 -MOSI , 52 -SCK , 53 — reset у программируемого м/к .

Подключаем питание на соотвествующие выводы программируемого микроконтроллера GND и VCC к Arduina , а так же соотвественно выводы SCK,MISO,MOSI.Вывод м/к Reset необходимо подключить к 10 выводу(53 у Mega) По такой схеме подключаются все м/к Atmega для программирования или просто прошивки загрузчика.

Прошивка микроконтроллеров Atmega через плату arduino:

Если Вы уже подключили программируемый микроконтроллер к плате arduino ,то можем уже заняться прошивкой,но для этого необходимо запрограммировать плату arduino в режим программатора. Для этого выбираем скетч из примеров под названием ArduinoISP:

Загружаем данный скетч в плату arduino.

Выбираем программатор arduino as ISP в меню сервис в подменю программатор.Не забываем вернуть программатор на место,когда будем программировать снова платы arduino.

Выбираем в меню свой микроконтроллер:

Если Вы просто хотите загрузить в микроконтроллер загрузчик,то необходимо через меню сервис выбрать записать загрузчик,этим самым вы установите необходимые фьюзы.

Для чего нужен загрузчик ? Установка загрузчика дает возможность напрямую ,через последовательный порт прошивать микроконтроллер (только имеющие аппаратный последовательный порт).Например так прошиваются пустые ATMEGA328P,которые потом можно использовать вместо установленной штатно микросхемы на Arduino UNO и устанавливать далее на самодельные платы.

Далее пример заливки скетча на Attiny85:

Не пугайтесь — при прошивке возможно могут появится некоторые ошибки,но они никак не влияют на сам процесс программирования:

Далее,если мы прошиваем сам скетч (например у нас не стандартный микроконтроллер), то сейчас просто выбираем в меню файл загрузить с помощью программатора:

Обратите внимание,что прошивать необходимо именно через данный пункт меню,а не через стандартную кнопку «загрузить».

Для проверки работоспособности прошьем скетч Blink из примеров,укажем номер вывода тот,на котором будет подключен светодиод.Если указать порт номер 2 и оставить подключенный проводок SCK ,то увидим мигание светодиода на плате arduino на 13 ноге(не актуально для плат arduino Mega -там выводы SCK,MISO,MOSI находятся на других портах )

Прошивка микроконроллеров Atmega возможна и через дешевые программаторы USBasp без использования плат Arduino.Цена такого программатора всего 3 $ .Подробно тут.

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.

Источник

Программатор из Arduino

В своих проектах я использую ранее описанную минимальную обвязку на микроконтроллере Atmega328p. На базе такой схемы я делаю различные устройства которые отлично работают. И к тому же, в них я могу записать обычный скетч через среду Arduino IDE. Чтобы записать скетч в микроконтроллер Atmega328p, на понадобиться Arduino UNO или Arduino Nano.

Тоесть чтобы мне прошить «почти плату Ардуино», мне нужна еще одна Ардуинка.
На самом деле. Arduino UNO или nano выступает здесь в роли программатора. Но для этого нам необходимо подготовить все для прошивки.

Делаем из Arduino UNO программатор.

Открываем Arduino IDE, далее Файл — Примеры — 11.ArduinoIsISP — ArduinoISP.

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

Теперь необходимо подготовить адаптер для соединения платы Ардуино и разъема для программирования вашего устройства. В моем примере универсального контроллера я использую простые соединительные провода Мама-Папа.
Распиновка следующая:

Arduino Устройство
GND GND
5V +5v
10 RST
11 MOSI
12 MISO
13 SCK

В своих проектах я предусматриваю разъемы для внутрисхемного программирования ICSP. Если раньше я делал штырьковый разъем 2*3 с шагом 2,54мм, то теперь я использую специальную прищепку с контактами pogopin. В моем примере соединяю их вот так:

Если бывает небольшой конвейер по загрузке программ в контроллеры, меня выручает одна хитрость. Я достал с одной из сторон соединительных проводов, где мамы, пластиковые корпуса. И сам металлический контакт Мама установил в готовый пластиковый разъем типа 2*3. Так гораздо удобнее подключать и маловероятно что можно перепутать.

С подключением разобрались.
Следующий шаг. Открываем скетч который необходимо загрузить в наше устройство. Далее необходимо настроить Arduino IDE чтобы использовала Arduino UNO как программатор. Для этого нажимаем Инструменты — Программатор: и в выпадающем списке выбираем «Arduino as ISP».

Теперь необходимо нажать на пункт Записать загрузчик. Там же, в инструментах.
Если вы все верно настроили, вы получите сообщение «Запись загрузчика завершена».

Теперь можно приступать к загрузке скетча. Нажимаем Скетч — Загрузить через программатор. После этого должна начаться загрузка скетча в ваше устройство с микроконтроллером Atmega328p через другую Arduino UNO.

После успешной загрузки, будет сообщение «Загрузка завершена». А на моей плате включиться светодиод, который мне говорит о том что код записался верно и без ошибок.

Мы с вами разобрались что для своих проектов без проблем можно использовать микроконтроллер Atmega328p, писать для него код и прошивать через Arduino IDE. При этом без проблем работает внутрисхемное программирование через разъем ICSP. Данный способ кстати подойдет и для загрузки скетчей в Arduino micro.

Источник

Установите загрузчик на ATmega AT328P-PU и дешево получите функциональность, близкую к Arduino Uno!

Настоящая Arduino Uno – это отличная платформа для разработки множества развлекательных и полезных схем на микроконтроллерах, но использование полноценной платы Uno в каждом проекте может быть слишком дорого. Воспользовавшись инструкциями в этой статье, вы сможете уменьшить стоимость блока управления в проекте на 50 и более процентов.

Что такое Arduino? Вы серьезно?

После 2003 года сложно было не услышать что-либо об Arduino; нравятся ли они вам или нет, но эти платы вездесущи. Но что такое Arduino?

Вопреки тому, как многие думают, Arduino не является микроконтроллером, это особый бренд сборок на печатных платах, которые содержат микроконтроллеры. Эти микроконтроллеры – это чаще всего ATmega от компании Atmel (которая сейчас входит в состав Microchip), а одним из наиболее часто используемых ATmega является AT328P. Но не каждый AT328P будет работать на печатной плате Arduino или с Arduino IDE (интегрированной средой разработкой); на скриншоте ниже показано, что произойдет, когда вы попытаетесь загрузить скетч в обычный AT328P, который приобрели в магазине.

Ошибка при попытке загрузить скетч в AT328P

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

Далее следуют пошаговые инструкции по загрузке кода загрузчика Arduino на AT328P-PU с помощью полноценной платы Arduino Uno. По сути, процесс разбивается на четыре части:

  1. сборка схемы загрузчика;
  2. настройка Arduino Uno как ISP (внутрисхемного программатора);
  3. подключение Arduino Uno к схеме загрузчика;
  4. прошивка кода загрузчика.

После успешной загрузки кода загрузчика на AT328P-PU схема загрузчика может быть легко преобразована в схему программирования и эксплуатации микроконтроллера, создав таким образом платформу для разработки со многими возможностями полноценной платы Arduino Uno. В этой статье будут представлены подробности этого процесса.

Сборка схемы прошивки загрузчика

Чтобы загрузить код загрузчика из Arduino Uno в пустой ATmega328P-PU, потребуется небольшая схема прошивки загрузчика. Комплектующие, необходимые для схемы загрузчика, перечислены ниже (вам может также понадобиться несколько перемычек).

Список комплектующих

Обозначение Описание
R1 Резистор 10 кОм, 0,25 Вт
C1, C2 Конденсатор, керамический, 22 пФ, 50 В
C3 Конденсатор, керамический, 0,1 мкФ, 50 В
X1 Кварцевый резонатор, 16 МГц, HC49, 20 пФ
U1 Микросхема, ATmega328P-PU, флэш 32 килобайта, DIP-28, 1,8–5,5 В
нет Макетная плата, беспаечная, 400 контактов
нет Arduino Uno R3

Ниже приведена очень простая принципиальная схема прошивки загрузчика AT328P-PU. Часть генератора состоит из X1, C1 и C2; обратите внимание, что кварцевый резонатор X1 должен быть на 16 МГц, а не на 20 МГц. Несмотря на то, что AT328P-PU может использовать кварц 20 МГц, для процесса прошивки загрузчика требуется работа на 16 МГц. R1 – это подтягивающий резистор для вывода Reset; а C3 – это обычный конденсатор фильтра питания.

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

Соберите схему прошивки загрузчика, но пока не подключайте её к Arduino Uno.

Схема прошивки загрузчика в AT328P-PU Arduino Uno, подключенная к макетной плате прошивки загрузчика в AT328P-PU

Делаем ISP программатор из Arduno Uno

После двойной проверки схемы прошивки загрузчика, прежде чем подключать ее к Arduino Uno, вы должны настроить Arduino Uno для работы в качестве программатора ISP (In-circuit Serial Programmer, внутрисхемный последовательный программатор). Подключите Arduino Uno к компьютеру и запустите Arduino IDE. Затем выполните шаги, как показано на следующих скриншотах.

  1. Укажите, что подключена обычная плата Arduino Uno. Определение платы, подключенной к компьютеру
  2. Укажите назначение платы Arduino Uno как Arduino ISP. Назначение режима работы Arduino Uno в качестве ISP программатора
  3. Откройте скетч Arduino ISP. Скетч Arduino ISP Скетч Arduino ISP
  4. Загрузите скетч Arduino ISP в Arduino Uno. Загружаем скетч Arduino ISP в Arduino Uno
  5. Когда вы увидите сообщение » done uploading » (загрузка завершена), ваша плата Arduino Uno будет готова работать в качестве ISP программатора, и будет способна понимать и отвечать на инструкции от Arduino IDE. Arduino Uno готова работать в качестве ISP программатора

Прошивка кода загрузчика

Теперь подключите шесть проводов от схемы прошивки загрузчика к Arduino Uno точно так, как показано на схеме и фотографии, приведенной выше в разделе «Сборка схемы прошивки загрузчика». После двойной проверки всех соединений вы готовы записать следующий код загрузчика в AT328P-PU в схеме прошивки загрузчика.

  1. Выберите » Burn Bootloader » (прошить загрузчик) как действие для Arduino Uno; процесс должен начаться сразу после того, как вы кликните » Burn Bootloader «. Прошивка загрузчика в AT328P-PU
  2. Когда вы увидите сообщение » Done burning bootloader » (прошивка загрузчика завершена), процесс будет выполнен, и AT328P-PU сможет понимать и отвечать на инструкции от Arduino IDE. Загрузчик загружен в AT328P-PU

Простейшая схема программирования (и проверки работы)

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

Список комплектующих

Обозначение Описание
R2 Резистор 470 Ом, 0,25 Вт
C4 Конденсатор, керамический, 0,1 мкФ, 50 В
LED1 Светодиод, T1 3/4, желтый
нет Конвертер USB–TTL с выводом DTR

Преобразовать схему прошивки загрузчика AT328P-PU в простейшую схему программирования и проверки работоспособности довольно просто. Ниже приведены принципиальная схема и фотография макета.

  1. Удалите все шесть перемычек между Arduino Uno и схемой прошивки программатора.
  2. Подключите R2 и LED1 между землей и выводом 19 микроконтроллера AT328P-PU.
  3. Подключите выводы 1, 3, 4 и 5 от USB-TTL конвертера к AT328P-PU, как показано ниже. Вывод 2 не используется.
  4. Подключите вывод 6 через конденсатор C4 (0,1 мкФ) к выводу 1 AT328P-PU. (C4 обеспечивает, чтобы сигнал DTR от преобразователя USB-TTL выдавал кратковременный сигнал сброса, а не тот сигнал, который остается на низком логическом уровне в течение длительного периода времени.)

Простейшая схема программирования AT328P-PU Макет простейшей схемы программирования AT328P-PU

Загрузка первого скетча: разумеется, мигаем

  1. Чтобы подтвердить работоспособность макета простейшей схемы программирования и проверки работы, откройте скетч » Blink » из базовых примеров, включенных в Arduino IDE. Скетч » Blink «
  2. После выбора правильного COM порта скомпилируйте и загрузите в AT328P-PU скетч » Blink «. Скетч » Blink » Первая попытка прошивки скетча Blink не удалась; можете увидеть, почему произошел сбой? Подсказка: посмотрите на правый нижний угол окна IDE выше, и сравните его с тем же участком окон IDE на скриншотах ниже (на которых прошивка удалась). Компиляция скетча Blink Прошивка скетча Blink Конечно, причина неудачи первой попытки прошивки заключается в неправильном выборе COM порта: был выбран COM3, вместо правильного COM6.

Что случилось?

Успех! Вы прошили загрузчик Arduino в AT328P-PU, а затем загрузили в AT328P-PU скетч Blink , что подтверждается мигающим желтым светодиодом на макете простейшей схемы программирования и проверки работоспособности. Теперь любой скетч для Arduino может быть загружен аналогичным образом, а компоненты, необходимые для этого скетча, могут быть подключены к микроконтроллеру AT328P-PU, и всё будет работать.

Развлекайтесь с Arduino. тратя теперь меньшие деньги!

Источник

Adblock
detector