Как прошить загрузчик Arduino (ATmega8A)

Zhyravlev_AS
Offline
Зарегистрирован: 03.04.2013

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

В этом посте я хочу рассказать как залить Bootloader и выставить Fuse для ATmega8A. По тому как сам новичек в этом деле, испытавал большие сложности в сеё деле. Инфы на просторах интернета на столько много, что она не поможет. А скорее запутает начинающего ардуинщика.

И так, господа профи.. прошу не пинать, если что не так =)

Что понадобится:

1. Arduino UNO (думаю клоны тоже подойдут)

2. "Голая" ATmega8A

3. Среда разработки Arduino (у меня была 1.0.4)

4. Программа AVR Burn-O-Mat

5. Программа AVR DUDE

Что будем делать:

1. Подключим наш камюшек к UNO

2. Зальем Arduino ISP

3. Изменим FUSE

4. Зальем Bootloader

5. Протестируем

Приступаем.

1. Подключите ваш камень как показано на рисунки ниже

2. После этого открываем Arduino IDE и идем в Файл - Примеры - ArduinoISP

 
Теперь выбираем плату 
 

И после этого жмем записать загрузчик

 

2. Изменим FUSE.

Установите программы AVR Burn-O-Mat и AVR DUDE последнию распакуйте например на работчий стол в папку avrbube.

Откройте программу Burn-O-Mat. Выбирите AVR type, у нас ATmega8

Идем Settings - AVRDUDE

AVRDUDE location указываем файл avrdude.exe который был в архиве программы AVR DUDE во второй строке указываем файл avrdude.conf который лежит тут же. Пока все. Нажимаем Ок и перезагружаем программу.

Открываем эти же настройки, у нас в списке Programmer должно появиться всекого разного. Мы выбираем ардуино. Далее ставим ком порт, тот на котором у Вас адруино. ( у меня сначало была на 9, но там почему то максимум до 8, по этому пришлось посадить на 2 порт который был свободен.) В нижней строчки, пишем тоже самое. После чего жмем Ок. В главном окне программы на потив выбранного нами AVR типа жмем Fuse. В открывшемся окне жмем Read Fuse. Если у Вас возникнет ошибка отключите ардуино от юсб и снова включите. После чего ещё раз жмем прочитать фьюсы. Если все успешно прочиталось, ставим галочки так как на картинки:

После того как поставили галочки жмем записать фьюсы (write fuses). Если сообщили об успешной записи то закрываем программу.

4. Зальем Bootloader

Отключите Вашу UNO от USB извлеките микросхему и установите на её место ATmega8A (все проводки можно удалить)

Подключаем нашу плату. Заходим в Arduino IDE. Проверьте что бы был выбран правильный ком порт и плата, как на картинки. 

После этого жмем записать загрузчик

 

Если загрузчик записался, то могу поздравить. Теперь у Вас не камень я сердце ардуино)))

5. Протестируем

Залейте этот код:

/*
  Зажигаем светодиод на одну секунду, затем выключаем его на  
  одну  секунду в цикле.
*/

void setup() {               
  // Инициализируем цифровой вход/выход в режиме выхода.
  // Выход 13 на большинстве плат Arduino подключен к светодиоду на плате.
  pinMode(13, OUTPUT);   
}
 
void loop() {
  digitalWrite(13, HIGH);   // зажигаем светодиод
  delay(1000);              // ждем секунду
  digitalWrite(13, LOW);    // выключаем светодиод
  delay(1000);              // ждем секунду
}
После чего светодиод (L) на плате должен маргать. =)
 
Вот и все. На приктике оказалось это намного проще чем в теории)) Надеюсь мой пост поможет многим новечкам в этом деле.
 
P.S. Хочу выразить огромную благодарность Андрею Перминову, который и помогал мне в этом деле!

 

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

А для чего нужны  AVR Burn-O-Mat и AVR Dude?

1. Вроде AVR dude уже стоит у всех кто поставил arduinoIDE. В папке hardware\tools\avr\bin\
2. Для чего вообще нужен шаг "3. Изменим FUSE"?, разве на шаге "Зальем Bootloader" у вас с помощью, все той же avrdude не будут опять перезаписаны фьюзы? Если включить File/Preferences "Show verbose output during upload", то там будет видно, как при загрузке бутлоадера происходит вызов avrdude с фьюзами. А фьюзы возмутся и файлика hardware\arduino\boards.txt 

atmega8.bootloader.low_fuses=0xdf
atmega8.bootloader.high_fuses=0xca

Вообщем может я не прав, но мне кажется что пункт с фьюзами можно сократить. Как из лени, так из снизить шанс "сделать ошибку".

Но - это не критика. Скорее уточнение. Безусловно вы полезное руководство написали. 

А еще я не совсем понял. На картинке "Подключите ваш камень как показано на рисунки ниже" у вас показан вариант "атмега без кварца", а при загрузке бутлоадера вы выбираете плату "Arduino NG or older w/ ATmega8", которая имет бутлоадер и кварц на 16-ть.
У вас точно "
После чего светодиод (L) на плате должен маргать. =)"?

Zhyravlev_AS
Offline
Зарегистрирован: 03.04.2013

 

С шагом 3 я точно не могу знать) описал так как меня научили. 

И да, в 4 пункте ошибка (вот что значит новичок))

Подключаем камень как на этой картинки (с кварцем и керамическими конденсаторами на 22 пФ) можно сразу так подключить, но можно и потом добавить кварц с конденсаторами.

 

После чего в Arduino IDE идем Сервис - Программатор - Arduino as ISP
 
 
Теперь выбираем плату 
 

И после этого жмем записать загрузчик

 

Только теперь можно изъять микросхему из ардуино, и поставить на неё ATmega8A.

После чего пункт 5 точно заработает. =)

 

Кто тут админы, можно это в первом сообщении исправить?)

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

Тогда уж и тему назовите что-то типа "Как прошить загрузчик". Где оживление то? Скейтчи можно и без загрузчика через ArduinoISP заливать. 

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

maksim пишет:

Тогда уж и тему назовите что-то типа "Как прошить загрузчик". Где оживление то? Скейтчи можно и без загрузчика через ArduinoISP заливать. 

Дык такие темы уже есть на форуме  :) А "просто прошить", так  официальный туториал и содержит все нужное Arduino - ArduinoISP

И кстати это вам понятно что "нужно прошить загрузчик", и это вы будете гуглить "как прошить загрузчик". А новичку это все страшно и непонятно. Не зря он, именно как новичок, так назвал тему. И другой новичок, возможно, будет искать именно "как оживить", а не "как прошить".

Но все это "не точно", "лишние шаги", "уже было" - все второстепенно. А важно
1. Топикстартер не поленился расшаририть свой опыт. Причем постарался качественно сделать это, в меру своего понимания (со скриншотами, пошаговым объяснениям). Тут важно не запинать его энтузиазм нашей тягой к формальной правильности.
2. У новичков действительно большой тормоз дает именно "страх". И такие статьи с красивыми картинками и "я новичок вот так смог" - помогают двинутся дальше.
3. Иногда, как ни странно "новичок новичку" - может лучше объяснить чем опытный. Именно потому что опытному уже трудно стать на место чайника и понять "что же тут не ясного".

 

triada13
Offline
Зарегистрирован: 04.01.2013

Согласен с уважаемым leshak, страх убить камень оч. тормозит новичков, лично для меня он стал одной из причин купить PinBoard 2. Лично мне на ней было легче прошить и фузы и загрузчик.

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

Вот, к примеру, прикольная статья именно как оживить ATmega8, если например, выставили неправильно фьюзы SPIEN или RSTDISBL без параллельного/высоковольтного программатора.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Спасибо :)

vasjn23
Offline
Зарегистрирован: 14.05.2013

Вобсна тоже вопрос по теме:

Прошил бутлоадер через USBasp - все вроде встало - скетч в память загружается и Всё. Дальше никаких действий не происходит.. Где зарыта собака???

 

Oleg321
Offline
Зарегистрирован: 15.05.2013

Там два файла прошивки попробуйте другой.

vasjn23
Offline
Зарегистрирован: 14.05.2013

Спасибо. Сейчас попытаю счастье!

 

vasjn23
Offline
Зарегистрирован: 14.05.2013

Да помогло! Спасибо! очевидное лежало на поверхности

radist_morze
Offline
Зарегистрирован: 26.05.2013

Доброе время суток! Не дождался заказа Ардуино решил собрать сам, спаял на макетке Atmega 168PV-10PU програматор собрал по статье http://robocraft.ru/blog/arduino/50.html и пытался шить паралельным программатором из ардуины, пробовал разные виды плат в ответ такая фраза "avrdude: Expected signature for ATMEGA168 is 1E 94 06".
Перебирал варианты плат с контроллером 168, только коды разные, позже спутился до Atmega8, ответ тот же.

Странно при прописывании БутЛоадера фъюзы зашиваются, но я не увидел там ничего похожего на сигнатуру контроллера.

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

Вам сюда.

ТРИ МИРА
ТРИ МИРА аватар
Offline
Зарегистрирован: 09.01.2012

Что то тут не так или я просто запутался в разрыве инструкции (((

yuzax
Offline
Зарегистрирован: 28.09.2013

Ссылки не работают. Нашол AVR8-Burn на офс сайте а в ней нет в настройках "Arduino"

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

Друзья, объясните пожалуйста, а почему в статье 2 раза записывается загрузчик?

Пункт 2:   После этого жмем записать загрузчик

Пункт 4: После этого жмем записать загрузчик

Или куда по мнению автора записывается он первый раз, а куда второй?

ascon
ascon аватар
Offline
Зарегистрирован: 14.08.2013

Zhyravlev_AS пишет:

Подключаем камень как на этой картинки (с кварцем и керамическими конденсаторами на 22 пФ) можно сразу так подключить, но можно и потом добавить кварц с конденсаторами

вот вы не указали какой кварц а если я вставлю туда 8 МHz(при прошивки).  А при сборке самой платы ардуино будет 16 МHz. Работать то будет  delay(1000)/

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

поделюсь своим опытом тоже, раз уж все делятся

но это для многкратного испльзования. на один раз использовать любые другие способы

так как испльзую в SMD исполнении то пользуюсь таким переходником

http://www.ebay.com/itm/Flap-QFP32-TQFP32-PQFP32-TO-DIP32-Programmer-Soc...

Для тех кто использует DIP удобен такой переходник, раз в 10 дешевле

http://www.ebay.com/itm/1PCS-28-pin-28-Pins-Test-Universal-ZIF-IC-Socket...

программирую через USBASP. лучше такой в котором можно менять напряжение

http://www.ebay.com/itm/USBASP-USBISP-AVR-Programmer-Adapter-10-Pin-Cable-USB-ATMEGA8-ATMEGA128-Arduino-/310506909410?pt=LH_DefaultDomain_0&hash=item484ba76ee2

далее так как я использую smd сделал плату разъемом для программирования светодиодом присутствия питания и светодиодом на 13 пине, заливаю blink для тестирования

фото позже выложу

для тех кто в dip все проще. хоть припаиваетесь проводами к zip адаптеру

никакого кварца не надо (я не испльзую кварц, работаю на 8мгц внутреннего генератора, обычно хватает)

далее нужна программа extreme avr burner

http://extremeelectronics.co.in/software/BurnerAVR/extreme_burner_avr_v1...

устанавливаем и запускаем. 

открываем прошивку, открываем вкладку фьюзы. для внутреннего генератор нужны такие фьюзы

обязательно поставить галочки write. теперь просто нажимаем кнопку сверху Write All и бутлоадер зашьется

если постоянно не получается прошить а ошибок в монтаже нет, и чип выбран правильно расскажу что делат дальше

DimonBee
Offline
Зарегистрирован: 25.01.2014

Имеется плата Pinboard 1.1 с залоченной мега16 и программатор PX-400 с внешним USB-COM адаптером. Я так понимаю, этого более, чем достаточно, чтобы прошить любой контроллер.

Также имеются в наличии две Atmega8-16PU в DIP корпусах. Кварцев любых наковырять из старых компьютерных плат тоже не проблема. Помогите сделать ардуинку на базе этих корпусов!

Премудростей обратных и прямых фьюзов я так и не понял. Собственно, в процессе экспериментов залочил нафиг мегу16. Теперь уже страшно за это браться. Кстати, на пинборде ещё есть встроенный FT BB Prog. Уже голова идёт кругом от этого "разнообразия".

Клапауций
Offline
Зарегистрирован: 10.02.2013

DimonBee пишет:

Имеется плата Pinboard 1.1 с залоченной мега16 и программатор PX-400 с внешним USB-COM адаптером. Я так понимаю, этого более, чем достаточно, чтобы прошить любой контроллер.

Также имеются в наличии две Atmega8-16PU в DIP корпусах. Кварцев любых наковырять из старых компьютерных плат тоже не проблема. Помогите сделать ардуинку на базе этих корпусов!

Премудростей обратных и прямых фьюзов я так и не понял. Собственно, в процессе экспериментов залочил нафиг мегу16. Теперь уже страшно за это браться. Кстати, на пинборде ещё есть встроенный FT BB Prog. Уже голова идёт кругом от этого "разнообразия".

мегу16-ю похороните, как павшую от рук врага, для меги8-й для кого тема написана?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

мне понравилась программа для вашего программатора Avr-Osp II. фьюзы и галочками проставляются, а можно просто ввести 16ричные числа

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

залоченную можно разлочить (точно не помню, в инете найдете) любым программатором, все выводы как обычно, только reset подается не на микроконтроллер, а на базу транзистора, с помощью которого увеличивается напряжение на reset до 12В кажется. и можете зашить свои фьюзы

DimonBee
Offline
Зарегистрирован: 25.01.2014

Atmega8-16PU - это мега 8 или 16?

Клапауций
Offline
Зарегистрирован: 10.02.2013

DimonBee пишет:

Atmega8-16PU - это мега 8 или 16?

8-я

 

DimonBee
Offline
Зарегистрирован: 25.01.2014

Расскажите, плиз, как в неё зашить ардуиновский бутлоадер имеющимся у меня оборудованием? Есть кварцы на 8,12 и 16МГц. Реально из этих двух Мег8 собрать пару ардуинок?

Клапауций
Offline
Зарегистрирован: 10.02.2013
SatBoom
Offline
Зарегистрирован: 16.02.2014

Мой опыт клонирования Ардуино Уно р3! на чип Atmega 328 PU!!

Собираем схему как в первом посту.

Подключаем, загружаем скетч Arduino ISP

Далее открываем блокнотом avrdude.conf

находим строчку # ATmega328P

и правим сигнатуру signature = 0x1e 0x95 0x0f;

на signature = 0x1e 0x95 0x14; 

сохраняем.

выбираем  плату Arduino Uno

программатор Arduino as ISP и жмем Загрузить загрузчик, ждем когда прошьет.

Отключаем Ардуинку, вынимаем МК и ставим ту что прошили, возвращаем сигнатуру в файле  avrdude.conf на signature = 0x1e 0x95 0x0f;

все готова, теперь можно включать Ардуинку и загружать свои скетчи, проверено все работает. 

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

 

van1
Offline
Зарегистрирован: 17.03.2014

Доброго дня!
Попытался прошить сей контроллер(atmega8L), установленный на макетку, воспользовавшись Arduino Uno c Atmega328P и ArduinoIDE 1.0.5
Перед этим долго курил форумы, промимо этого форума:

1. http://mk90.blogspot.ru/2011/01/arduino-3-atmega8a-bootloader.html#comment-form

2. Соответсвующие статьи о прошивке с помощью платы ардуино на arduino.cc

3. и здесь
http://wiki.amperka.ru/программирование:работа-с-attiny-через-arduino

4. Еще всякое.

Все останавливается на попытке прошить загрузчик. До заливки какого-либо скетча не дошло, т.е. atmega328 не выдергивал. Ресет atmega8L соединен с пин10, как написано. (а вообще-то.. если честно, как правильно обращаться с ресетом - не понял, пишут очень много - выдернуть-вставить руками, прокинуть через 10ком на *5в и проч. - пробовал все это в разных комбинациях)

Подключение - как в ссылках
(http://flank1er.blogspot.ru/2014/03/avr-atmega8-arduino-ide-c-avrdude.html и другие)

Сначала пробовал просто, не мудрствуя, воспользоваться пунктом Arduino NG or older on /w Atmega8

Потом пробовал залить те файлы с бутлоадером и boards.txt, которые рекомендованы по первой ссылке.

Потом менял туда и обратно avrdude с родного на тот, который рекомендован по первой ссылке.

Потом вернул исходный avrdude и добавил бутлоадер и кусочек в boards.txt вот отсюда

http://www.hackmeister.dk/2011/01/new-bootloader-file-for-atmega8l/

(как понял, отличается от NG только частотой кварца)

Пишет:

avrdude: Device signature = 0x000000
Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

(было в какой-то момент
avrdude: stk500_getsync(): not in sync: resp=0x00
но в этом случае, скорее всего ресет я неправильно подключил)

Так понимаю, что причины могут быть разными. Но, честно говоря, уже готов сдаться - что делать не знаю. Все пишут, что справились с проблемой. Я- пока нет.
Может, кто-то что-то посоветует? Простое решение - что-то поправить? atmega8l и atmega8 чем-то отличаются, кроме частоты кварца? Плохой чип? С Arduino Uno что-то связано? В общем, я в растерянности, уже два дня убил. Заранее спасибо.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а вы кварц с конденсаторами для меги 8 ставили?

 

van1
Offline
Зарегистрирован: 17.03.2014

Кварц не ставил, подсоединял по схеме без кварца. Кстати, я нечетко написал, прошиваю не 8, а 8L.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

хорошо какие фьюзы зашили?

van1
Offline
Зарегистрирован: 17.03.2014

Руками ничего не менял.

Стоят в boards.txt:

atmega8l.bootloader.low_fuses=0xdf
atmega8l.bootloader.high_fuses=0xca
 

Последний отчет о работе avrdude:

C:\Program Files (x86)\Arduino\hardware/tools/avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega8 -cstk500v1 -P\\.\COM3 -b19200 -e -Ulock:w:0x3F:m -Uhfuse:w:0xca:m -Ulfuse:w:0xdf:m

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM3
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
         AVR Part                      : ATMEGA8
         Chip Erase delay              : 10000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom         4    20   128    0 no        512    4      0  9000  9000 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash         33    10    64    0 yes      8192   64    128  4500  4500 0xff 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse          0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse          0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock           0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
avrdude: Send: A [41] . [80]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [02]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [81]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [01]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [82]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [12]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [98]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
avrdude: Send: A [41] . [84]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [85]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [86]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [87]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [89]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: Send: A [41] . [81]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [01]
avrdude: Recv: . [10]
avrdude: Send: A [41] . [82]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [12]
avrdude: Recv: . [10]
avrdude: Send: B [42] p [70] . [00] . [00] . [01] . [01] . [01] . [01] . [02] . [ff] . [00] . [ff] . [ff] . [00] @ [40] . [02] . [00] . [00] . [00]   [20] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: Send: E [45] . [05] . [04] . [d7] . [c2] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: Send: P [50]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]
avrdude: AVR device initialized and ready to accept instructions

Reading | avrdude: Send: V [56] 0 [30] . [00] . [00] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
avrdude: Send: V [56] 0 [30] . [00] . [01] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
################avrdude: Send: V [56] 0 [30] . [00] . [02] . [00]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [00]
avrdude: Recv: . [10]
################################## | 100% 0.06s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.

avrdude: Send: Q [51]   [20]
avrdude: Recv: . [14]
avrdude: Recv: . [10]

avrdude done.  Thank you.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну отлично. вы прошили для работы от внешнего кварца. взяли файлы от 16МГц схемы с кварцем, а схему от 8МГц на внутреннем генераторе

замените на

0xE4

0xDC

и перешейте. если не получится придется цеплять кварц. в файле боадс поправьте частоту на 8МГЦ

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

van1
Offline
Зарегистрирован: 17.03.2014

Способ 1 не помог.

Теперь пишет

avrdude: Device signature = 0xffffff

остальное тоже самое.

 

Способ 2 - поищу кварц, попробую, отпишусь.  Так понимаю, нужен именно на 8 МГц?

 

Кстати в боардс у меня строчка

atmega8l.build.f_cpu=8000000L

разве это не означает, что она для кварца на 8 мгц?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да для кварца 8мгц. но для кварца

1 способ и врядли бы заработал. кварца ведь нет (это если зашили свои фьюзы)

заработал бы если бы чистая мега была

van1
Offline
Зарегистрирован: 17.03.2014

Ок, спасибо, пошел искать кварц. Что-то из параметров, кроме частоты, критично?

 

"Чистая мега" - это имеете в виду 8, а не 8L?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

да ничего. теоретический можно и частоту не соблюдать (ниже не выше). хоть на 1мгц воткнуть, но я лично не проверял

кварц нужен вам только чтобы фьюзы сменить

van1
Offline
Зарегистрирован: 17.03.2014

Тогда следующий вопрос. Если я нахожу кварц на 8 мгц, то я ставлю значения фьюзов из вашего письма выше. Если я нахожу другой кварц, с меньшей частотой, то как для него фьюзы посчитать? Вроде бы где-то я видел какой-то фьюз калькулятор, или по-другому?

Нашел кварц 6.144 МГц. Что прописать в boards?

 

И еще вопрос. Допустим, я беру какой-нибудь контроллер, пытаюсь прошить его через ардуино и, случайно, неправильно его выбираю в меню "плата". После этого у него фьюзы прописываются ошибочно, если его частота иная, и в такой ситуации придется всегда  браться за внешний кварц?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

если контроллер не тот дудка должна тебе выдасть ошибку неверный тип контроллера

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

это как машина которая может работать и на бензине и на газу. если сказал работать на бензине, машине не важно если ли газ. тоже самое и с газом. 

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

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

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

van1
Offline
Зарегистрирован: 17.03.2014

Эта, спокойнее...

Я все внимательно читаю. Возможно, не все быстро схватываю, т.к. с контроллерами ковыряюсь всего месяц.

А с прошивкой только третий день.

На счет фьюзов я понял. Вопрос был - зависит ли значение фьюзов от частоты генератора. Из ответа я понял - не зависит. То, что для кварца и его отсутствия фьюзы разные - я давно понял.

И главное. Вроде прошился!!!!

Cейчас скетч какой-нибудь попробую залить.

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

не совсем так. 

http://radioshemi.ucoz.ru/FUSI/calc.html?part=ATmega8

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

ну и еще плюс сколько ждать после вкючения микроконтроллера

рад что у вас получилось

извините если грубовато

van1
Offline
Зарегистрирован: 17.03.2014

>извините если грубовато

я уже забыл:)

Теперь туплю со скетчем.

Сделал так:

http://arduino.cc/en/Tutorial/ArduinoToBreadboard#.Uyb2e4XmtrZ

по этой схеме подключился, выдрав контроллер из уно.

Написал традиционный скетч с резистором и диодом.

Пробую заливать (выбор пункта "платы" не менял).

Пишет

avrdude: stk500_getsync(): not in sync: resp=0x00

Что-то не так с ресетом? Пробовал вынуть/вставить проводок, пробовал нажать кнопку на плате перед загрузкой скетча. Или еще что-то.

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

собрали хоть по схеме внизу справа?

если да то должно работать. только вот боардс наверно придется править. выложите что у вас там написано

скетч можно было не писать. он называется blink

van1
Offline
Зарегистрирован: 17.03.2014

Нет. По схеме вверху слева. Второй сверху рисунок. Так неправильно?

Пишет

Размер скетча в двоичном коде: 960 байт (из 7 168 байт максимум)
C:\Program Files (x86)\Arduino\hardware/tools/avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega8 -cstk500v1 -P\\.\COM3 -b19200 -D -Uflash:w:C:\Users\kaveev\AppData\Local\Temp\build2352243876427998094.tmp\sketch_mar17a.cpp.hex:i

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM3
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Recv:
avrdude: stk500_getsync(): not in sync: resp=0x00

avrdude done.  Thank you.

van1
Offline
Зарегистрирован: 17.03.2014

кварц сначала отцепил. Не работало. Потом повесил обратно,  не работало.

Да, в боордс вот так:

########################################################
 
atmega8l.name=LCD I/O Backpack w/ ATmega8L @ 8MHz
 
atmega8l.upload.protocol=stk500
atmega8l.upload.maximum_size=7168
atmega8l.upload.speed=19200
 
atmega8l.bootloader.low_fuses=0xE4
atmega8l.bootloader.high_fuses=0xDC
atmega8l.bootloader.path=atmega8
atmega8l.bootloader.file=ATmega8L.hex
atmega8l.bootloader.unlock_bits=0x3F
atmega8l.bootloader.lock_bits=0x0F
 
atmega8l.build.mcu=atmega8
atmega8l.build.f_cpu=8000000L
atmega8l.build.core=arduino
atmega8l.build.variant=standard
 
##############################################################
 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

кстати еще раз проверил ваши старые фьюзы. бутлоадер получается от него использовали. я испльзую optiboot и там нужно 256 слов, в вашем 512.

попробуйте такие фьюзы на 512 слов и внутреннем генераторе

E4

DA

возможно просто не весь бутлоадер записался так как памяти ему не хватило

и по новой запишите загрузчик

van1
Offline
Зарегистрирован: 17.03.2014

Может быть, что-то неверно просто и по-грубому?

1. собрал схему.

2. в IDE стоит программатор->arduino as ISP

сервис->плата-> то, что в заглавии присланного куска боардс.

3. Сама плата - arduino Uno. Конденсатор 10мкф между ресетом и землей снят. Контроллер вынут (кстати, это обязательно?)

4. Ресет отцеплен от резистора на 5В - сделано как на рисунке внизу справа.

5. Передпрошивкой скетча либо:

 - ничего не делаю

- жму кнопку ресет на плате

- втыкаю/вынимаю проводок.

Результат один и тот же - его отсутствие.

 

Сейчас попробую с фьюзами.

 

 

van1
Offline
Зарегистрирован: 17.03.2014

Та жа ерунда. Загрузчик прошился.

Но при заливке скетча пишет (поменялась одна цифра - resp=0x94, а было 0х00):

Размер скетча в двоичном коде: 960 байт (из 7 168 байт максимум)
C:\Program Files (x86)\Arduino\hardware/tools/avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega8 -cstk500v1 -P\\.\COM3 -b19200 -D -Uflash:w:C:\Users\kaveev\AppData\Local\Temp\build8293364037315439142.tmp\sketch_mar17a.cpp.hex:i

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM3
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Recv: . [94]
avrdude: stk500_getsync(): not in sync: resp=0x94

avrdude done.  Thank you.

van1
Offline
Зарегистрирован: 17.03.2014

если притянуть при этом ресет к 5 в через резистор, то пишет

avrdude: stk500_getsync(): can't communicate with device: resp=0xfc

 

van1
Offline
Зарегистрирован: 17.03.2014

Тут вообще, похоже, дело в чем-то другом.

Поставил на макетку родной ардуиновский контроллер.

сервис->плата->arduino Uno

скетч не заливается:

avrdude: stk500_getsync(): not in sync: resp=0x00