Как прошить загрузчик Arduino (ATmega8A)
- Войдите на сайт для отправки комментариев
Доброго времени суток уважаемые профи и новечки.
В этом посте я хочу рассказать как залить 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); // ждем секунду }
А для чего нужны 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
Вообщем может я не прав, но мне кажется что пункт с фьюзами можно сократить. Как из лени, так из снизить шанс "сделать ошибку".
Но - это не критика. Скорее уточнение. Безусловно вы полезное руководство написали.
А еще я не совсем понял. На картинке "Подключите ваш камень как показано на рисунки ниже" у вас показан вариант "атмега без кварца", а при загрузке бутлоадера вы выбираете плату "Arduino NG or older w/ ATmega8", которая имет бутлоадер и кварц на 16-ть.
У вас точно "После чего светодиод (L) на плате должен маргать. =)"?
С шагом 3 я точно не могу знать) описал так как меня научили.
И да, в 4 пункте ошибка (вот что значит новичок))
Подключаем камень как на этой картинки (с кварцем и керамическими конденсаторами на 22 пФ) можно сразу так подключить, но можно и потом добавить кварц с конденсаторами.
И после этого жмем записать загрузчик
Только теперь можно изъять микросхему из ардуино, и поставить на неё ATmega8A.
После чего пункт 5 точно заработает. =)
Кто тут админы, можно это в первом сообщении исправить?)
Тогда уж и тему назовите что-то типа "Как прошить загрузчик". Где оживление то? Скейтчи можно и без загрузчика через ArduinoISP заливать.
Тогда уж и тему назовите что-то типа "Как прошить загрузчик". Где оживление то? Скейтчи можно и без загрузчика через ArduinoISP заливать.
Дык такие темы уже есть на форуме :) А "просто прошить", так официальный туториал и содержит все нужное Arduino - ArduinoISP
И кстати это вам понятно что "нужно прошить загрузчик", и это вы будете гуглить "как прошить загрузчик". А новичку это все страшно и непонятно. Не зря он, именно как новичок, так назвал тему. И другой новичок, возможно, будет искать именно "как оживить", а не "как прошить".
Но все это "не точно", "лишние шаги", "уже было" - все второстепенно. А важно
1. Топикстартер не поленился расшаририть свой опыт. Причем постарался качественно сделать это, в меру своего понимания (со скриншотами, пошаговым объяснениям). Тут важно не запинать его энтузиазм нашей тягой к формальной правильности.
2. У новичков действительно большой тормоз дает именно "страх". И такие статьи с красивыми картинками и "я новичок вот так смог" - помогают двинутся дальше.
3. Иногда, как ни странно "новичок новичку" - может лучше объяснить чем опытный. Именно потому что опытному уже трудно стать на место чайника и понять "что же тут не ясного".
Согласен с уважаемым leshak, страх убить камень оч. тормозит новичков, лично для меня он стал одной из причин купить PinBoard 2. Лично мне на ней было легче прошить и фузы и загрузчик.
Вот, к примеру, прикольная статья именно как оживить ATmega8, если например, выставили неправильно фьюзы SPIEN или RSTDISBL без параллельного/высоковольтного программатора.
Спасибо :)
Вобсна тоже вопрос по теме:
Прошил бутлоадер через USBasp - все вроде встало - скетч в память загружается и Всё. Дальше никаких действий не происходит.. Где зарыта собака???
Там два файла прошивки попробуйте другой.
Спасибо. Сейчас попытаю счастье!
Да помогло! Спасибо! очевидное лежало на поверхности
Доброе время суток! Не дождался заказа Ардуино решил собрать сам, спаял на макетке Atmega 168PV-10PU програматор собрал по статье http://robocraft.ru/blog/arduino/50.html и пытался шить паралельным программатором из ардуины, пробовал разные виды плат в ответ такая фраза "avrdude: Expected signature for ATMEGA168 is 1E 94 06".
Перебирал варианты плат с контроллером 168, только коды разные, позже спутился до Atmega8, ответ тот же.
Странно при прописывании БутЛоадера фъюзы зашиваются, но я не увидел там ничего похожего на сигнатуру контроллера.
Вам сюда.
Что то тут не так или я просто запутался в разрыве инструкции (((
Ссылки не работают. Нашол AVR8-Burn на офс сайте а в ней нет в настройках "Arduino"
http://arduino.ru/forum/obshchii/zapretit-skachivanie-programmy-iz-arduino#comment-27493
http://www.youtube.com/watch?v=zPhSZi_nIcA
Друзья, объясните пожалуйста, а почему в статье 2 раза записывается загрузчик?
Пункт 2: После этого жмем записать загрузчик
Пункт 4: После этого жмем записать загрузчик
Или куда по мнению автора записывается он первый раз, а куда второй?
Подключаем камень как на этой картинки (с кварцем и керамическими конденсаторами на 22 пФ) можно сразу так подключить, но можно и потом добавить кварц с конденсаторами
вот вы не указали какой кварц а если я вставлю туда 8 МHz(при прошивки). А при сборке самой платы ардуино будет 16 МHz. Работать то будет delay(1000)/
поделюсь своим опытом тоже, раз уж все делятся
но это для многкратного испльзования. на один раз использовать любые другие способы
так как испльзую в 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 и бутлоадер зашьется
если постоянно не получается прошить а ошибок в монтаже нет, и чип выбран правильно расскажу что делат дальше
Имеется плата Pinboard 1.1 с залоченной мега16 и программатор PX-400 с внешним USB-COM адаптером. Я так понимаю, этого более, чем достаточно, чтобы прошить любой контроллер.
Также имеются в наличии две Atmega8-16PU в DIP корпусах. Кварцев любых наковырять из старых компьютерных плат тоже не проблема. Помогите сделать ардуинку на базе этих корпусов!
Премудростей обратных и прямых фьюзов я так и не понял. Собственно, в процессе экспериментов залочил нафиг мегу16. Теперь уже страшно за это браться. Кстати, на пинборде ещё есть встроенный FT BB Prog. Уже голова идёт кругом от этого "разнообразия".
Имеется плата Pinboard 1.1 с залоченной мега16 и программатор PX-400 с внешним USB-COM адаптером. Я так понимаю, этого более, чем достаточно, чтобы прошить любой контроллер.
Также имеются в наличии две Atmega8-16PU в DIP корпусах. Кварцев любых наковырять из старых компьютерных плат тоже не проблема. Помогите сделать ардуинку на базе этих корпусов!
Премудростей обратных и прямых фьюзов я так и не понял. Собственно, в процессе экспериментов залочил нафиг мегу16. Теперь уже страшно за это браться. Кстати, на пинборде ещё есть встроенный FT BB Prog. Уже голова идёт кругом от этого "разнообразия".
мегу16-ю похороните, как павшую от рук врага, для меги8-й для кого тема написана?
насчет фьюзов не подскажу. нужно интевертировать или нет. тут в первую очередь зависит в какой программу будете прошивать.
мне понравилась программа для вашего программатора Avr-Osp II. фьюзы и галочками проставляются, а можно просто ввести 16ричные числа
и сначала перед тем как шить считывайте фьюзы. сразу будет понятно инверсные или нет.
залоченную можно разлочить (точно не помню, в инете найдете) любым программатором, все выводы как обычно, только reset подается не на микроконтроллер, а на базу транзистора, с помощью которого увеличивается напряжение на reset до 12В кажется. и можете зашить свои фьюзы
Atmega8-16PU - это мега 8 или 16?
Atmega8-16PU - это мега 8 или 16?
8-я
Расскажите, плиз, как в неё зашить ардуиновский бутлоадер имеющимся у меня оборудованием? Есть кварцы на 8,12 и 16МГц. Реально из этих двух Мег8 собрать пару ардуинок?
https://www.google.com.ua/search?q=arduino+atmega8
Мой опыт клонирования Ардуино Уно р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;
все готова, теперь можно включать Ардуинку и загружать свои скетчи, проверено все работает.
Так же можно создать свое устройство просто скопировав секции и заменить сигнатуры и фьюзы для конкретного чипа. Но так как это я буду делать не часто то решил именно таким способом так сказать на лету.
Доброго дня!
Попытался прошить сей контроллер(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 что-то связано? В общем, я в растерянности, уже два дня убил. Заранее спасибо.
а вы кварц с конденсаторами для меги 8 ставили?
Кварц не ставил, подсоединял по схеме без кварца. Кстати, я нечетко написал, прошиваю не 8, а 8L.
хорошо какие фьюзы зашили?
Руками ничего не менял.
Стоят в 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.
ну отлично. вы прошили для работы от внешнего кварца. взяли файлы от 16МГц схемы с кварцем, а схему от 8МГц на внутреннем генераторе
замените на
0xE4
0xDC
и перешейте. если не получится придется цеплять кварц. в файле боадс поправьте частоту на 8МГЦ
после изменения фьюзов кварц можно отцепить. будет работать на внутреннем генераторе
Способ 1 не помог.
Теперь пишет
avrdude: Device signature = 0xffffff
остальное тоже самое.
Способ 2 - поищу кварц, попробую, отпишусь. Так понимаю, нужен именно на 8 МГц?
Кстати в боардс у меня строчка
atmega8l.build.f_cpu=8000000L
разве это не означает, что она для кварца на 8 мгц?
да для кварца 8мгц. но для кварца
1 способ и врядли бы заработал. кварца ведь нет (это если зашили свои фьюзы)
заработал бы если бы чистая мега была
Ок, спасибо, пошел искать кварц. Что-то из параметров, кроме частоты, критично?
"Чистая мега" - это имеете в виду 8, а не 8L?
чистая это в которой вы не меняли фьюзы. по умолчанию такая мега на внутреннемм генераторе. и соответственно можно прошить не используя кварц
да ничего. теоретический можно и частоту не соблюдать (ниже не выше). хоть на 1мгц воткнуть, но я лично не проверял
кварц нужен вам только чтобы фьюзы сменить
Тогда следующий вопрос. Если я нахожу кварц на 8 мгц, то я ставлю значения фьюзов из вашего письма выше. Если я нахожу другой кварц, с меньшей частотой, то как для него фьюзы посчитать? Вроде бы где-то я видел какой-то фьюз калькулятор, или по-другому?
Нашел кварц 6.144 МГц. Что прописать в boards?
И еще вопрос. Допустим, я беру какой-нибудь контроллер, пытаюсь прошить его через ардуино и, случайно, неправильно его выбираю в меню "плата". После этого у него фьюзы прописываются ошибочно, если его частота иная, и в такой ситуации придется всегда браться за внешний кварц?
если контроллер не тот дудка должна тебе выдасть ошибку неверный тип контроллера
ты не читаешь что я пишу. кварц нужен чтобы сменить фьюзы, так как ты прописал работать с кварцевым резонатором своими фьюзами. а если прописано работать с кварцем резонатором значит без него мега вообще не запустится, не будет работать, ее не получится прошить!!! (если точнее можно запустить внемшним генератором)
это как машина которая может работать и на бензине и на газу. если сказал работать на бензине, машине не важно если ли газ. тоже самое и с газом.
но если указал работать на газу, а в машине только бензин никуда ты не поедешь. ты задаешь как работать, а не машина будет за тебя выбирать если нет газа работать на бензине (утрированно)
ты на этом кварце работать не будешь (по крайней мере изначально собирался работать на внутреннем генераторе). боардс не меняй
теоретически должны смениться фьюзы и залиться загрузчик
Эта, спокойнее...
Я все внимательно читаю. Возможно, не все быстро схватываю, т.к. с контроллерами ковыряюсь всего месяц.
А с прошивкой только третий день.
На счет фьюзов я понял. Вопрос был - зависит ли значение фьюзов от частоты генератора. Из ответа я понял - не зависит. То, что для кварца и его отсутствия фьюзы разные - я давно понял.
И главное. Вроде прошился!!!!
Cейчас скетч какой-нибудь попробую залить.
не совсем так.
http://radioshemi.ucoz.ru/FUSI/calc.html?part=ATmega8
нажмите на Внутренный RC генератор и откроется список. там даже с внешним кварцем не один режим в зависимости от частоты генератора. кварц может и на килогерцы быть, а может и на мегагерцы
ну и еще плюс сколько ждать после вкючения микроконтроллера
рад что у вас получилось
извините если грубовато
>извините если грубовато
я уже забыл:)
Теперь туплю со скетчем.
Сделал так:
http://arduino.cc/en/Tutorial/ArduinoToBreadboard#.Uyb2e4XmtrZ
по этой схеме подключился, выдрав контроллер из уно.
Написал традиционный скетч с резистором и диодом.
Пробую заливать (выбор пункта "платы" не менял).
Пишет
avrdude: stk500_getsync(): not in sync: resp=0x00
Что-то не так с ресетом? Пробовал вынуть/вставить проводок, пробовал нажать кнопку на плате перед загрузкой скетча. Или еще что-то.
собрали хоть по схеме внизу справа?
если да то должно работать. только вот боардс наверно придется править. выложите что у вас там написано
скетч можно было не писать. он называется blink
Нет. По схеме вверху слева. Второй сверху рисунок. Так неправильно?
Пишет
Размер скетча в двоичном коде: 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.
кварц сначала отцепил. Не работало. Потом повесил обратно, не работало.
Да, в боордс вот так:
########################################################
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
##############################################################
насчет схемы незнаю. кондеры повлияют ли на работу если внутренний генератор выбрал. да и зачем заморачиваться. у вас включено использовать внутр. генератор. кварц не цепляйте. схему по которой собирать писал выше
кстати еще раз проверил ваши старые фьюзы. бутлоадер получается от него использовали. я испльзую optiboot и там нужно 256 слов, в вашем 512.
попробуйте такие фьюзы на 512 слов и внутреннем генераторе
E4
DA
возможно просто не весь бутлоадер записался так как памяти ему не хватило
и по новой запишите загрузчик
Может быть, что-то неверно просто и по-грубому?
1. собрал схему.
2. в IDE стоит программатор->arduino as ISP
сервис->плата-> то, что в заглавии присланного куска боардс.
3. Сама плата - arduino Uno. Конденсатор 10мкф между ресетом и землей снят. Контроллер вынут (кстати, это обязательно?)
4. Ресет отцеплен от резистора на 5В - сделано как на рисунке внизу справа.
5. Передпрошивкой скетча либо:
- ничего не делаю
- жму кнопку ресет на плате
- втыкаю/вынимаю проводок.
Результат один и тот же - его отсутствие.
Сейчас попробую с фьюзами.
Та жа ерунда. Загрузчик прошился.
Но при заливке скетча пишет (поменялась одна цифра - 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.
если притянуть при этом ресет к 5 в через резистор, то пишет
avrdude: stk500_getsync(): can't communicate with device: resp=0xfc
Тут вообще, похоже, дело в чем-то другом.
Поставил на макетку родной ардуиновский контроллер.
сервис->плата->arduino Uno
скетч не заливается:
avrdude: stk500_getsync(): not in sync: resp=0x00