Программирование АТмега8 с помощью ардуино нано

dronsoft
Offline
Зарегистрирован: 02.06.2011

Привет всем кто подскажет как мне запрограммировать АТм8 с помощью ардуино нано версия вроде 5 

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

для начала надо прошить ардуино загрузчик. Сделать из ардуино прошивалку для бутлоадера масса статей.  а вот как заливать прошивку в ардуину через другую ардуино я пока сам застрял...

Mogalkov
Offline
Зарегистрирован: 23.06.2011
Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

В этой статье всего лишь говориться о том как собрать и прошить бутлоадер. (о чем выше я упоминал) а о том как заливать скетчи через ардуино в роли программатора ничего не сказано.

Вот выдержка из статьи: 

Для заливки прошивки в контроллер можно использовать:
USB-TTL конвертер (его можно собрать или купить);
Arduino-совместимая плата со снятым контроллером. 

Mogalkov
Offline
Зарегистрирован: 23.06.2011

МК-90 Минимальный клон Arduino за $3 на ATmega8A с модифицированным bootloader'ом пишет:

Зачем нужен bootloader, если есть ArduinoISP?

использование bootloader'a обеспечивает совместимость и с Arduino IDE, и с AVR Studio;
меньше проводов для подключения (вместо линий ISP только UART). При этом UART часто используется для отладки, поэтому его все равно приходится подключать.

Тоесть можно и без бутлоадера обойтись, но все прошивки предется зашивать через ISP. И да, не забудь что ардуино подобные платы работают на частоте 16МГц, а следовательно к ATmega8 нужно кварц прикрутить. Тебе нужно зашить файл скетча также как бутлоадер. В ардуино иде выбери ATmega8, кнопку компиляции нажимай с зажатым шифтом, в окне отчетов будет написан путь к hex файлу. Вот этот хекс и зашивай вместо бутлоадера.
 

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

Вот за это спасибо! В ардуино иде выбери ATmega8, кнопку компиляции нажимай с зажатым шифтом, в окне отчетов будет написан путь к hex файлу. Вот этот хекс и зашивай вместо бутлоадера. 

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

сегодня первый раз в жизни прошил микроконтроллер не ардуино, но через ардуино) Вобщем через FTDI 232 на плате дуемилановы. Припаял недостающие 4 пина, собрал кабель и всё как по инструкции. Теперь есть прошитый загрузчик на моей атмеге8, я пока её гоняю в плате дуемилановы, примеры типа морганий работают)) делал по вот этому материалу http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html 

Mogalkov
Offline
Зарегистрирован: 23.06.2011

 Ардуино (устройство) может быть программатором не только для ардуино совместимых контроллеров, но и для любых авр. Единственно что писать не на ардуино иде а на С (мне нравится avr gcc). 

dronsoft
Offline
Зарегистрирован: 02.06.2011

Mogalkov пишет:

 Единственно что писать не на ардуино иде а на С (мне нравится avr gcc). 

Это что такое.

dronsoft
Offline
Зарегистрирован: 02.06.2011

Вот не могу разобраться как тут расключить  

если у меня 

вот в чем вопрос.

Mogalkov
Offline
Зарегистрирован: 23.06.2011

Не совсем понял вопрос, ты хочешь прошить этой платой, или эту плату?

dronsoft
Offline
Зарегистрирован: 02.06.2011

Да хочу этой малой прошить атмегу8  

Mogalkov
Offline
Зарегистрирован: 23.06.2011

 Ну также как и с обычной дуиной. 

dronsoft
Offline
Зарегистрирован: 02.06.2011

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

"avrdude: stk500_getsync(): not in sync: resp=0x15"

 

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

Я делал выше. Там всё не однозначно, но в принципе не сложно. Там если атмега "нулёвая" то она не работает на больших скоростях, её стирал, потом прошивал и выставлял фьюзы.  Но это всё я делал на дуэмиланове. Высунул 328атмегу, вставил 8ю, собрал кабель и всё как по инструкции

Mogalkov
Offline
Зарегистрирован: 23.06.2011

 Попробую понять:

1)В Ардуино ИДЕ выбирается нужная плата (если та мелкая как на картинке то nano w/atmega168) и в нее зашивается скетч ArduinoISP

2)Все собирается на макетку, пины у нано такие же как и у дуэмилановы.

3)В Ардуино ИДЕ выбирается атмега8 и с шифтом (чтобы видеть путь к хекс файлу) компилируется скетч для нее.

4)Заливаем через avrdude хекс в atmega8. Скетч в виде хекс файла заливается ВМЕСТО бутлоадера.
  примерно так: avrdude.exe -v -patmega8 -cstk500v1 -PCOM10 -b19200 -U flash:w:hexfile.hex 

 

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

dronsoft
Offline
Зарегистрирован: 02.06.2011

А дудка это авердуде?

 

Mogalkov
Offline
Зарегистрирован: 23.06.2011

dronsoft пишет:

А дудка это авердуде?

 

да

leshak
Offline
Зарегистрирован: 29.09.2011

Mogalkov пишет:

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

У меня получалось. С mega1280, но в данной вопросе, как я понимаю, отличий от нано нет.

Первый два шага аналогичны:

  1.  В ардуино зашиваем скетч ArduinoISP
  2. Все собираем на макетку

Потом в папке с АрдуиноIDE находим файлик hardware\arduino\boards.txt

Дописываем в его конец в него что-то типа:

######################################################

atmega8using_arduinoisp.name=ATmega8 external 16 mhz using ArduinoISP

atmega8using_arduinoisp.upload.protocol=stk500
atmega8using_arduinoisp.upload.maximum_size=7168
atmega8using_arduinoisp.upload.speed=19200

atmega8using_arduinoisp.bootloader.low_fuses=0xdf
atmega8using_arduinoisp.bootloader.high_fuses=0xca
atmega8using_arduinoisp.bootloader.path=atmega8
atmega8using_arduinoisp.bootloader.file=ATmegaBOOT.hex
atmega8using_arduinoisp.bootloader.unlock_bits=0x3F
atmega8using_arduinoisp.bootloader.lock_bits=0x0F

atmega8using_arduinoisp.build.mcu=atmega8
atmega8using_arduinoisp.build.f_cpu=16000000L
atmega8using_arduinoisp.build.core=arduino

atmega8using_arduinoisp.upload.using=arduinoisp

(я шил atmegа8 c внешним кварцем на 16-ть).

Перезапускаем IDE. Идем в Tools/Boards и выбираем только что созданную плату "ATmega8 external 16 mhz using ArduinoISP". 

После этого скетчи будут заливаться в mega8 на макетке использую ардуину в качестве программатора (главное что-бы в самой ардуине скетч ArduinoISP был залит).

Mogalkov
Offline
Зарегистрирован: 23.06.2011

 Если атмега8 с внешним и на 16МГц то в ардуино изначально под нее есть запись в boards.txt "Arduino NG or older w/ ATmega8".

leshak
Offline
Зарегистрирован: 29.09.2011

  Да. Есть. Но это "изначальное" подойдет только если вы шьете атмега8 через USB-TTL конвертер. То ест комп льет скетч напрямую в вашу мегу8. Кроме того предполагается что в этой меге уже прошит бутлоадер.

Если вы просто выберете ""Arduino NG or older w/ ATmega8", то IDE попытается залить скетч в вашу ардуину (не знаю чем это закончится для нее), а не в мегу на макетке.

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

Ключевая строчка-отличие ""atmega8using_arduinoisp.upload.using=arduinoisp".

Все остальные параметры я действительно скопировал  из описания платы "Arduino NG or older w/ ATmega8", поменяв префикс "atmega8." на ""atmega8using_arduinoisp." и подкорректировал название платы.

Mogalkov
Offline
Зарегистрирован: 23.06.2011

Я имел в виду зачем добавлять новый, не проще ли изменить тот что уже есть?

leshak
Offline
Зарегистрирован: 29.09.2011

 Имелось ввиду, зачем добавлять еще одну борду, а не изменить описание той которая есть?

Ну во первых "эксперементировать лучше на копии", во вторых потом я к внешней atmega8 прицепил таки USB-TTL конвертер (сделал из кабеля для мобилки), залил внее бутлоадер и получил на макетке еще одну  "бюджетную ардуину".

Которую можно прошивать двумя способами: через "купленную ардуину в режиме программатора" или напрямую через сапомальный шнурок. Способ выбирается выбором платы: "Arduino NG or older w/ ATmega8" если нужно "напрямую" и ""ATmega8 external 16 mhz using ArduinoISP" если нужно через программатор. И не нежуно каждый раз править boards.txt и перезапускать IDE.

 

Mogalkov
Offline
Зарегистрирован: 23.06.2011

Я просто скопировал boards.txt с другим именем, а из того что использую вообще кучу всего поудалял, чем пользоваться пока не собираюсь.

leshak
Offline
Зарегистрирован: 29.09.2011

 Ну как наводить порядок в своих исходниках это уже "на вкус и цвет фломастеры разные". Можно вообще все под source control,  типа git, положить и переключатся между ветками.

Меня-бы больше напрягало плодить файлы. Мне описание плат которые я не использую ничем не мешают. Но это уже дело вкуса и привычек.

Но что-то мы уже в offtop уехали. К изначальному вопросу "как прошить одну ардуину, с помощью другой" это отношения уже не имеет.

Итого нашли два пути: Через саму IDE и через дудку. Через IDE думаю, все-таки удобней в процессе разработке (нажал одну кнопку и готово), а через дудку удобней когда "нужно прошить много плат" и сама прошивка уже меняется не часто. Можно просто заготовить несколько батников для заливки.

ABC
Offline
Зарегистрирован: 08.10.2011

 ######################################################

atmega8using_arduinoisp.name=ATmega8 external 16 mhz using ArduinoISP

atmega8using_arduinoisp.upload.protocol=stk500
atmega8using_arduinoisp.upload.maximum_size=7168
atmega8using_arduinoisp.upload.speed=19200

atmega8using_arduinoisp.bootloader.low_fuses=0xdf
atmega8using_arduinoisp.bootloader.high_fuses=0xca
atmega8using_arduinoisp.bootloader.path=atmega8
atmega8using_arduinoisp.bootloader.file=ATmegaBOOT.hex
atmega8using_arduinoisp.bootloader.unlock_bits=0x3F
atmega8using_arduinoisp.bootloader.lock_bits=0x0F

atmega8using_arduinoisp.build.mcu=atmega8
atmega8using_arduinoisp.build.f_cpu=16000000L
atmega8using_arduinoisp.build.core=arduino

atmega8using_arduinoisp.upload.using=arduinoisp

 

Здравствуйте,а может кто нибудь подсказать,какие будут фузы и биты для варианта 8мГц без кварца.

Или ссылку где про это можно почитать.

Заранее спасибо.

leshak
Offline
Зарегистрирован: 29.09.2011

Сам не пробовал на внутреннем (внешний кварц стоит не настолько дорого, что-бы потом "сюрпризы" вылавливать),

но гугл на слова "boards.txt atmega8 uses internal oscillator" первой ссылкой выдает todbot.com/blog/2009/05/26/minimal-arduino-with-atmega8/

Насколько я понимаю, там есть то что вам нужно.

 

ABC
Offline
Зарегистрирован: 08.10.2011

leshak пишет:

 

Насколько я понимаю, там есть то что вам нужно.

 

Спасибо,как раз то что надо.

LEVV2006
LEVV2006 аватар
Offline
Зарегистрирован: 15.04.2011

Я так ничего и не понял. Как мне залить бутлоадер а потом и прошивку в АТмега8 . Имеется Arduino Duemilanove 

leshak
Offline
Зарегистрирован: 29.09.2011

 А я не понял чего вы ожидаете?

Что вам еще раз повторят то что написанно выше?

Либо вникайте (можете еще стандартынй туторил почитать http://arduino.cc/en/Tutorial/ArduinoISP), либо конкретней вопрос задавайте.

LEVV2006
LEVV2006 аватар
Offline
Зарегистрирован: 15.04.2011

удалось прошить используя только arduino IDE