Прошивка atmega 328. Подключение и прошивка микроконтроллера ATmega328P-PU с помощью Arduino ISP программатора

Данное руководство пошагово описывает процесс записи/обновления загрузчика (прошивки) в микроконтроллер на плате «Cosmo Black Star» (аналог Ардуино) посредством использования внутрисхемного программатора AVRISP mkII и AVR Studio 4.

  1. Загрузите и установите на своем компьютере AVR Studio 4
  2. Подключите к компьютеру программатор (AVRISP mkII) посредством USB-кабеля (тип A-B)
  3. Подключите программатор посредством 6-ти жильного шлейфа к ISP разъему на плате

    ISP разъем расположен рядом с кнопкой сброса. Обратите внимание на красную полоску на шлейфе, он указывает ориентацию на 1 pin (смотрите маркировку на плате). 1 pin и красная полоска должны быть с одной стороны.

    Когда программатор не подключен к микроконтроллеру, а также когда на микроконтроллер не подается питание, второй индикатор на программаторе расположенный рядом со шлейфом, показывает индикацию красным светом.
  4. Подключите к гнезду питания на плате штекер от внешнего источника и подайте на плату напряжение 7-12 вольт

    На плате «Cosmo» должен загореться POWER индикатор зеленого цвета.

    Обратите внимание, что при подаче на микроконтроллер питания на программаторе второй индикатор сменил цвет с красного на зеленый.
  5. Установите соединение с микроконтроллером

    Для этого запустите на вашем компьютере AVR Studio . В главном меню программы раскройте вкладку «Tools » и далее выберите Program AVR → Connect

    В открывшемся диалоге выберите в левой части программатор AVRISP mkII , а затем в правой части укажите порт USB . После этого жмите по кнопке «Connect »

  6. Укажите опции прошивки

    При установлении соединения с микроконтроллером в AVR Studio откроется диалоговое окно, на вкладках которого нужно будет указать опции прошивки.

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


В наше прогрессивное время наука двигается быстрыми темпами, так что не всегда можно уследить за ними. Какие-то старые догмы рушатся, какие-то выдвигаются новые. Человечество не стоит на месте и не должно стоять, а двигателем человечества, являются ученые, научные деятели. И в любой момент может произойти открытие, которое способно не просто поразить умы всего населения земного шара, но и в корне поменять нашу жизнь.


Особая роль в науке выделяется медицине, так как человек, к сожалению не бессмертен, хрупок и очень уязвим к всякого рода заболеваниям. Многим известно, что в средние века люди в среднем жили лет 30, а сейчас 60-80 лет. То есть, как минимум вдвое увеличилась продолжительность жизни. На это повлияло, конечно, совокупность факторов, однако большую роль привнесла именно медицина. И, наверняка 60-80 лет для человека не предел средней жизни. Вполне возможно, что когда-нибудь люди перешагнут через отметку в 100 лет. Ученые со всего мира борются за это.


В сфере и других наук постоянно ведутся разработки. Каждый год ученые со всего мира делаю маленькие открытия, потихоньку продвигая человечество вперед и улучшая нашу жизнь. Исследуется не тронутые человеком места, в первую очередь, конечно на нашей родной планете. Однако и в космосе постоянно происходят работы.


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


Ещё хочется особое внимание уделить электронным вычислительным машинам, которые ещё лет 50 назад занимали огромное количество места, были медленными и требовали для своего ухода целую команду сотрудников. А сейчас такая машина, практически, в каждом доме, её уже называют проще и короче – компьютер. Теперь они не только компактны, но и в разы быстрее своих предшественников, а разобраться в нем может уже каждый желающий. С появлением компьютера человечество открыло новую эру, которую многие называют «технологической» или «информационной».


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


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

Постоянно используя отладочные платы типа Arduino в своих проектах, рано или поздно вы придете к мысли: «- А как же удешевить свои устройства и сделать их более компактными и с меньшим количеством проводов???» Всё это происходит потому, что отладив проект на Arduino, у нас остается много не задействованных разъемов, различных выходов и интерфейсов, занимающих дополнительное место. И первое с чем обычно всем хочется разобраться, это как подсоединиться напрямую к микроконтроллеру, к какой лапке что подключить и создать свою так называемую схему взаимодействия с ним, использую только все самое необходимое в своем проекте.

Разбираться будем на примере микроконтроллера ATmega328P-PU , который используется во всем известной плате Arduino Uno.

Начнем с самого простого и быстрого старта, используя в качестве программатора для нашего микроконтроллера любую имеющуюся у вас под рукой плату Arduino. Это гораздо проще, чем начать разбираться с различными существующими программаторами, их поисками или созданием. Море информации в интернете по настройке различных фьюзов микроконтроллера и каких-то других тонкостей, многих сразу пугает новыми непонятными терминами и количеством необходимых манипуляций для этих самых настроек. Поэтому мы не будем сейчас забивать этим мозг, у нас и так все что надо пропишется, и все как надо будет работать. А все прочие тонкости, если будет необходимость, изучите из других статей.

Сначала мы рассмотрим самую простую схему подключения микроконтроллера без использования внешнего кварцевого резонатора, так как данный микроконтроллер может работать от внутреннего кварца на частоте от 1 до 8 МГц, и этого вам с головой хватит во многих проектах.

Создаем Arduino ISP программатор из любой платы Ардуино.

В качестве программатора будем использовать плату Arduino Nano. Если у вас какая-то другая из плат Arduino, разницы нет ни какой, всё делаем так же. Подключаем плату Arduino к компьютеру. Запускаем программу Arduino IDE. В меню "Инструменты" выбираем как обычно нашу плату Ардуино и порт, с которым работаем. Открываем из примеров в программе скетч ArduinoISP "Файл" - "Примеры" - "ArduinoISP"

и загружаем его в нашу плату .

Всё! Наш Arduino ISP программатор готов!

*На заметку!!! Что такое ISP и SPI и в чем отличия! Несколькими словами это можно охарактеризовать так:

ISP - это метод внутрисхемного программирования, способ записи программы, программное обеспечение.

SPI - последовательный периферийный интерфейс, протокол, шина, стандарт обмена данными между устройствами.

Наш микроконтроллер ATmega328P-PU DIP28 имеет 28 ножек, по 14 с каждой стороны. Собирая схему, обратим внимание на выемку с одной из сторон на корпусе микроконтроллера ATmega328P-PU, которая поможет правильно сориентироваться в нумерации лапок микроконтроллера в соответствии с приведенными ниже схемами.

Соединяем Arduino Nano с микроконтроллером ATmega328P-PU через SPI интерфейс .

Для того чтобы понять, что и к какой лапке микроконтроллера мы подсоединили, воспользуемся для подсказки схемой распиновки микроконтроллера ATmega328P-PU.

И схемой распиновки платы Arduino Nano.

Теперь мы видим, что пин питания 5V платы Arduino Nano мы направили к лапкам VCC и AVCC микроконтроллера. Пин GND платы Ардуино мы направили на лапки GND микроконтроллера. Таким образом, мы обеспечили полностью питанием наш микроконтроллер ATmega328P-PU. Далее соединяем пины MISO (D12), MOSI (D11), SCK (D13) платы Arduino Nano с лапками MISO, MOSI, SCK микроконтроллера ATmega328, а пин SS (D10) от Ардуино подводим к лапке reset микроконтроллера. Если вы используете другую плату Arduino в качестве ISP программатора, просто найдите схему распиновки вашей платы Arduino и определитесь, где у неё находятся пины MISO, MOSI, SCK и SS. После чего соедините их с соответствующими лапками микроконтроллера ATmega328P-PU.

*На заметку!!!

Пины SPI интерфейса платы Arduino Mega : MISO (50), MOSI (51), SCK (52), SS (53)

Пины SPI интерфейса платы Arduino Uno : MISO (12), MOSI (11), SCK (13), SS (10)

Прошивка бутлоадера (загрузчика) в ATmega328P-PU через SPI интерфейс с помощью Arduino ISP программатора.

Теперь нам необходимо залить бутлоадер (загрузчик операционной системы) в наш микроконтроллер ATmega328P-PU. Для этого будем использовать Arduino загрузчик, настроенный специально для работы с внутренним кварцем на 8 МГц.