Конструктор загрузчика для ардуино

Обновлено: 28.04.2024

Убил вечер, получил загрузчик, записывающий и считывающий и eeprom и flash:

Взял optiboot 5.0a в исходниках.

В arduino 1.5.8 разархивировал, получил

3. Чтоб не морочиться с путями, все нужное и ненужное накопировал в эту папку

Файлы Makefile и optiboot.c патченые (см. мой пост выше).

В optiboot.c мне пришлось вырезать все мигания LED и еще кое чего,

чтобы загрузчик уместился во флеш.

Теперь, думаю, можно было бы какие-то мигания и оставить (так сильно нужен был EEPROM, что вырезал лишнее беспощадно).

Ниже привожу сильно подрезаный код.

Оставил только то, что нужно мне для atmega328p 16Mhz 5V.

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

В наличии две Atmega8. Один МК работает с UART на 8Mhz(внутренний), а второй нет. В чем может быть причина?

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

в конструкторе нет возможности изменить скорость загрузки

не мог ли бы ты собрать бутлоадер c такими параметрами, по сути изменения только в скорости

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

в конструкторе нет возможности изменить скорость загрузки

не мог ли бы ты собрать бутлоадер c такими параметрами, по сути изменения только в скорости

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

Все необходимое есть в папках с IDE arduino.

Вчера попробовал собрать для скорости 230400 и поддержкой eeprom для atrmega328p - все работает!

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

ну раз так просто может выложишь куда нибудь архив, а я поправлю скорость и скомпилирую

я пробовал. не получилось

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

ну раз так просто может выложишь куда нибудь архив, а я поправлю скорость и скомпилирую

я пробовал. не получилось

Я не в городе живу, инет не быстрый.

Просто повтори то, что я в посте сделал - это же минут 20ть всего уйдет.

И опиши, что не получилось.

У меня pro mini 5V 16Mhz.

Если под него bootloader на разную скорость нужно - скинь в личку почту свою - вышлю.

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

мне нужен один бутлоадер: optiboot для меги8 для скорости uart 38400/ это все. пробовал. накидал файлов. запустил батник. он выдал ошибку что не знает комманду make

также пробовал в codevision скомпилировать, но тоже не получилось. не разобрался что сделать чтобы заработало

проще будет если просто соберешь

кстати работать на внутреннем генераторе, частота 8мгц

короче как бутлоадер на 115200 но на скорость 38400

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

мне нужен один бутлоадер: optiboot для меги8 для скорости uart 38400/ это все. пробовал. накидал файлов. запустил батник. он выдал ошибку что не знает комманду make

Раз не знает, значит не все файлы скопировал в каталог optiboot.

Я же приложил листинг каталога, make легко найти в подкаталогах arduino и скопировать в optiboot.

На шару не прокатит. Надо внимательно и шаг за шагом.

проще будет если просто соберешь

Совсем просто - это игнорировать.

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

у тебя бы это заняло меньше минуты, поэтому и попросил

я не планирую каждый день делать бутлоадеры

но я сделал что то. файла hex в папке не появилось


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

изменил в makefile частоту для меги8 на 8000000 получил следующее. hex так и нет. зато появился elf


собирать я так понял не будешь? хочешь чтобы я сам научился?

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

плиззз. ну или хотя бы что должно быть в m.bat

я пробовал по разному

кстати постоянно вылетает LD.exe с ошибкой

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

Все правильно делаешь, только это нужно делать на чистой установке.

Т.е. загружаешь свежее arduino 1.5.8, ставишь, копируешь из подкаталогов все указанные мною в посте файлы в один каталог и пускаешь make.

У меня в командной строке: make atmega328 BAUD_RATE=230400 SUPPORT_EEPROM=1

Удобно делать в вирт машине, например в vmware player ставишь xp и там экспериментируешь.

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

так должна быть 1.5.8?

я на 1.0.6 пробовал

и кстати windows7

хорошо попробую на вирт машине xp накатить и проверить

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

накатил виртуальную машину. чистую ардуину идэ. и обе версии: 1.5.8 и 1.0.6. и что толкьо не делал

и нифига. ошибки также сыпятся. нахрен. больше не буду даже больше пытаться. цель перестала оправдывать средства

osetroff а ты больше похож на садиста

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

нашел бутлоадер в инете на скорость 38400, правда не optiboot и занимает 1к памяти

как и предполагалось работает программирование через uart при 3.3в питания, и теперь не нужно гордить 2 питания: для микроконтроллера и nrf24l01 или дисплея

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

nkk аватар

Спасибо за проект.

Внезапным для меня оказался фьюз изменения BOD6 у меня 2.7, Ваш генератор предложил 1.8.

Не понятно, как добавлять в boards.txt: архитектура изменилась.

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

Почитал тему, захотелось попробовать поиграться с Atmega8L. С горем пополам спаял такую штуку


Захотелось запустить это на внутреннем генераторе на 1 мегагерц. Короче изломал всю голову, читал и тему и интернет до пара из ушей. В конструкторе бутлоадера сгенерил вставку в boards.txt, правда не очень понял в какой файл вставлять. В тот, который в мои документы/ардуино/. или в тот который с/програм файл/ардуино. Не понял как сделать hex файл. Скопировал из ИЕ в блокнот и сохранил, тоже сам не понял куда. Короче полный лес.

Может кто-то напишет что-нибудь вроде ПРОШИВКА БУТЛОАДЕРА АТМЕГА8L ДЛЯ ЧАЙНИКА? Разобраться самому уже потерял надежду.

А вот с булоадерами стандартными, которые есть в Ардуино IDE нет ни каких проблем. А так хочется Атмегу8 на 1 мегагерц запустить!

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

Jeka_M аватар

Эта ошибка никак не связана с бутлоадером и уже много раз обсуждалась, надо было просто погуглить. В файле avrdude.conf для выбранного микроконтроллера неправильно указана сигнатура. Она не совпадает с той, которая считывается из МК. Ну или бывает вообще не считывается, вместо сигнатуры сплошные нули. Тогда это проблема с соединением.

Это ключ для командной строки вызова avrdude, чтобы игнорировать ошибку.

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

[quote=Jeka_M. Это ключ для командной строки вызова avrdude, чтобы игнорировать ошибку.[/quote]

А как эту avrdude вызвать и куда вставлять ключ?

Проверил, может что с платой. Тестером в режиме проверки диодов прозвонил на землю все выводы, и цифровые и аналоговые. Все показвают 0.9в. Вроде ни чего не замкнуто и не оборвано

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

Jeka_M аватар

А как эту avrdude вызвать и куда вставлять ключ?

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

Avrdude - это консольная утилита для прошивки микроконтроллера, Arduino IDE после компиляции прошивки вызывает эту утилиту с параметрами. Находится она тут: \hardware\tools\avr\bin\avrdude.exe, конфигурационный файл: \hardware\tools\avr\etc\avrdude.conf

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

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

А как эту avrdude вызвать и куда вставлять ключ?

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

Avrdude - это консольная утилита для прошивки микроконтроллера, Arduino IDE после компиляции прошивки вызывает эту утилиту с параметрами. Находится она тут: \hardware\tools\avr\bin\avrdude.exe, конфигурационный файл: \hardware\tools\avr\etc\avrdude.conf

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

Не знаю что и делать. Так и пишет "инвалид сигнатура". Может кто знает куда копнуть, как узнать где проблемма?

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

Jeka_M аватар

Не знаю что и делать. Так и пишет "инвалид сигнатура". Может кто знает куда копнуть, как узнать где проблемма?

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

Jeka_M аватар

Я вот сейчас специально проверил и указал неправильную сигнатуру для Atmega328P в avrdude.conf, оно мне выдало такие строки:

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

Включил подробный вывод, вот что получил

Если объясните, что это означает, буду очень благодарен. Сам я в этих записях ни чего не понимаю.

Спасибо, что откликнулись на мою проблему.

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

Попробовал зашить откалькулированный загрузчик на Atmega 328. Хотел на 1 ьегагерц, но калькулятор позволяет только 8 мегагерц от внутреннего генератора.

Первая попытка не увенчалась успехом, т.к. атмега была с загрузчиком и на кварц 16 мегагерц. Подсунул ей кварц, все получилось. Через ISP записал Blink, все нормальгно, моргет раз в секунду. Прошил загрузчик на 8 мегагерц снова и попробовал загрузить Blink через TX, RX. Подключил DTR. и хрен вам. Респ 0Х00.

Короче получилось, но совсем не совсем.

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

Крик вопиющего в пустыне. Знатоки, подскажите. Я так понимаю, что загрузчик нужен для загрузки через UART.

Но получается, что загрузчик работает только на стандартных для Ардуино частотах. В других случаях придется заливать скетчи через ISP? Получается что калькулятор служит лишь для правильного выставления фьюзов.

Я правильно понял?

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

Конструктор позволяет задать любую частоту, 1мгц на внутреннем генераторе достигается включением 8 мгц и включением делителя на 8.

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

Конструктор позволяет задать любую частоту, 1мгц на внутреннем генераторе достигается включением 8 мгц и включением делителя на 8.

Да с частотой примерно понятно. У меня получилось записать загрузчик на Atmegy 328 на частоту от внутреннего кварца 8 мегагерц. Но залить в нее скетч через UART не удалось. только через ISP. Это на самом деле невозможно, или это мои кривые руки?

Потом переписав на загрузчик от UNO (Atmega 328 16m), проверил, льется через UART без проблем.

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

P.S. Еще один вопрос. Подскажите, пожалуйста, возможно ли лить скетчи через UART, например, в Atmega 8 int 1mhz ?

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

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

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

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

Спасибо. Будем экспериментировать.

Жаль, что конструктор не актуален. Как я понял, многие им пользуются

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

Прогрес не стоит на месте, смысла в ардуинах на атмегах 16мгц сейчас не вижу. Уже есть ESP8266 , где проц значительно мощнее и писать код так же можно как в ардуино получая сразу wi-fi интерфейс. У меня проект вообще не использует ардуино IDE и работает на чистом Си и имеет огромный функционал по сравнению с ардуинами..

PS. конструктор временно не работает, будет работать скорее всего только вечером.

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

Короче, эту гребаную Atmega8L я не победил :( Так и не понял, что ей не хватает, и что означает сигнатура 00000.

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

dimax аватар

Joiner, ай яй яй, а как же добиваться своего?)

Для тебя скомпилил бут и вставку :) Проверил -работает !

бутлоадер для меги 8/8L на 1 МГц :

Вставка для boards.txt

Для новых версий ардуины потребуется ещё пару строк:

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

Joiner, ай яй яй.

Попробовал. не получилось. Видима причина в другом :(

Упорно пишет: " Yikes! Invalid device signature.

Double check connections and try again, or use -F to

override this check."

Может сам микроконтроллер неисправный? Я не знаю как это проверить.

При подробном выводе говорит что сигнатура 00000000, одни нули.

P.S. Пробовал поиграть с Atmega 328 d DIP корпусе на макетке. Все прошло без особых проблем. Делал на частоту 1 мегагерц, 8 мегегерц от внутреннего генератора и 16 мегагерц от внешнего кварца. Использовар выше означенный калькулятор. Получились работоспособные МК, но по UART шился только с внешним кварцем на 16 мегагерц.

А прошитые на 1 и 8 мегагерц от внутреннего, через ISP скетчи заливались, а через UART категорически отказались, типа RESP 0X00.

Вы здесь: Home Железо Arduino Конструктор Bootloader`а для Arduino

Микроконтроллеры Atmega обычно программируются через интерфейс ISP (SPI),но для этого необходимо,хоть и недорогой,но всетаки программатор. Данный способ для подключения использует 5 проводов (SCK, MISO, MOSI, reset, GND).

Но используя специальный загрузчик, зашитый в нижнюю область памяти микроконтроллера можно прошивать через последовательный порт используя выводы (RX, TX ,reset, GND) - Так прошиваются платы Arduino, на которых установлена микросхема переходник USB-RS232. Загрузчик активируется командой сброса на выводе reset микроконтроллера и ждет очень небольшой промежуток времени, если передача по последовтельному порту не началась, то управление переходит на нулевой адрес микроконтроллера, где находится основная программа.

В младших моделях м/к загрузчик занимает всего 512 байт. В Arduino Duemilanove он был 2048 байт.

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

Данный конструктор автоматически создает загрузчик для микроконтроллера , указывает фьюзы для прошивки, а так же генерирует пример блока для вставки в файл board.txt в среде Arduino IDE. Загрузчик можно создать для работы на конкретный кварц или внутренний задающий генератор(например на 8 мгц или 1 мгц). Занижение рабочей частоты ведет к понижению энергопотребления, к сожалению это уменьшает максимальную скорость загрузки.

В конструкторе используется загрузчик optiboot.

Поддерживаемые м/к: Atmega328P, Atmega168 Atmega88 , Atmega8, Atmega16 ,Atmega32.Возможно добавление и других м/к.

Настройка Arduino IDE.

Если Вы хотите добавить среду Arduino нестандартный микроконтроллер (Atmega16 или Atmega32) или использовать не стандартный кварц (не на 16 мгц)., то необходимо в файл boards.txt ,который находится в папке arduino\hardware\arduino/ добавить дополнительную секцию, которую создаст конструктор.

Для Atmega16 и Atmega32 необходима установка своего ядра - это описано в статье Добавляем поддержку не родных м/к в среду Arduino

Конфигурация загрузчика

Для конфигурации загрузчика необходимо для начала выбрать Ваш микроконтроллер и указать задающий генератор:

Внешний кварц - Используя внешний кварц,подключаемый к выводам XTAL м/к. Так же необходима установка конденсаторов на 22pF ,подключенных на GND.

Внутренний генератор - внутренний генератор м/к ,который,в зависимости от модели м/к может работать на 1,2,4,8 мгц.При этом освобождаются выводы XTAL м/к для своих целей.

Watchdog - Внутренний неточный генератор на 256 кгц для системы Watchdog.Доступен не на всех м/к.

Загрузчик может использовать программный последовательный порт,который может назначен на другие выводы м/к (В стадии тестирования). Обратите внимание, что при некоторых частотах программный UART включается принудительно.

На низких частотах, например с использованием Watchdog, возможны с проблемы с загрузкой прошивки, если у вас нет хорошего программатора( который умеет понижать частоту), то использовать низкую частоту не рекомендую !! Понижение частоты возможно на программаторе USBasp с avrdude с ключем -B

Установка загрузчика

После того, как Вы выберете необходимые опции и нажмете создать HEX конструктор выдаст команды для прошивки через утилиту avrdude ,а так же ссылки на статьи , как прошить загрузчик через плату Arduino или USBasp.

Кстати,данными командами можно и не пользоватся,если вы уже добавили блок в board.txt и скопировали загрузчик в папку \hardware\arduino\bootloaders\optiboot\ а затем выбрав в меню Сервис - записать загрузчик.

Вы здесь: Home Железо Arduino Программируем м/к Atmega через Arduino

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

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

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

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

spiy

У плат серии 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:

arduinoISP

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

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

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

arduinoISP2

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

arduinoISP3

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

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

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

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

arduinoISP5err

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

arduinoISP4

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

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

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

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

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

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

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

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

spiy

У плат серии 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:

arduinoISP

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

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

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

arduinoISP2

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

arduinoISP3

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

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

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

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

arduinoISP5err

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

arduinoISP4

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

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

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

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

_EndWar_ аватар

Да в статье у автора конструктора ведь всё понятно и просто описано и про фьюзы и про боард.тхт.

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

_EndWar_ аватар

Понял я проблему парни. В ардуино иде когда загружаешь программу через ардуино исп в левый МК надо нажимать кнопку "загрузить с помощью программатора".

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

Понял я проблему парни. В ардуино иде когда загружаешь программу через ардуино исп в левый МК надо нажимать кнопку "загрузить с помощью программатора".

Ну это как бы естественно. Во всех мануалах есть об этом.

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

Пробовал, этот совет ведёт на вашу ссылку

Не прокатило. Завтра вечером засяду заново, может что решу. А может старые файлы на винте найду.

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

_EndWar_ аватар

"Как бы естественно" для нас с Вами. а парень же просил помочь. )) и по вопросу как бы естественно что только начинает.

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

Ну подскажите мне, гуру микроконтроллерные, где я косячу.

Цель: сделать из микроконтроллера atmega328p-au ардуино совместимую плату, при этом atmega328p-au должен работать без кварца.


Добавляю в boards.txt указанные строки, добавляю скачанный hex файл в указанные директории.

Подключаю Arduino mini Pro (5v, 16MHz) atmega328p, заливаю в неё скетч ArduinoISP. Скетч залит успешно.

Подключаю к Arduino mini Pro (5v, 16MHz) atmega328p микроконтроллер atmega328p-au,

+5v -> контакт №4 и №6 (также пробовал подключать контакт №18)

GND -> контакт №3, №5, №21

pin10[RST] -> контакт №29[RESET]

pin11[MOSI] -> контакт №15[MOSI]

pin12[MISO] -> контакт №16[MISO]

pin13[SCK] -> контакт №17[SCK]

Согласно данной иллюстрации:

Как выглядит мой стенд:


Не видно, но питание есть, стоит кварц(вытаскиваю когда не нужен), RST подтянут резистором на 10к к +5V. Данный стенд у меня около года, им прошито десятки микроконтроллеров(правда стандартным бутлоадером). Также я принял свой собственный цветовой стандарт для проводов RST, MOSI, MISO, VCC, GND, SCK, Rx, Tx. Эти провода у меня всегда у всех моих поделок имеют одинаковый цвет для каждого, наебаться с подключением при такой системе невозможно, учтено что Rx-Tx подключается перекрёстно.

Собственно стенд собран, микроконтроллер закрыт и готов к заливке бутлоадера, ардуино в роли программатора готово.

Выбираю новую плату, это: atmega328p (8 MHz)

Выбираю программатор - Arduino as ISP

Жму "Записать загручик" в меню Сервис

А теперь внимание, всё что написал выше абсолютно не имеет значения, так как загрузчик успешно записался, ошибок не возникло, а значит всё предыдущее выполнено абсолютно верно! Или не факт?

Всё, бутлоадер пролит. Выдёргиваем всё лишнее. Точнее выдёргиваем ВСЁ, оставив только подтягивающий RST резистор. Берём USB-UART переходник, от него подаём на микроконтроллер +5V, GND, DTR->RST, Rx и Tx. Выставляем в IDE arduino-1.0.5-r2-windows нужный ком порт, программатор AVRISP mkII и в качестве платы выбираем atmega328p (8 MHz). Берём стандартный скетч Blink. Пробуем залить. И нифига. Ок. Откидываю RST, пробую вручную стартовать контроллер, и тоже нифига. Меняю местами RxTx и тоже нифига. На UART адаптере лишь несколько раз мигает светодиод, означающий передачу. Приёма нет.

А теперь прошу помощи, например у тех, кто готов помочь, или у тех, кто развёл руками и ушел.

P.S. Также пробовал и другие бутлоадеры, предложенные в этой ветке. Тоже не загружаются скетчи.

Читайте также: