Прошивка Atmega328 программатором без Bootloader-а
- Войдите на сайт для отправки комментариев
Всем добрый день!
Я здесь новичок, так что прошу отнестись снисходительно к вопросу.
Я правильно понимаю, что если есть программа, созданная в Arduino IDE, то получившийся в результате .hex код можно напрямую залить в голую Atmega328 (без загрузчика) с помощью какого-нибудь программатора. Вопрос связан вот с чем: собрал макет моего проекта в Proteus-е, отладил на нём код - всё работает. Причём в Proteus я подсовывал в качестве прошивки именно hex-файл. Но ведь Proteus ничего не знает про Arduino, он знает, что такое Atmega328... Вот я планирую взять программатор, что-то типа ChipProg40 и прошить микросхему напрямую. Далее спаять схему из отдельных частей (руки позволяют). Должно ведь так получиться? Или есть какие-то нюансы, которые я не учёл? Всем заранее спасибо за ответ.
Ну, в момент, когда у Вас есть схема в протеусе + прошивка для МК, ардуино ко всему этому хозяству уже не имеет никакого отношения. Так что если схема разработана правильно и ошибок при монтаже не будет - все должно заработать, а все потенциальные проблемы относятся уже к самой схеме и к ардуине отношения не имеют.
Работа Arduino IDE закончится в тот момент, когда она обработает wiring и передаст готовый текст на вход avrgcc.
Отлично, спасибо Вам! Так я себе и представлял. Просто я начал знакомство с AVR-ами через Arduino и уже научился синтаксису в IDE от Arduino. Т.е. я уже привык кодить в этой IDE. :) Хотя спаять простейшую платку для меня не представляет проблем.
Vittaly, если у вас уже есть плата Ардуино и нет программатора, можно прошить скетч в отдельный чип Atmega328 с помощью ArduinoISP (http://arduino.cc/en/Tutorial/ArduinoISP):
1. Залить на дуину скетч ArduinoISP
2. Соединить дуину и чип
3. включить дуину, вырубить авторезет на дуине, соединив RST и +5в через резистор 115 ом.
4. Выбрать павильную "плату", нажать Burn bootloader (так я записываю фьюзы)
5. Написать скетч, Нажать "Upload using programmator".
6. имеем: скетч залит вместо бутлойдера
К примеру у меня работает такая "минимальная конфигурация" ("Minimal Circuit"), внизу страницы: http://arduino.cc/en/Tutorial/ArduinoToBreadboard
Т.е. в качестве программатора используется имеющаяся дуина. Ок. Я понял. Этот способ может пригодиться, спасибо, toc!
Так же не забываем про правльную конфигурацию фьюз-битов для МК без бута, которые тоже можно шить дуиной.
Ну, я так понимаю, из фьюзов там единственное, что надо - это выставить внешний резонатор на 16MHz, да деление на 8 отключить. Остальное, вроде бы как, по умолчанию оставить можно, правильно?
В общем, кому интересно, докладываю. Да, действительно, описанный мной способ работает без проблем. Шьём .hex файл и выставляем нужные фьюзы (внешний кварц >8 МГц и отключение деления на 8).
прошив единожды загрузчик мы конфигурируем тем самым на чистом контроллере фьюзы?
Да, но фьюзы можно сконфигурировать и без прошивки загрузчика.
А потом , используя пункт "Upload using programmator" фактически заливаем ΗΕΧ и затираем загрузчик?
Да, загрузчик затирается, но выставленные до этого фьюзы остаются.
мне не совсем понятен вопрос... посмотрите этот топик, может там есть ответ