Прошивка Atmega328 программатором без Bootloader-а

Vittaly
Offline
Зарегистрирован: 19.04.2013

Всем добрый день!

Я здесь новичок, так что прошу отнестись снисходительно к вопросу.

Я правильно понимаю, что если есть программа, созданная в Arduino IDE, то получившийся в результате .hex код можно напрямую залить в голую Atmega328 (без загрузчика) с помощью какого-нибудь программатора. Вопрос связан вот с чем: собрал макет моего проекта в Proteus-е, отладил на нём код - всё работает. Причём в Proteus я подсовывал в качестве прошивки именно hex-файл. Но ведь Proteus ничего не знает про Arduino, он знает, что такое Atmega328... Вот я планирую взять программатор, что-то типа ChipProg40 и прошить микросхему напрямую. Далее спаять схему из отдельных частей (руки позволяют). Должно ведь так получиться? Или есть какие-то нюансы, которые я не учёл? Всем заранее спасибо за ответ.

tsostik
Offline
Зарегистрирован: 28.02.2013

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

Работа Arduino IDE закончится в тот момент, когда она обработает wiring и передаст готовый текст на вход avrgcc.

Vittaly
Offline
Зарегистрирован: 19.04.2013

Отлично, спасибо Вам! Так я себе и представлял. Просто я начал знакомство с AVR-ами через Arduino и уже научился синтаксису в IDE от Arduino. Т.е. я уже привык кодить в этой IDE. :) Хотя спаять простейшую платку для меня не представляет проблем.

toc
Offline
Зарегистрирован: 09.02.2013

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

Vittaly
Offline
Зарегистрирован: 19.04.2013

Т.е. в качестве программатора используется имеющаяся дуина. Ок. Я понял. Этот способ может пригодиться, спасибо, toc!

maksim
Offline
Зарегистрирован: 12.02.2012

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

Vittaly
Offline
Зарегистрирован: 19.04.2013

Ну, я так понимаю, из фьюзов там единственное, что надо - это выставить внешний резонатор на 16MHz, да деление на 8 отключить. Остальное, вроде бы как, по умолчанию оставить можно, правильно?

Vittaly
Offline
Зарегистрирован: 19.04.2013

В общем, кому интересно, докладываю. Да, действительно, описанный мной способ работает без проблем. Шьём .hex файл и выставляем нужные фьюзы (внешний кварц >8 МГц и отключение деления на 8). 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Цитата:

прошив единожды загрузчик мы конфигурируем тем самым на чистом контроллере фьюзы?

Да, но фьюзы можно сконфигурировать и без прошивки загрузчика.

Цитата:

А потом , используя пункт "Upload using programmator" фактически заливаем ΗΕΧ и затираем загрузчик?

Да, загрузчик затирается, но выставленные до этого фьюзы остаются.

Гриша
Offline
Зарегистрирован: 27.04.2014

мне не совсем понятен вопрос... посмотрите этот топик, может там есть ответ