Конструктор bootloader а для arduino

Обновлено: 17.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 Добавляем поддержку не родных м/к в среду Arduino IDE

Добавляем поддержку не родных м/к в среду Arduino IDE

Иногда можно использовать в своих проектах умного дома более простые или слабые микроконтроллеры,где ресурсов может быть достаточно для простых операций -Такие микроконтроллеры дешевле.Кроме программирования таких микроконтроллеров в более сложной среде разработки в WinAVR или CodeVisionAVR можно использовать среду Arduino IDE,добавив их поддержку.Иногда могут пригодится микроконтроллеры с бОльшим количеством портов,например Atmega16 и Atmega32 - их так же можно программировать в Arduino.

Обратите внимание,что обычно микроконтроллер с завода настроен на внутренний генератор и чаще всего прошивка загрузчика переключает микроконтроллер на внеший кварц - так что Вы должны позабодиться о подключении кварца к выводам микроконтроллера(выводы XTAL) по стандартной схеме.Исключение - серия attiny и некоторые другие м/к..

Серия микроконтроллеров ATtiny

attiny13,attiny2313, attiny45, attiny44,attiny85, attiny84, attiny25, attiny24, attiny4313

Цоколевка микроконтроллеров

Для программирования ATtiny 13/25/45/85 подключим его к нашему программатору согласно даташиту:

ATtiny

Примечание: У ATtiny13 нет шины i2c и имеет всего 1кб под программу.У ATtiny 25/45/85 имеется последовательный порт на выводах PB4 -RX ,PB3 - TX ,но м/к не поддерживают загрузку через его,только обмен данными.

У ATtiny 2313 и 4313 другая цоколевка,но подключается так же:

attiny2313

Настройка Arduino IDE для микроконтроллеров ATtiny

Для этого необходимо дописать нужные микроконтроллеры в файл boards.txt и распаковать архив arduino-tiny в папку папка_arduino/hardware/arduino/

Последнюю версию arduino-tiny можно найти тут.

Например ,чтобы добавить в список поддерживаемых контроллеров ATtiny85 необходимо добавить следущий текст в boards.txt:

Остальные примеры поддерживаемых микроконтроллеров можно посмотреть в файле Prospective Boards.txt архива arduino-tiny .

Для ATtiny13 необходимо другое ядро ,для этого распакуем архив в папку hardware\arduino\cores\core13\

и добавляем в список boards.txt:

attiny13.name=ATtiny13 (internal 9.6 MHz clock)
attiny13.bootloader.low_fuses=0x7a
attiny13.bootloader.high_fuses=0xff
attiny13.upload.maximum_size=1024
attiny13.build.mcu=attiny13
attiny13.build.f_cpu=9600000L
attiny13.build.core=core13
attiny13.build.variant=tiny8

Сейчас мы можем программировать добавленные микроконтроллеры через плату Arduno или USBasp.

Другие микроконтроллеры ATmega

ATmega8 без загрузчика

Чтобы добавить м/к ATmega8 без загрузчика добавляем в boards.txt следущий текст:

ATmega8 имеется в списке поддерживаемых как Arduino NG or older с загрузчиком,который отнимает 1 кб ,при таком загрузчике микроконтроллер можно прошивать стандартно,установив его например в Arduino UNO. Сконфигурировать свой загрузчик на другую частоту вы можете в Конструкторе Bootloader`а .

ATmega32 ,ATmega16,ATmega1284,ATmega644,ATmega324

Для добавления данных микроконтроллеров необходимо распаковать из архива avr-netino папку hardware\avrnetio и поместить её в папку Arduiono_ide\hardware\ .Другие папки с примерами и библиотеками можно так же распаковать в соотвествующие папки при необходимости.

Расмотрим пример на микроконтроллере ATmega32:

atmega32pin

Микроконтроллер ATmega32 имеет 40 ножек из них 32 - это порты ввода вывода.

Расшифруем основные из них:

D - это цифровые выводы в нумерации arduino.

AI - аналоговые входы.

PWM - выводы с возможностью ШИМ.

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

Хотя avr-netino и поставляется с загрузчиками,но загрузка через последовательный порт на ATmega32 у меня не заработала.Для загрузки через его необходимо подсунуть "правельный" загрузчик в папку /hardware/avrnetio/bootloaders/optiboot/ из архива boots.zip ,заменив в файле board.txt имя файла загрузчика в строке bootloader.file соотвествующего микроконтроллера .Сконфигурировать свой загрузчик на другую частоту вы можете в Конструкторе Bootloader`а

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

Вы здесь: Home Железо Arduino Добавляем поддержку не родных м/к в среду Arduino IDE

Добавляем поддержку не родных м/к в среду Arduino IDE

Иногда можно использовать в своих проектах умного дома более простые или слабые микроконтроллеры,где ресурсов может быть достаточно для простых операций -Такие микроконтроллеры дешевле.Кроме программирования таких микроконтроллеров в более сложной среде разработки в WinAVR или CodeVisionAVR можно использовать среду Arduino IDE,добавив их поддержку.Иногда могут пригодится микроконтроллеры с бОльшим количеством портов,например Atmega16 и Atmega32 - их так же можно программировать в Arduino.

Обратите внимание,что обычно микроконтроллер с завода настроен на внутренний генератор и чаще всего прошивка загрузчика переключает микроконтроллер на внеший кварц - так что Вы должны позабодиться о подключении кварца к выводам микроконтроллера(выводы XTAL) по стандартной схеме.Исключение - серия attiny и некоторые другие м/к..

Серия микроконтроллеров ATtiny

attiny13,attiny2313, attiny45, attiny44,attiny85, attiny84, attiny25, attiny24, attiny4313

Цоколевка микроконтроллеров

Для программирования ATtiny 13/25/45/85 подключим его к нашему программатору согласно даташиту:

ATtiny

Примечание: У ATtiny13 нет шины i2c и имеет всего 1кб под программу.У ATtiny 25/45/85 имеется последовательный порт на выводах PB4 -RX ,PB3 - TX ,но м/к не поддерживают загрузку через его,только обмен данными.

У ATtiny 2313 и 4313 другая цоколевка,но подключается так же:

attiny2313

Настройка Arduino IDE для микроконтроллеров ATtiny

Для этого необходимо дописать нужные микроконтроллеры в файл boards.txt и распаковать архив arduino-tiny в папку папка_arduino/hardware/arduino/

Последнюю версию arduino-tiny можно найти тут.

Например ,чтобы добавить в список поддерживаемых контроллеров ATtiny85 необходимо добавить следущий текст в boards.txt:

Остальные примеры поддерживаемых микроконтроллеров можно посмотреть в файле Prospective Boards.txt архива arduino-tiny .

Для ATtiny13 необходимо другое ядро ,для этого распакуем архив в папку hardware\arduino\cores\core13\

и добавляем в список boards.txt:

attiny13.name=ATtiny13 (internal 9.6 MHz clock)
attiny13.bootloader.low_fuses=0x7a
attiny13.bootloader.high_fuses=0xff
attiny13.upload.maximum_size=1024
attiny13.build.mcu=attiny13
attiny13.build.f_cpu=9600000L
attiny13.build.core=core13
attiny13.build.variant=tiny8

Сейчас мы можем программировать добавленные микроконтроллеры через плату Arduno или USBasp.

Другие микроконтроллеры ATmega

ATmega8 без загрузчика

Чтобы добавить м/к ATmega8 без загрузчика добавляем в boards.txt следущий текст:

ATmega8 имеется в списке поддерживаемых как Arduino NG or older с загрузчиком,который отнимает 1 кб ,при таком загрузчике микроконтроллер можно прошивать стандартно,установив его например в Arduino UNO. Сконфигурировать свой загрузчик на другую частоту вы можете в Конструкторе Bootloader`а .

ATmega32 ,ATmega16,ATmega1284,ATmega644,ATmega324

Для добавления данных микроконтроллеров необходимо распаковать из архива avr-netino папку hardware\avrnetio и поместить её в папку Arduiono_ide\hardware\ .Другие папки с примерами и библиотеками можно так же распаковать в соотвествующие папки при необходимости.

Расмотрим пример на микроконтроллере ATmega32:

atmega32pin

Микроконтроллер ATmega32 имеет 40 ножек из них 32 - это порты ввода вывода.

Расшифруем основные из них:

D - это цифровые выводы в нумерации arduino.

AI - аналоговые входы.

PWM - выводы с возможностью ШИМ.

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

Хотя avr-netino и поставляется с загрузчиками,но загрузка через последовательный порт на ATmega32 у меня не заработала.Для загрузки через его необходимо подсунуть "правельный" загрузчик в папку /hardware/avrnetio/bootloaders/optiboot/ из архива boots.zip ,заменив в файле board.txt имя файла загрузчика в строке bootloader.file соотвествующего микроконтроллера .Сконфигурировать свой загрузчик на другую частоту вы можете в Конструкторе Bootloader`а

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. Также пробовал и другие бутлоадеры, предложенные в этой ветке. Тоже не загружаются скетчи.

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