Оглавление:

Руководство по записи загрузчика Atmega328P-PU (Optiboot): 12 шагов
Руководство по записи загрузчика Atmega328P-PU (Optiboot): 12 шагов

Видео: Руководство по записи загрузчика Atmega328P-PU (Optiboot): 12 шагов

Видео: Руководство по записи загрузчика Atmega328P-PU (Optiboot): 12 шагов
Видео: Обзор USBASP программатора и как прошить Atmega8 2024, Ноябрь
Anonim
Руководство по записи загрузчика Atmega328P-PU (Optiboot)
Руководство по записи загрузчика Atmega328P-PU (Optiboot)

Очередной образ записи загрузчика Atmega. Но на этот раз я уверен, что с первой попытки у вас все получится !!

Это руководство по записи загрузчика Ника Гаммонса для плат Arduino.

Шаг 1: несколько слов

Несколько слов
Несколько слов

Микроконтроллер Atmega328P-PU - один из самых популярных чипов Arduino, которые широко используются во всем мире. Но, что важнее всего, Atmega по-прежнему делает то, на что способен стандартный Uno R3. Основная причина, по которой я люблю этот микроконтроллер, - это режим «Low Power». Я написал несколько новых эскизов для нескольких датчиков и какое-то время тестирую их.

Через несколько лет, когда я начал играть с Arduino, моим первым заказом был микроконтроллер Atmega328P. Позже я понял, что те, что заказывал на Алиэкспресс, - это пустые фишки. Чипы на Али очень дешевые, их можно купить от 1,40 $. Но в них не было загрузчика Uno (Optiboot), и без него я не мог загружать скетчи. Жесткий перерыв, ха ?? !! Для меня это был действительно холодный душ …… Так что я искал способ записать загрузчик на чипы. Я пробовал 5 или 6 методов, но безуспешно. Через неделю я нашел тему на форуме веб-сайта, в которой упоминалось руководство по записи загрузчика Ника Гаммона. Первая попытка и УСПЕХ !!: D Теперь я покажу вам, как легко записать загрузчик, чтобы очистить чипы Atmega328P-PU, не испортив вещи в Arduino IDE.

Шаг 2. Что такое загрузчик? (Optiboot)

Загрузчик - это небольшая программа (файл HEX, 0,5 Кбайт), которая позволяет выгружать скетчи во флеш-память прямо из Arduino IDE. Файл HEX всегда запускается перед основной программой, поэтому он и нужен.

Без загрузчика:

-Микроконтроллер все еще МОЖЕТ БЫТЬ ПРОГРАММИРОВАТЬ! (Да, это возможно), но для этого вам понадобится специальный программатор AVR. И это недешево!

- Его нельзя запрограммировать через Arduino IDE.

Поддерживаемые загрузчики этого метода:

Atmega8 (1024 байта)

Atmega168 Optiboot (512 байт)

Atmega328 Optiboot (для Uno и т. Д. На 16 МГц) (512 байт)

Atmega328 (8 МГц) для Lilypad и т. Д. (2048 байт)

Atmega32U4 для Леонардо (4096 байт) Atmega1280 Optiboot (1024 байт)

Atmega1284 Optiboot (1024 байта)

Atmega2560 с исправлениями проблемы сторожевого таймера (8192 байта)

Atmega16U2 - загрузчик на микросхеме интерфейса USB Uno

Atmega256RFR2 - загрузчик на плате Pinoccio Scout

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

Итак, у нас есть все необходимое.

Шаг 3: Мастер эскизов Arduino

Мастер эскизов Arduino
Мастер эскизов Arduino
Мастер эскизов Arduino
Мастер эскизов Arduino
Мастер эскизов Arduino
Мастер эскизов Arduino

Прежде всего вам понадобится библиотека arduino.

Загрузите его отсюда:

Или скачайте отсюда.

После того, как вы скачали, распакуйте его в библиотеки Arduino для поиска и найдите Board Programmer. Откройте его и запустите Board Programmer.ino.

Шаг 4: Настройка оборудования

Настройка оборудования
Настройка оборудования
Настройка оборудования
Настройка оборудования
Настройка оборудования
Настройка оборудования
Настройка оборудования
Настройка оборудования

Есть 3 способа подключения перед программированием:

- Используйте экран AVR ISP

- от Arduino A до Arduino B

- И макетным способом

На картинке вы можете увидеть, как подключиться. На макетной плате керамические конденсаторы не нужны, а вот кристалл на 16 МГц нужно добавить.

На этот раз я использую свой AVR ISP Shield.

Цель этого метода состоит в том, чтобы программа использовала последовательный монитор для доступа к флеш-памяти для записи Optiboot (загрузчика).

Шаг 5: Программирование

Программирование!
Программирование!
Программирование!
Программирование!

После завершения настройки оборудования запустите Board Programmer.ino!

Скомпилируйте и загрузите в Arduino, но не закрывайте окно !! Вам это понадобится:)

Загрузка займет несколько секунд.

Шаг 6: Отключитесь

После того, как вы загрузили скетч, отключите Arduino от вашего ПК и подключите все, если вы планируете сделать это на макетной плате.

Если вы используете экран AVR, вставьте чип Atmega в разъем ZIF и «заблокируйте» его.

Очень важно: пока оборудование не настроено, процессор не должен получать VCC !! Таким образом вы рискуете получить повреждения !!

Шаг 7: Подключитесь

Соединять!
Соединять!

Ok! Оборудование настроено и все на месте, мы подключаем Arduino к ПК.

Затем откройте монитор последовательного порта и установите скорость передачи 115200, и вы увидите это.

На последовательном мониторе вы можете увидеть, что Arduino вошел в режим программирования. Прохладный!!:)

Поскольку мы хотим запрограммировать Uno (Atmega328P), введите «U» в строке сообщения и нажмите Enter.

Шаг 8: Состояние программирования

Состояние программирования!
Состояние программирования!

В следующем окне вы это увидите.

Мы не выходим и не проверяем, набираем G и нажимаем Enter!

Шаг 9: веселье начинается!:)

Веселье начинается!:)
Веселье начинается!:)

После нажатия Enter вы увидите это:

Стирание чипа… Запись загрузчика…

Страница подтверждения, начиная с 0x7E00 Страница подтверждения, начиная с 0x7E80

Страница фиксации, начиная с 0x7F00

Страница фиксации, начиная с 0x7F80

Написано. Подтверждение…

Ошибок не обнаружено.

Запись предохранителей… LFuse = 0xFF

HFuse = 0xDE

EFuse = 0xFD

Байт блокировки = 0xEF Калибровка часов = 0x9E

Выполнено.

Режим программирования выключен. Наберите "C", когда будете готовы продолжить работу с другим чипом…

И счастливого дня !!: D Теперь ваш чип Atmega328P готов к загрузке скетчей!

Это было легко, не правда ли?:)

Шаг 10: новый чип

Если вы хотите запрограммировать другой чип, отключите Arduino от вашего ПК, замените чип на пустой. Повторно подключите Arduino и повторите шаги еще раз.

Если последовательный монитор не отвечает после повторного подключения Arduino, не паникуйте, просто закройте его и откройте новый.

Шаг 11: ОТКАЗ

Я НИЧЕГО НЕ ВЛАДЕЛЯЮ !! Вся заслуга Ника Гаммона !!

Я только что показал этот метод в этой инструкции.

Надеюсь, вы найдете это полезным.

Хорошего дня.

Шаг 12: Когда случаются странные вещи

Когда случаются странные вещи
Когда случаются странные вещи
Когда случаются странные вещи
Когда случаются странные вещи

Недавно я получил этот Arduino Nano с процессором Atmega328P-MU.

Я попытался загрузить на него скетч, но не смог. Процессор ни на что не реагировал с опциями Atmega328.

OK! Так что, возможно, загрузчик поврежден и нуждается в перезаписи. Я подключил его к другому ардуино и записал загрузчик. Еще ничего……!!!!

Хорошо, тогда мне нужен тормоз (кофе и сигарета) !! В качестве последнего шанса я снова выбрал Arduino Uno в качестве цели. Загрузка завершена: D

На данный момент у меня есть Nano, который действует как Arduino Uno. Я не знаю, почему это произошло, но я думаю, что это из-за сигнатуры процессора. В любом случае это действительно сделало мой день и это немного забавно:)

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