Найти тему
Технари и не только

Прошивка Arduino Mega2560 или Atmega2560

Привет, друзья! Разработал очень крутое устройство, но опубликую его позже. Девайс втыкается в локальную сеть и через радиоканал можно управлять чем угодно. Если вы тут впервые, то подписывайтесь, будет интересно. Итак, как я уже написал выше, сделал я универсальный девайс на Atmega2560 и ENC28J60, и захотелось мне все это организовать как полноценный, красивый и компактный проект. Вооружившись P-CAD'ом, нарисовал схему и развел печатную плату. Заказал изготовление платы одному парню в Казань, сделал безупречно!

Печатная плата, сделанная на заказ
Печатная плата, сделанная на заказ

Было бы настоящее чудо, если бы плата запустилась с первой попытки, и естественно, этого не произошло. Пардон за качество))

Спаянная плата
Спаянная плата

Первый забор я поймал, как ни странно, на прошивке контроллера.

Теория гласит, что мы можем запилить прошивку на любую плату через программатор, в обход загрузчика. Так вот, не знаю у кого как,но у меня не получилось!!! У меня есть 3 платы Arduino Mega2560 (оригинал), и ни на одной плате не заработал даже код мигания светодиодом! Это было,по меньшей мере, неожиданно. Проведя множество экспериментов с бекапами, стало ясно, что дело во фьюзах. Эх, я отвык от таких низкоуровневых примочек, но делать нечего, на плате только SPI разъем и нужно как-то заставить процессор работать.

Итак, мы имеем платку с микроконтроллером Atmega2560 и программатор USBasp. Подключаем программатор к плате через разъем и зашиваем в него загрузчик, обычная процедура.

Далее качаем софтинку avrdudeprog33. Скачать можно у меня. Открываем "AVRDUDEPROG", в программе выбираем микроконтроллер Atmega2560 и наш программатор.

Выбор микроконтроллера и программатора
Выбор микроконтроллера и программатора

Далее идем во вкладку "Fuses" и жмем кнопку "Чтение".

У кого-то может выскочить ошибка из-за отсутствия библиотек:

Ошибка libusb0.dll
Ошибка libusb0.dll

Закрываем AVRDUDEPROG и идем на страничку zadig.akeo.ie, качаем последнюю версию драйвера. Открываем и переустанавливаем все драйвера:

-5

Снова идем в AVRDUDEPROG , "Fuses" и чтение. Получаем стандартные фьюзы контроллера со вшитым загрузчиком.

Стандартные фьюзы с загрузчиком
Стандартные фьюзы с загрузчиком

Снимаем галку с фьюза "BOOTRST" и зашиваем обратно нажав кнопочку "Программирование".

В таком виде шьем фьюзы Atmega2560
В таком виде шьем фьюзы Atmega2560

Все! Теперь мы не привязаны к загрузчику и можем шить Mega2560 из Arduino IDE через функцию "Загрузить чрез программатор". Для эксперимента зальем Blink и порадуемся что не нужно клепать к контроллеру спецИли программатор)))

И помните, как только снова зальете загрузчик в Мегу, фьюз тоже прошьется.

Если у Вас есть вопросы или предложения, пишите: nikitos-it@mail.ru или телеграмм https://t.me/nikitos_it
Проект можно поддержать тут или в форме для доната ниже ;)
Смелых идей и прямых рук! Ставьте пальцы вверх, подписывайтесь на канал, дальше будет интересней. Ваш Никитос.