Как прошить загрузчик в Atmega8515 и работать с контроллером через Arduino Ide
- Войдите на сайт для отправки комментариев
Вс, 10/11/2013 - 16:42
Задался вопросом и много искал инфы, но пока ничего не получилось. Короче нужно работать с Atmega8515. Писать на Си сложно. Хочу писать прогу в Ide. Кто поможет инфой как залить загрузчик для данной Atmega (или на любой другой AT вообще) и надо ли менять что-то в Ide. Заранее спасибо.
попробовать скомпилировать загрузчик optiboot и добавить секцию в ардуино ,то же самое как м/к атмега8
А как быть с Arduino.pins??? Ноги у всех контроллеров-то разные... Как тут быть?
да.. возможно тут нужно ядро avrnetio ,которое используется для атемега16 и 32- почитал сейчас даташит
Optiboot в codevision компилирует с ошибкой.
К сожалению надо вплотную разбиратся с этим м/к на сколько он похож с мегой16 и 32 .Проще купить ардуинку или мегау32 и не мучатся ))
Я согласен, но походу распиновка разная!!! Питание у 8515 по углам, а у 32 в центре. + нет АЦП
Да если сложно писать в других средах разработки то лучше вообще не смотреть в сторону других микроконтроллеров.
тут главное не другая распиновка ,а внутреннее строение ... вижу только разницу,что у 8515 на одну инструкцию меньше :) кроме объема флеш..
В общем ..используя avrnetio добавляем блок в board.txt и пробуем стандартые функции работы с портами,типа блинка..
У 8515 есть порт Е. Как с ним быть... Ладно. Попробую. Спасибо, что обнадёжил.
Короче ничего не получилось. Ругается за FUSE биты. Банальное переименование 644 в 8515 в файле boards не дало плоды. Короче я так понимаю, что не получится ничего. В тщетных поисках загрузчика скомпилированного под 8515 стоптал пальцы. Скомпилировать optiboot в codevision тоже не получилось - бесконечные ошибки в библиотеках.
:(
Чтобы поблинкать надо сначало загрузчик залить, а не получается
Чтобы поблинкать надо сначало загрузчик залить, а не получается
для этого загрузчик не нужен
Надо смотреть какие ошибки - думаю там можно под его загрузчик переделать.
Загрузчик не обязателен,если прошивать через программатор или ардуину.
со фьюзами надо внимательнее и не трогать их ,если не знаешь что куда..
А как скетч из Arduino IDE залить в 8515 без boot loader-a?? Ведь я так понимаю IDE компилирует скетч под определенный тип МК которые имеются в списке плат. Просветите пожалуйста
Выбрать в меню "прошить с помощью программатора".
Как добавить м/к в список, я описывал тут http://homes-smart.ru/index.php/oborudovanie/arduino/dobavlyaem-podderzhku-ne-rodnykh-m-k-v-sredu-arduino-ide . Смотрим пример для ATmega32 ,но фьюзы не пишем,т.к. их надо сначала расчитать
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATMEGA8515
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATMEGA8515
Вот что выдало. Но написал об успешной записи.
И статью я эту прочитал уже n раз.
А вот за "Выбрать в меню "прошить с помощью программатора". - вот за это низкий поклон. Стыдно, что не заметил, но просто она в меню файл.
С помощью DDR и PORT блинкать получается. А вот digitalWrite и остальная компания пока не хочет. Ща буду ещё копать. Благодарю за неравнодушие.
Hail Atmel SS
На эту ошибку можно не обращать внимания,а вот карта пинов нумерации надо аналогично по атмега32 смотреть,но с учетом того,что там другая распиновка
analog и digital Write не хотят и всё. Надо лезьт в Arduino pins. Ща буду пробовать. Хотя там чёрт ногу сломает
А прописывать ATMEGA8515 вместо 32?
ещё раз спасибо.
А прописывать ATMEGA8515 вместо 32?
ДА
Кстати,карту пинов надо править в папке ядра avrnetio
отут? D:\Дуня\arduino-1.0.1\hardware\arduino\varian\avrnetio ???
да ,указали же ядро avrnetio в блоке board.txt
Суть понял, но реализовать тяжеловато. Напишу что вышло.
Порт А не заработал как дискретный выход. Пины идут как-то не по порядку. В тексте описания ног много условий, с адресацией "сом21" и "comob1" . Может это связано с сигнатурой мк??? Может кто помочь отредактировать программу для определения функций ног 8515го [в картинке распиновки в квадратных скопках указаны ноги 8515го если они отличаются от 644го]
Тихо сам с собой.
Вобщем порты A,B,C,D - работают. ШИМ на порту Д работает, на А - нет. Порт Е пока не работоспособен.
Пока что поменял только значение количества аналоговых входов на ноль. Ту би континуе
Порт Е заработал и ШИМ на нём. Остался только ШИМ на порте Б. В конце выложу исходник.
Все порты и шимы заработали. Вешаю на доску почёта MaksMS-а. Не знаю будут ли работать i2c TxRx пррерывания но мне кажеться что да. Кому интересно код файла распиновки.
Почитайте Вставка программного кода в тему/комментарий.
А чего за ошибки с компиляцией бутлоадера ? попробовал сейчас - даже не пикнуло и компилируется без проблем.
Добавил сюда загрузчик http://homes-smart.ru/index.php/oborudovanie/arduino/avr-zagruzchik
Проверяйте ,особенно фьюзы перепроверить не помешает..
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATMEGA8515
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATMEGA8515
avrdude: invalid byte value (null) specified for immediate mode
avrdude: read from file 'null' failed
Это при попытке прошивки через последовательный порт ?
Больше попыток запуска загрузчика не было ?
Поправил код загрузчика в конструкторе для адаптации под ATmega8515
Arduin, будьте добры кликните мне на почту msgen1@mail.ru. Очень нужна Ваша помощь.
Спасибо за помощь, но я и без зашрузчика шью его. Меня пока устраивает. Если будет свободное время, которого у меня всё меньше - попробую обязательно.
И самое главное забыл написать. А кто так по ракишному расставил номера портов на avernetio?... Сплошная путаница! Надо было по кругу от 1 ноги и до самого конца, а так как будто бык насцсал, специальное усложнение. Это наверное какой-то гений решил подкинуть заподлишка))))))
Здравствуйте, уважаемые форумчане!
Заинтересовала данная тема, т.к. недавно мне попались несколько ATmega8515 и ATmega8535. Захотелось программировать их через Arduino IDE. Ну чтобы там как у всех нормальных людей типа.
Прочитал данную тему, а также статьи:
Добавляем поддержку не родных м/к в среду Arduino IDE
Конструктор Bootloader`а для Arduino
Программируем м/к Atmega через Arduino
Однако положительного результата добиться пока не удалось. Вот вкратце описание моих действий.
В конструкторе загрузчика выбрал следующие параметры:
- внешний кварц
- частота 16000000
- галочку «использовать делитель на 8» не ставил
- модель м/к: atmega8515
- установил галочку «программный UART». Порт D, RX-0, TX-1
- галочку «отключить светодиод загрузчика» не ставил
С этими параметрами создал hex-файл.
Далее скачал предлагаемый архив avr-netino, который распаковал в папку с IDE: C:/ARDUINO/hardware/avrnetio/
В файле boards.txt (тот, что лежит папке C:/ARDUINO/hardware/avrnetio) добавил следующий блок (строчки сформированы Конструктором при создании hex-файла с указанными выше параметрами):
hex-файл загрузчика поместил в папку C:/ARDUINO/hardware/avrnetio/bootloaders/optiboot
Супер-программатора специального у меня нет, поэтому решил попробовать использовать Arduino Mega для загрузки загрузчика.
Подключил ATmega8515 Arduino Mega следующим образом. Для наглядности также приведу распиновку ATmega8515 из даташита:
нога6: PB5(MOSI) -> digital_51(MOSI Arduino Mega)
нога7: PB6(MISO) -> digital_50(MISO Arduino Mega)
нога8: PB7(SCK) -> digital_52(SCK Arduino Mega)
нога9: RESET -> digital_53(SS Arduino Mega)
нога20: GND -> GND Arduino Mega
нога 40: Vcc -> 5V от Arduino Mega
Также подключил кварц 16МГц на ноги 18(XTAL2) и 19(XTAL1). Конденсаторы 22пФ также присутствуют как показано на схемке:
Использую версию IDE 1.0.3. Далее опять по рецептам из упомянутых статей. Выбираю из меню Файл-Примеры-ArduinoISP. Далее в меню Cервис выбираю соответствующий COM-порт, плату – atmega8515 и заветное «Записать загрузчик».
После этого светодиод RX на Arduino Mega моргает ровно три раза, и затем IDE выдает ошибку:
avrdude: stk500_getsync(): not in sync: resp=0x00
Ну что-то вроде "фиг-фиг сказали вашей морде!"
Пытался также в файле
C:/ARDUINO/hardware/avrnetio/variants/avrnetio/pins_arduino.h
заменить код на тот, что приводится в этом комментарии (я так понял это и есть исправленное описание пинов именно для ATmega8515 ?!).
Однако после перезапуска IDE возникает аналогичная ошибка.
Уважаемые ARDUIN, MaksMS и все другие камрады, кто в теме! Подскажите, в чем может быть трабл?!
P.S. сорри за столь длинный пост.
К сожалению мне никто так и не отписался по поводу того что рабочий ли загрузчик создает конструктор )).
Прошивать программы конечно можно и без загрузчика..
Что в случае прошивки программы ,что в случае прошивки загрузчика должен быть выбран программатор Arduino as ISP
Сначала надо добится загрузки(найти ошибки) прошивки в микроконтроллер ,а потом уже устанавливать загрузчик- он нужен только для загрузки прошивки через UART переходник.
MaksMS, спасибо, что ответили!
В общем-то проблема благополучно разрешилась. Всего лишь нужно было мне повнимательнее прочитать статью
Превращаем Arduino Duemilanove в Uno
Оказывается я не залил сначала скетч из примера ArduinoISP в мою arduino mega, которую я использовал в качестве программатора.
После заливки скетча ArduinoISP мне удалось прошить загрузчик в atmega8515 без каких-либо проблем.
Потом удалось поблинькать, когда я нашел соответствие к распиновке atmega8515. Также нашлись три ШИМа, упомянутых в даташите. Они даже работают.
Т.е. ваш конструктор создает вполне рабочий загрузчик! Огромный респект вам! Это реально круто!
Чуть позже попробую сконфигурировать загрузчик на другой кварц. 16МГц у меня в дефиците, зато есть свободный 14,318МГц. По результату напишу.
Возник такой еще вопрос. В даташите на atmega8515 не упоминается ничего про аналоговые входа. И в использованном файле с распиновкой также количество указанных выводов выставлено в 0:
Т.е. atmega8515 в принципе не может работать с аналоговым сигналом? Или можно все же как-то использовать аналоговые датчики? Датчик освещенности на основе фоторезистора к примеру.
Повторюсь , загрузчик нужен только если необходима заливка через UART -так работают все платы ардуино,где установлен USB-UART переходник..
Если прошивать микроконтроллер через ардуину загрузчик не нужен !
Кварц другой поставить по идее можно , работать будет ,просто в конфиге boards необходимо поменять на частоту кварца.
На счет аналоговых входов - необходимо просто посмотреть даташит , там все должно быть ясно расписано..
Повторюсь , загрузчик нужен только если необходима заливка через UART -так работают все платы ардуино,где установлен USB-UART переходник..
Если прошивать микроконтроллер через ардуину загрузчик не нужен !
Да, это понятно. Заливать скетчи через другую arduino ничего не мешает, просто мне хотелось заливать именно через UART. Как будет готов переходник попробую.
На счет аналоговых входов - необходимо просто посмотреть даташит , там все должно быть ясно расписано..
ОК, покурю даташит вечерком!
Попробовал создать загрузчик для кварца 14,318 МГц. Все успешно прошилось и работает! Спасибо еще раз за конструктор.
MaksMS, подскажите, а как быть с ATmega8535? Разница между ATmega8515 только в распиновке. Ну еще один ШИМ есть. Можно ли использовать ваш конструктор в этом случае?
По идее должно работать.. НО рекомендую проверить фьюзы - они могут быть другие. Если есть отличия ,то в будущем добавлю и 8535
По идее должно работать.. НО рекомендую проверить фьюзы - они могут быть другие. Если есть отличия ,то в будущем добавлю и 8535
Спасибо! Проверю фьюзы и отпишу по результату.
Здравствуйте. У меня проблема. Так получилось, что неправильно выставил фьюзы, отвечающие за интерфейсы ISP и JTAG в TOOLS\DEVICE PROGRAMMING в ATMEL STIDIO. У меня плата ARDUINO MEGA c ATMEGA2560. Что делать? Ни один из интерфейсов не работает и программировать не получается. ((((((( У меня в наличии программатор JTAGICE3
Здравствуйте. У меня проблема. Так получилось, что неправильно выставил фьюзы, отвечающие за интерфейсы ISP и JTAG в TOOLS\DEVICE PROGRAMMING в ATMEL STIDIO. У меня плата ARDUINO MEGA c ATMEGA2560. Что делать? Ни один из интерфейсов не работает и программировать не получается. ((((((( У меня в наличии программатор JTAGICE3
Как данная тема связана с микроконтроллерами Atmega8515 ?
Учитесь пользоваться гуглом ,почитайте про высоковольтный программатор..
помогите новичку. собрал я из Atmega8515 и PL-2303HX некое подобие клона аруинки. всё прошил, всё работает, диодом поблинькал. но есть одна проблема. никак не могу научить её заливать скетчи без нажатия кнопки reset. в интернетах пишут, что нужно от 2 ноги (DTR) PL-2303HX повесить конденсатор 0.1uF и от +5 резистор 10к на reset. но не помогло. мега перезагружается(это видно по моргающему диоду), но заливка не идёт.
заметил, что автоматически она перезагружается немного раньше, чем надо. если перезагрузить вручную с задержкой примерно 500мс заливка проходит нормально.
я так думаю, где-то в загрузчике надо увеличить время ожидания заливки. там вроде 500 мс стоит. если бы увеличить до 1000 думаю всё пошло бы. вот только пока не разобрался как.
UPD:
Разобрался!
взял исходники с https://github.com/Optiboot/optiboot и дописал для Atmega8515
кому надо вот https://drive.google.com/file/d/0B_ism14iBa7Pb1ZlOTBwLVIzZWc/view?usp=sharing
собирал в Arduino IDE 1.6.3
Здравствуйте.Помогите пожалуста разобратся с листингом соответствия пинов Атмеги 8515 - к пинам ардуины. За ранее спаибо
Задался вопросом и много искал инфы, но пока ничего не получилось. Короче нужно работать с Atmega8515. Писать на Си сложно. Хочу писать прогу в Ide. Кто поможет инфой как залить загрузчик для данной Atmega (или на любой другой AT вообще) и надо ли менять что-то в Ide. Заранее спасибо.