Бутлоадер, как уже упоминали, прошивается в через . Значит, если собрались делать ардуину сами, всё-таки придётся собрать простенький программатор. Чтоб прошить бутлоадер из под ArduinoIDE (а так проще всего) необходим программатор под названием DAPA.
Ну чтож попробуем соберём… Вот такой получился
.
.
.
.
.
.
.
.
.
.
.
.
.
Запускаем IDE, выбираем тип платы Atmega8,втыкаем шнурок в LPT, Подаём на плату питание,
.
.
.
.
.
.
.
.
.
.
.
Командуем IDE шить бутлоадер…
мучительно ждём…ждём ……выскакивает такая штука…
.
.
.
.
.
.
хм, беру другой шнурок (stk200/300) включаю другую софтину(CodeVisionAVR) – читается/шьётся? а этим шнурком только с 4-5 раза… проверяю всё несколько раз – всё верно…
Начинаем эксперименты! Первым делом экранирую шнурок:
.
.
.
.
.
.
.
.
.
Никакого впечатления… уменьшаем резисторы до 150ом как в обычном — народном программаторе… никаких изменений, убираю резисторы — чуть лучше с 2-3раза шьётся, укоротил провод…ещё…ещё…до предела…есть контакт — 10 из 10!
Вожделенная надпись и укороченный, но стабильный шнурок — без резисторов=/.
То что без резисторов — это плохо – LPT жалко. Вот товарищ Илья Данилов
, что если питать ардуину от того-же LPT то всё прилично работает…но этого мне даже пробовать не хочется. Можно конечно запитаться не от худосочного принтерного порта, а откуда-нибудь с фишки питания, например, флоповода (красный провод +5в) может поможет. Но мы пойдём другим путём! Есть у меня старый проверенный во всех условиях и на всех компах шнурок STK200/300:
.
.
.
.
.
.
.
.
.
.
Лучше попробуем его подружить с ArduinoIDE.
Лезем в arduino-0015\hardware\tools\avr\etc\avrdude.conf
вдумчиво читаем, что вначале написано, вникаем, готовимся вписать новый программатор, листаем до “PROGRAMMER DEFINITIONS” ищем куда и что вписать… и с удивлением узнаём что ардуина понимает кучу программаторов и среде них, в секции ”Parallel port programmers”
stk200! Просто всё это добро спрятано от народа! Остаётся только вписать в файл “arduino-0015\hardware\programmers.txt” следующее:
stk200.name=STK200
stk200.protocol=stk200
И запустить ArduinoIDE: Кроме того, пришлось побороть некоторое разнообразие видов разьёмов внутрисхемного программирования
.
.
.
.
.
.
.
.
.
.
.
И сделать такой переходник Всё заработало и весьма стабильно – 10 из 10 раз прошилось успешно!
.
.
.
.
.
.
.
.
.
И с программатором “4 резистора” тот же эффект!
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Резюмируя: собираем шнурок “5 проводков- 4резистора” (с разьёмом AVR910)
пишем две строчки в programmers.txt
шьём и радуемся
Схемки обоих вариантов STK200 лежат у нас .
Про источники моей паранойи про прошивку не с первого раза можно почитать .
По схеме все верно (травил плату).
Микроконтроллер читается:
root@Anatoly:~# /usr/local/bin/avrdude -n -c test -P /dev/ttyS0 -p m8
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0×1e9307
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Я попытался прошить в него bootloader от arduino.
Конечно через arduino:
После прошивки, МК перестал у меня отвечать… :(
Коллега, подскажите пожалуйста как быть?
МК умер? Или его так нельзя убить?
Теперь он выдает это:
root@Anatoly:~# /usr/local/bin/avrdude -n -c test -P /dev/ttyS0 -p m8
avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.
Питание есть?=)
Убить-сложно, а вот . это сколько угодно=\
Вы использовали «программатор громова»?
Шили через ArduinoIDE?
Опишите подробней — что и как делали, будет проще разобратся.
Ну а так, первое что в голову приходит — пальцем затактировать=)- утыкаем в 9-ю ногу что-нибудь металлическое и неизолированныое (иголку, тонкий пинцет) и (неотпуская=) пробуем шить.
Наводки с тела, 50Гц восновном, затактируют контролер (а AVR-у, к счастью, всёравно на сколь низкой частоте работать).
Сначала читаем — если читается, значит и шится будет — шьём фьюзы правильными значениямим.
Часто помогает=)
Получилось, посадил на xtal1, xtal2 кварц через 2-а кондера 22пФ на землю.
Стал отвечать. Прошить отдельным программатором (да громова) не удалось. Почему-то подвисает и потом просто молчит arduino. Ну да ладно. Собрал через 3-и резистора на LPT. Прошился удачно. Сразу залить тестовую прошивку не удалось
avrdude: stk500_getsync(): not in sync: resp=0x34
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
Оказался маленький протрав у дороги от конденцатора С9 и землей.
Пропаял одной жилкой из провода.
(у меня таких протравов еще 4-е штуки было, они очень маленькие даже на просвет)
И получилось прошить тестовый скетч. Еще я стабилитрон взял L7805CP, а у него порог от 7в до 20в на входе.
На выходе 5в. Заметил это только пройдя по схеме тестером и западозрив неладное. =)
Теперь все работает. Могу дать фотки. Можно к статье приложить, как еще одна «истоия успеха». =)
Поздравляю=)
Да, без кварца то работать не будет — (если говорить про ардуину) там фьюзы именно под кварц выставленны.
Фотки — на ваше усмотрение=) Можёте запостить в своём блоге, например=)/
С небольшим отчётом.
И планами на будущее;)
Здравствуйте, помогите с проблемой. Спаял Arduino, спаял программатор Громова. Настроил Avrdude для работы с программатором — контроллер читался. Добавил этот программатор в ArduinoIDE — запустил запись загрузчика — сразу выскочило сообщение что до контроллера не достучаться типа попробуйте -F… и все, сразу после этого Avrdude перестал видеть контроллер — неправильная сигнатура — нули вместо числа :(. ОС — Linux. Подскажите как восстановить. Пробовал затактировать 9-ю ногу внешним генератором на 250 кHz и тишина — не видит. Можно ли восстановить не прибегая к высоковольтному программатору?
У мнея было несколько раз — сигнатура не читается, а фьюзы и флеш с эпромом — шьются-читются.(а потом и сигнатура читаться начиниет=)
Вопщем проверьте всё по два раза — питание, сброс (Rest должен быть подтянут 10к резистором к питанию)соединения с разьёмом SPI и сам прогорамматор.
Попробуйте другой программой прочитать содержимое фьюзов(при внешней тактировке)и проверьте их состояния. Попробуйте пропускать проверку сигнатуры, иногда помогает…
А высоковольтный программатор не заменить особо нечем, только если житагом=)
а, не, отбой=( это меня по жаре переклинило — житаг то только с 16меги есть. У таких малоножных как 8-168-328 нету=(
так что если с пальцем или генератором не выходит — в стол — ждать высоковольтного программатора.
день добрый! есть вопрос. собрал ардуино на атмеге 8. прошил бутлоадер программатором от protoss'a. а вот какие фьюзы выставить не знаю. при подаче питания светодиод моргает 8 раз с частотой примерно 1 Гц. проблема со связью с ПК. при вынутой из панельки атмеге замыкаю 2-ю и 3-ю ноги и делаю тест com-порта. все проходит. а вот скетч залить не могу. подскажите, плиз, в чем может быть причина?
Подскажите пожалуйста, я залил hex для atmega8, который шел с arduino0019, через avrdude, правильно ли я понял из коммента выше, что для прошивки скетча через последовательный порт необходимо правильно выставить фьюз-биты? А то как-то страшновато, у меня уже несколько залоченных процов :(.
шейте через Ардуино ИДЕ, как в статье, там сразу и фьюзы встанут и загрузчик, и запортить что-то сложно. Вы для аврдьюда какой программатор использовали?
Все — avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATMEGA8 is 1E 93 07
avrdude: AVR device not responding
avrdude: verification error, first mismatch at byte 0x1c00
0x12 != 0xff
avrdude: verification error; content mismatch
Это через ArduinoIDE. Еще один контроллер накрылся. Через AVRDUDE не могу прочитать микроконтроллер.
Использовал Dapa, через avrdude зашивался нормально, а через arduino-ide такая фигна, и все… контроллер не отвечает. Подозреваю кварц, хотя если зашивал просто — то светодиод мигал как положено 8 раз. Завтра попробую кварц заменить, посмотрю что получится.
Нашел запасной кварц на 16 MHz — не помогло :(. Завтра попробую купить новый контроллер, но шить через IDE больше не буду. Если что у меня ARDUINO SEVERINO SERIAL SINGLE SIDED VERSION 3. Собирался самостоятельно, может в этом проблема по которой IDE его не может прошить? Еще попробую заменить конденсаторы на 22 пФ. Если есть идеи пишите, буду благодарен любым советам.
Все — заработало, 1 проц удалось оживить — другие пока не пробовал — заменил конденсаторы у кварца. Если через IDE не шьъется и проц потом не отвечает — проверяйте кварц!!!… Я счастлив, всем Спасибо.
Править бутлоадер не надо.
ЕМНИП Atmega8 и Atmega8a программно полностью совместимы, такчто надо просто унять аврдьюд. Он, как видите ругается на сигнатуру(подпись), которая естественно разная у 8 и 8а. Отсюда вывод — надо обьяснить что мы шьём другой контроллер или вообще запретить проверку подписи.
у нас про аврдьюд читануть можно.
Ну или шить тем что понимает 8а, а скармливать тот же \hardware\bootloaders\atmega8\ATmegaBOOT.hex
Не забываем прошивать правильным образом .
У меня опять вопрос по бутлодеру. Как правильно прошить бутлодер в Атмегу 168ую, если плата — с последовательным, а не с УСБ? Надо править бутлодер?
Что надо будет выбрать в списке плат?
ИДЕ-шке и МК(а значит и бутлоадеру) всёравно как плата подключена в комп.
ИДЕ всегда видит плату как последовательный порт.
А бутлоадер берёт данные с последовательного порта МК.
Заводские платы с USB интерфёйсом имеют преобразователь USB->Com и при втыкании в комп в системе просто появляестя новый СОМ-порт — в ИДЕ выбираете его и льёте ваши скетчи/бутлоадеры туда.
А самопал втыкается непосредственно в СОМ-порт, также выбирается в ИДЕ и т.д.
Автосброс идёт по линии DTR (4-й пин разъёма COM-порта) через конденсатор, если установлен джампер «авторезет энейбл». Но всё это в случае стандартных вариантов плат=)
А если там у вас что-то совсем своё — и с DTR-а ничего не идёт — то в ручника — жать в ИДЕ загрузку и тыкать кнопку резет, стараясь успеть/попасть (у стандартного бутлоадера на 8атмегу — ожидание загрузки после резета/включения >5сек — легко успеете, а у более свежих, напр. на 168ю — доли секунд — можно промахнутся=)
В случае с вставленной атмегой несовсем-понятно-в-какую-плату — масса вопросов — какой кварц? какое питание? резет к питанию притянут? а как uart подводится и т.п., вобщем — схему в студию!
А, и собственно, как прошивали?
А фьюзы прошили? ;) МК должен быть настроен на тактирование от 16МГц кварца…
А бут, да, можно подпилить. Но обычно там со 2-3 раза попадаешь=)да и проводок с кондёром от DTR к резету, помоему, проще кинуть.
Больше смущает постоянно горящий СИД на 13.
Программатор отключаете, надеюсь=) а то он может держать линию…
На этой плате другие МК работали?
Естественно, фьюзы прошиты.
Программатор отключаю. Я в панельке микроконтроллер прошиваю.
Атмега 8ая на тойже плате работает безукоризненно.
Черт. Надо как-то подпаиваться к 232 микросхеме. Еще, поди, кондер надо добавить.
Кто может подсказать, на каком этапе я ошибся:
— прошил мегу8 прогр.громова юнипрофом загрузчиком из ардуино
— выставил фьюзы как в ардуино — 0xDf 0xCa в юнипрофе
— контроллер не определяется ардуино-программой, пишет
Binary sketch size: 826 bytes (of a 7168 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
кварц сначала стоял на 12 потом поставил 16мгц все с емкостями…
что я делаю не так?
Комментарии (39)
RSS свернуть / развернутьЯ собрал программатор:
По схеме все верно (травил плату).
Микроконтроллер читается:
root@Anatoly:~# /usr/local/bin/avrdude -n -c test -P /dev/ttyS0 -p m8
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0×1e9307
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Я попытался прошить в него bootloader от arduino.
Конечно через arduino:
После прошивки, МК перестал у меня отвечать… :(
Коллега, подскажите пожалуйста как быть?
МК умер? Или его так нельзя убить?
Теперь он выдает это:
root@Anatoly:~# /usr/local/bin/avrdude -n -c test -P /dev/ttyS0 -p m8
avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.
Спасибо,
Анатолий!
AnatolyUnix
Убить-сложно, а вот . это сколько угодно=\
Вы использовали «программатор громова»?
Шили через ArduinoIDE?
Опишите подробней — что и как делали, будет проще разобратся.
Ну а так, первое что в голову приходит — пальцем затактировать=)- утыкаем в 9-ю ногу что-нибудь металлическое и неизолированныое (иголку, тонкий пинцет) и (неотпуская=) пробуем шить.
Наводки с тела, 50Гц восновном, затактируют контролер (а AVR-у, к счастью, всёравно на сколь низкой частоте работать).
Сначала читаем — если читается, значит и шится будет — шьём фьюзы правильными значениямим.
Часто помогает=)
Zoltberg
Стал отвечать. Прошить отдельным программатором (да громова) не удалось. Почему-то подвисает и потом просто молчит arduino. Ну да ладно. Собрал через 3-и резистора на LPT. Прошился удачно. Сразу залить тестовую прошивку не удалось
avrdude: stk500_getsync(): not in sync: resp=0x34
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
Оказался маленький протрав у дороги от конденцатора С9 и землей.
Пропаял одной жилкой из провода.
(у меня таких протравов еще 4-е штуки было, они очень маленькие даже на просвет)
И получилось прошить тестовый скетч. Еще я стабилитрон взял L7805CP, а у него порог от 7в до 20в на входе.
На выходе 5в. Заметил это только пройдя по схеме тестером и западозрив неладное. =)
Теперь все работает. Могу дать фотки. Можно к статье приложить, как еще одна «истоия успеха». =)
AnatolyUnix
Да, без кварца то работать не будет — (если говорить про ардуину) там фьюзы именно под кварц выставленны.
Фотки — на ваше усмотрение=) Можёте запостить в своём блоге, например=)/
С небольшим отчётом.
И планами на будущее;)
Zoltberg
AnatolyUnix
jskonst
Вопщем проверьте всё по два раза — питание, сброс (Rest должен быть подтянут 10к резистором к питанию)соединения с разьёмом SPI и сам прогорамматор.
Попробуйте другой программой прочитать содержимое фьюзов(при внешней тактировке)и проверьте их состояния. Попробуйте пропускать проверку сигнатуры, иногда помогает…
А высоковольтный программатор не заменить особо нечем, только если житагом=)
Zoltberg
так что если с пальцем или генератором не выходит — в стол — ждать высоковольтного программатора.
Zoltberg
jskonst
dima
Zoltberg
nek
Zoltberg
с АТмегой_8 получилось, со 168-й пока никак, ну да ладно, разберусь.
nek
jskonst
Zoltberg
jskonst
avrdude: initialization failed, rc=-1
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATMEGA8 is 1E 93 07
avrdude: AVR device not responding
avrdude: verification error, first mismatch at byte 0x1c00
0x12 != 0xff
avrdude: verification error; content mismatch
Это через ArduinoIDE. Еще один контроллер накрылся. Через AVRDUDE не могу прочитать микроконтроллер.
jskonst
чем шьёте то?(каким программатором?)
Внешним сигналом или пальцем затактировать пробовали?(см каменты выше)
Zoltberg
jskonst
jskonst
jskonst
Шью MRC28 c robozone.su параллельным программатором.
Shihad
ЕМНИП Atmega8 и Atmega8a программно полностью совместимы, такчто надо просто унять аврдьюд. Он, как видите ругается на сигнатуру(подпись), которая естественно разная у 8 и 8а. Отсюда вывод — надо обьяснить что мы шьём другой контроллер или вообще запретить проверку подписи.
у нас про аврдьюд читануть можно.
Ну или шить тем что понимает 8а, а скармливать тот же \hardware\bootloaders\atmega8\ATmegaBOOT.hex
Не забываем прошивать правильным образом .
Zoltberg
Что надо будет выбрать в списке плат?
Shihad
Выбрать Дуемиланове168.
ИДЕ-шке и МК(а значит и бутлоадеру) всёравно как плата подключена в комп.
ИДЕ всегда видит плату как последовательный порт.
А бутлоадер берёт данные с последовательного порта МК.
Заводские платы с USB интерфёйсом имеют преобразователь USB->Com и при втыкании в комп в системе просто появляестя новый СОМ-порт — в ИДЕ выбираете его и льёте ваши скетчи/бутлоадеры туда.
А самопал втыкается непосредственно в СОМ-порт, также выбирается в ИДЕ и т.д.
Zoltberg
Я прошил Атмегу 168 прошивкой от Дуемило. Вставляю в плату — светодиод на 13 ноге горит постоянно. ИДЕ плату не ловит.
Где я дурак?
Shihad
А если там у вас что-то совсем своё — и с DTR-а ничего не идёт — то в ручника — жать в ИДЕ загрузку и тыкать кнопку резет, стараясь успеть/попасть (у стандартного бутлоадера на 8атмегу — ожидание загрузки после резета/включения >5сек — легко успеете, а у более свежих, напр. на 168ю — доли секунд — можно промахнутся=)
В случае с вставленной атмегой несовсем-понятно-в-какую-плату — масса вопросов — какой кварц? какое питание? резет к питанию притянут? а как uart подводится и т.п., вобщем — схему в студию!
А, и собственно, как прошивали?
Zoltberg
Вот этот. С восьмеркой я в него прошивку действительно заливал по ручному сбросу.
А со 168 (доли секунды, надо же) не попадаю.
Бутлодер заливаю СТК500 через АВРСтудио. Пробовал всякие из папки с бутлодерами.
Может, доковырять загрузчик, чтобы ожидание было пять секунд?
Shihad
А бут, да, можно подпилить. Но обычно там со 2-3 раза попадаешь=)да и проводок с кондёром от DTR к резету, помоему, проще кинуть.
Больше смущает постоянно горящий СИД на 13.
Программатор отключаете, надеюсь=) а то он может держать линию…
На этой плате другие МК работали?
Zoltberg
Программатор отключаю. Я в панельке микроконтроллер прошиваю.
Атмега 8ая на тойже плате работает безукоризненно.
Черт. Надо как-то подпаиваться к 232 микросхеме. Еще, поди, кондер надо добавить.
Shihad
Что-то не так — на 13 ноге СИД гореть не должен…
Бутлоадер перепрошить советую. Из ИДЕ-шки, добавив туда программатор как в статье.
Zoltberg
romsn
дописать
А в ...\arduino-ххх\hardware\programmers.txt
дописать
должно работать=)
правда проблем от этого громова больше чем пользы по моим наблюдениям за чужими мучениями;)
Zoltberg
student78rus
avrdude: can't open device «giveio»
avrdude: failed to open parallel port «lpt1»
kameniymost
admin
kameniymost
— прошил мегу8 прогр.громова юнипрофом загрузчиком из ардуино
— выставил фьюзы как в ардуино — 0xDf 0xCa в юнипрофе
— контроллер не определяется ардуино-программой, пишет
Binary sketch size: 826 bytes (of a 7168 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
кварц сначала стоял на 12 потом поставил 16мгц все с емкостями…
что я делаю не так?
serficraft
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.