Прошивка бутлоадера


Бутлоадер, как уже упоминали, прошивается в ардуину через SPI. Значит, если собрались делать ардуину сами, всё-таки придётся собрать простенький программатор. Чтоб прошить бутлоадер из под 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 лежат у нас тут.
Про источники моей паранойи про прошивку не с первого раза можно почитать тут.

далее: Программирование Arduino — Физика процесса.


69 комментариев на «“Прошивка бутлоадера”»

  1. Подскажите пожалуйста.

    Я собрал программатор:
    easyelectronics.ru/avr-shag-pervyj-programmator

    По схеме все верно (травил плату).
    Микроконтроллер читается:

    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:
    http://www.arduino.cc/en/Main/Software

    После прошивки, МК перестал у меня отвечать… 🙁
    Коллега, подскажите пожалуйста как быть?
    МК умер? Или его так нельзя убить?

    Теперь он выдает это:

    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в. Заметил это только пройдя по схеме тестером и западозрив неладное. =)

      Теперь все работает. Могу дать фотки. Можно к статье приложить, как еще одна «истоия успеха». =)

    • Поздравляю=)
      Да, без кварца то работать не будет — (если говорить про ардуину) там фьюзы именно под кварц выставленны.
      Фотки — на ваше усмотрение=) Можёте запостить в своём блоге, например=)/
      С небольшим отчётом.
      И планами на будущее;)

    • «пальцем затактировать» — это сильно! ;-)))

  2. Здравствуйте, помогите с проблемой. Спаял Arduino, спаял программатор Громова. Настроил Avrdude для работы с программатором — контроллер читался. Добавил этот программатор в ArduinoIDE — запустил запись загрузчика — сразу выскочило сообщение что до контроллера не достучаться типа попробуйте -F… и все, сразу после этого Avrdude перестал видеть контроллер — неправильная сигнатура — нули вместо числа :(. ОС — Linux. Подскажите как восстановить. Пробовал затактировать 9-ю ногу внешним генератором на 250 кHz и тишина — не видит. Можно ли восстановить не прибегая к высоковольтному программатору?

    • У мнея было несколько раз — сигнатура не читается, а фьюзы и флеш с эпромом — шьются-читются.(а потом и сигнатура читаться начиниет=)
      Вопщем проверьте всё по два раза — питание, сброс (Rest должен быть подтянут 10к резистором к питанию)соединения с разьёмом SPI и сам прогорамматор.
      Попробуйте другой программой прочитать содержимое фьюзов(при внешней тактировке)и проверьте их состояния. Попробуйте пропускать проверку сигнатуры, иногда помогает…
      А высоковольтный программатор не заменить особо нечем, только если житагом=)

    • а, не, отбой=( это меня по жаре переклинило — житаг то только с 16меги есть. У таких малоножных как 8-168-328 нету=(
      так что если с пальцем или генератором не выходит — в стол — ждать высоковольтного программатора.

    • Нашел высоковольтный программтор — все, дохлые процы :(. Больше я этот программатор не торогаю 🙂

  3. день добрый! есть вопрос. собрал ардуино на атмеге 8. прошил бутлоадер программатором от protoss’a. а вот какие фьюзы выставить не знаю. при подаче питания светодиод моргает 8 раз с частотой примерно 1 Гц. проблема со связью с ПК. при вынутой из панельки атмеге замыкаю 2-ю и 3-ю ноги и делаю тест com-порта. все проходит. а вот скетч залить не могу. подскажите, плиз, в чем может быть причина?

  4. Подскажите пожалуйста, я залил hex для atmega8, который шел с arduino0019, через avrdude, правильно ли я понял из коммента выше, что для прошивки скетча через последовательный порт необходимо правильно выставить фьюз-биты? А то как-то страшновато, у меня уже несколько залоченных процов :(.

    • шейте через Ардуино ИДЕ, как в статье, там сразу и фьюзы встанут и загрузчик, и запортить что-то сложно. Вы для аврдьюда какой программатор использовали?

  5. Все — 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 не шьъется и проц потом не отвечает — проверяйте кварц!!!… Я счастлив, всем Спасибо.

  6. У меня опять вопрос по бутлодеру. Как правильно прошить бутлодер в Атмегу 168ую, если плата — с последовательным, а не с УСБ? Надо править бутлодер?
    Что надо будет выбрать в списке плат?

    • Править не надо.
      Выбрать Дуемиланове168.

      ИДЕ-шке и МК(а значит и бутлоадеру) всёравно как плата подключена в комп.
      ИДЕ всегда видит плату как последовательный порт.
      А бутлоадер берёт данные с последовательного порта МК.

      Заводские платы с USB интерфёйсом имеют преобразователь USB->Com и при втыкании в комп в системе просто появляестя новый СОМ-порт — в ИДЕ выбираете его и льёте ваши скетчи/бутлоадеры туда.
      А самопал втыкается непосредственно в СОМ-порт, также выбирается в ИДЕ и т.д.

    • А с автосбросом что будет? Он же не разведен. Сброс перед прошивкой осуществлять рэсетом?

      Я прошил Атмегу 168 прошивкой от Дуемило. Вставляю в плату — светодиод на 13 ноге горит постоянно. ИДЕ плату не ловит.

      Где я дурак?

    • Автосброс идёт по линии DTR (4-й пин разъёма COM-порта) через конденсатор, если установлен джампер «авторезет энейбл». Но всё это в случае стандартных вариантов плат=)
      А если там у вас что-то совсем своё — и с DTR-а ничего не идёт — то в ручника — жать в ИДЕ загрузку и тыкать кнопку резет, стараясь успеть/попасть (у стандартного бутлоадера на 8атмегу — ожидание загрузки после резета/включения >5сек — легко успеете, а у более свежих, напр. на 168ю — доли секунд — можно промахнутся=)

      В случае с вставленной атмегой несовсем-понятно-в-какую-плату — масса вопросов — какой кварц? какое питание? резет к питанию притянут? а как uart подводится и т.п., вобщем — схему в студию!
      А, и собственно, как прошивали?

    • robozone.su/2008/02/29/universalnyjj-robo-kontroller-mrc28.html

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

      А со 168 (доли секунды, надо же) не попадаю.

      Бутлодер заливаю СТК500 через АВРСтудио. Пробовал всякие из папки с бутлодерами.

      Может, доковырять загрузчик, чтобы ожидание было пять секунд?

    • А фьюзы прошили? 😉 МК должен быть настроен на тактирование от 16МГц кварца…
      А бут, да, можно подпилить. Но обычно там со 2-3 раза попадаешь=)да и проводок с кондёром от DTR к резету, помоему, проще кинуть.
      Больше смущает постоянно горящий СИД на 13.
      Программатор отключаете, надеюсь=) а то он может держать линию…
      На этой плате другие МК работали?

    • Естественно, фьюзы прошиты.
      Программатор отключаю. Я в панельке микроконтроллер прошиваю.
      Атмега 8ая на тойже плате работает безукоризненно.
      Черт. Надо как-то подпаиваться к 232 микросхеме. Еще, поди, кондер надо добавить.

    • да не, там напрямую можно.
      Что-то не так — на 13 ноге СИД гореть не должен…
      Бутлоадер перепрошить советую. Из ИДЕ-шки, добавив туда программатор как в статье.

    • Всем привет! извиняюсь за тупой вопрос. для программатора громова какие две строчки вписать нужно?

    • В …\arduino-ххх\hardware\tools\avr\etc\avrdude.conf
      дописать

      programmer
      id = “gromov”;
      desc = “serial port banging, reset=dtr sck=rts mosi=txd miso=cts”;
      type = serbb;
      reset = 4;
      sck = 7;
      mosi = 3;
      miso = 8;
      ;

      А в …\arduino-ххх\hardware\programmers.txt
      дописать

      gromov.name=GromovProg
      gromov.protocol=gromov

      должно работать=)
      правда проблем от этого громова больше чем пользы по моим наблюдениям за чужими мучениями;)

  7. делал первым способом только резисторы не ставил. все залилось отлично с первой попытки… большое спасибо за статью! очень помогло!

    • В Windows 2000 и Windows XP запрещена прямая работа с параллельным (LPT) портом, поэтому, необходимо установить драйвер giveio.sys

  8. Кто может подсказать, на каком этапе я ошибся:
    — прошил мегу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мгц все с емкостями…
    что я делаю не так?

  9. Доброго дня всем!
    Повторил схемку, решил поставить Atmega168. Бутлодер залить не получилось. Пробовал другим софтом, то же самое. Сунул Atmega8, все с пол пинка завелось и поехало. Смотрел сообщения, но так и не понял, 168 мега завелась у кого нибудь, или в них есть что нибудь особенное? Может мне бракованная досталась?
    Если есть кто, у кого 168 бутом прошилась, откликнитесь плиз?

    • прошил 168 программатором Громова по технологии описанной DiHaltom.Правда для это пришлось собирать комп с ком портом и ос WinXP. До этого пытался на нетбуке прошить через USB-COM. Не получилось. Так же пришлось уменьшить сопротивления до 470 Ом, вместо 1 К (см. схему Громова).

    • В догонку… прошить-то прошил, да вот не могу залить скетч. Мне кажется, что проблема в том, что у ком-порта на выходе -12 вольт ( логический 1, а atmega168 понимает 1 на 5 вольтах.

    • При прямом включении у меги бы, наверное, порт выгорел, поэтому обычно ставят микруху для согласования уровней — MAX232.
      Если Вы собирали по схеме Северино, то там для согласования уровней стоят 2 транзистора.

      Что касается бутлоудера — столкнулся с аналогичной проблемой:
      прошил в мегу328 загрузчик ATmegaBOOT_168_atmega_328.hex
      шил в Craftduino шнурком, как написано здесь.
      фьюзы выставил, как в ArduinoIDE.
      SinaProg сказал, что всё прошито, всё Ок!
      Попробовал залить Blink с таймингами 3000/6000,
      ArduinoIDE сказала Ок!, но, похоже, скетч не залила, т.к. светик L мигает, как обычно — 1Гц.

    • Однако, заработало!!! Мучился долго. Потом обратил внимание, что флюс(ЛТИ 120), который использовал при пайки платы ( делал плату по описанию Zoltberg) като странно высох. Им были залиты все контакты. Час отдирал ацетоном.Далее, используя программатор «Громова» и рекомендации Zoltberg в настройках ..\arduino-ххх\hardware\tools\avr\etc\avrdude.conf (см.выше) пытался прописать карту, использовал ПО arduino 1-0 последней версии. Ничего не вышло. Тогда скачал версии по старее. Arduino 0017. И там (в \arduino-ххх\hardware\tools\avr\etc\avrdude.conf), кроме того, что рекомендовал Zoltberg прописал default_parallel = «com1»; вместо default_parallel = «lpt1»;. Обратил внимание, что все время программа пытается обращаться к lpt1. Ну вот я его и заменил на com1. После этого все как по маслу. И фьюзы выставились, и скечт из примера грузиться.

    • Рад за Вас.
      А у меня, похоже, загрузчик таки не прошился.
      IDE, оказывается, выдаёт «not in sync: resp=0x00»

  10. Здравствуйте.
    Собрал arduino по данному туториалу и не могу прошить бутлоадер, говорит мне такую штуку:

    avrdude: AVR device not responding
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    Кабель использую 5 проводов — 4 резистора. Пробовал, как говорилось выше вставить иголку на 9 ножку, не помогло.
    У меня вопросы:
    1. Когда я подключаю питание и вставляю в lpt у меня горят диоды led1,led4 и слабо led0 — это так и нужно, или это что то замыкает??
    2. Нужно ли замыкать перемычками нижние угловые штекеры и правые 2 верхние. Про то ничего не написано но на фото так сделано?
    3. Питаю схему адаптером 16 вольт, на 6 и 7 ножке МК мерял напряжение — показало 5 В, так можно?
    4. Перепутал микроконтроллер на 180 градусов и включил питание — ему кердык?

    • Сделал программатор Громова, через программку UniProf (сама определила что у меня стоит ATmega8, но как то определяла это через раз) прочитал фьюзы и переписал их на такие как указаны тут http://www.robocraft.ru/blog/arduino/51.html, потом прочитал в инструкции к UniProf что «включенный FUSE — это FUSE без галочки» то есть 1 — нет галочки, переписал их по новой, теперь МК не определяется и UniProf говорит что МК не откликается, хотя диод LED3 мигает, я так понимаю что к нему пытается подключится ПК.
      Пытаюсь прошить программкой от Arduino, пишет такое:

      avrdude: stk500_getsync(): not in sync: resp=0x30
      avrdude: successfully opened stk500v2 device — please use -c stk500v2
      avrdude: stk500v2_command(): unknown status 0xc8
      avrdude: initialization failed, rc=-1
      Double check connections and try again, or use -F to override
      this check.

      avrdude: stk500v2_command(): unknown status 0x01
      avrdude: stk500v2_disable(): failed to leave programming mode

      PonyProg тоже кричит что МК не определен…

      Что теперь делать, идти за новым МК???

    • Что теперь делать, идти за новым МК???

      Для уверенности — да.
      Особенно после

      Перепутал микроконтроллер на 180 градусов и включил питание

      атмеги по моим наблюдениям вообще не слишком нежные, многое переживают… Но вот если поставили все фьюзы которых не стояло (пепепутав — с галочкой/безгалочки) это уже наверняка получился труп ушедший глубоко в себя МК. Фьюз RSTDISBL отключает резет, без этого не прошить, а SPIEN — запрещает прошивку по SPI — остаётся только высоковольтный программатор=(

    • 1. Когда я подключаю питание и вставляю в lpt у меня горят диоды led1,led4 и слабо led0 — это так и нужно, или это что то замыкает??

      Чесно говоря не помню=( led4( LED14 всмысле?) это питание — он должен гореть, а остальные при отключенном COM-кабеле не должны бы. Проверьте, может и замыкает.

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

      Нижний — авторезет от ком-порта, верхний в правом положении разрешает работу с ком- портом. При прошивке бутлоадера всё это несущественно.

      3. Питаю схему адаптером 16 вольт, на 6 и 7 ножке МК мерял напряжение — показало 5 В, так можно?

      16В, конечно многовато — будет грется стабилизатор, но это не так страшно.На МК напряжение правильное.

      4. Перепутал микроконтроллер на 180 градусов и включил питание — ему кердык?

      С этого, конечно, стоило начать=))) Может и не кирдык, но теперь уверенности в нём никакой. При самостоятельной сборке девайсов, желательно быть неуверенным в минимальном количестве вещей — например — точно знаем что все детали целые(новые/проверенные), у компа ком/лпт порт рабочий, кабели, блок питания проверенные — тогда все косяки можно списать на плату и/или пайку-сборку и целенаправленно их искать.
      Чем больше «слабых» мест тем сложнея понять/найти что не так=(

    • доброго времени суток, снова…
      вытравил новую плату, собрал все заново.
      пытаюсь шить через программатор Громова, снова выдает такое:

      avrdude: stk500_getsync(): not in sync: resp=0x30
      avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

      Через UniProf залил ATmegaBOOT.hex, им же выставил фьюзы(кстати, до того как выставить фьюзы диод LED13 моргал 8 раз с частотой примерно примерно в 1 секунду, когда включал окно терминала из ArduinoIDE, когда подавал питание на плату, когда доставал шнурок программатора), после выставки фьюзов моргает 1 раз в тех же случаях(подаю питание и т.д.)

      Если использовать программатор Громова не нужно же ведь ничего дописывать в arduino-0015\hardware\programmers.txt и при прошивке в ArduinoIDE нужно выбрать /w AVR ISP?

      Еще когда вставляю провод программатора в запитаную плату, LED13 светится — это так и надо или что то не так?
      Пробывал PonyProg не хочет вообще видеть arduino, c CodeVisionAVR не смог подружиться я, терминал в нем работает, но вот прочитать/прошить МК не могу…
      Что посоветуете? Если кому скучно, и хочет поделиться опытом с нубо-паяльником в скайпе буду рад (skype: aproksimacia)

    • Забыл написать когда вставляю провод программатора в запитаную плату, LED13 светится, а когда вставляю в com порт — он 1 раз мигает и гаснет, так и надо?

    • Извиняюсь за огромное количество коментариев и вопросов, но тут дочитался что atmega8 и 8a имеют разные сигнатуры, это может мешать прошивке?

    • до того как выставить фьюзы диод LED13 моргал 8 раз с частотой примерно примерно в 1 секунду, когда включал окно терминала из ArduinoIDE,

      это он без кварца, на внутреннем генераторе работал (с завода то ли 1МГц то ли 8, не помню)

      после выставки фьюзов моргает 1 раз

      прошили фьюзы- МК стал работать от кварца — на 16МГц. Присмотритесь — он не один раз моргает, а даёт пачку частых морганий, просто тепкрь они сливаются. Так и должно быть.(если, конечно, речь идёт о 8-й атмеге)

      Если использовать программатор Громова не нужно же ведь ничего дописывать в arduino-0015\hardware\programmers.txt и при прошивке в ArduinoIDE нужно выбрать /w AVR ISP?

      Вот не уверен, что прог-р Грова и AVR ISP одно и тоже…
      Но! вопрос не в это а в том зачем вам теперь програматор?! Вы же успешно прошились!
      Всё — теперь можно лить скетчи через ком-порт.

      вставляю провод программатора в запитаную плату, LED13 светится, а когда вставляю в com порт — он 1 раз мигает и гаснет

      Да всё верно.

      atmega8 и 8a имеют разные сигнатуры, это может мешать прошивке?

      При шитье через ISP не помню, помоему нет, но заливке скетчей это точно не может помешать 😉

    • Большое спасибо, Zoltberg!!! Заработало=)

      И на будующее может у кого будет такая же проблема, это связано (как я думаю, во всяком случае) с тем что atmega8 и atmega8a-pu имеют разные сигнатуры, по этому arduinoIDE не может прошить загрузчик. По этому я советую:

      1. Взять программу UniProf (минимум кнопок и простой интерфейс. для новичка вроде меня то что нужно) и программатор Громова.

      2. Прошить загрузчик "\hardware\arduino\bootloaders\atmega8\ATmegaBOOT.hex" (LED13 моргает с итервалом в 1 секунду 8 раз).

      3. Выставить фьюзы, так как описали тут (LED13 моргает оч быстро, кажется что просто горит около 1-1.5 секунды).

      4. Все, теперь просто делаете сom шнурок на 4 провадка и заливаете через ArduinoIDE скетчи=)

      Еще раз большое спасибо Zoltberg и всему ресурсу в целом=)))

  11. Всегда раздражают программаторы с LPT разъемом… Ну нету у меня ни на одном компе LPT уже 8 лет! Зато у меня есть программатор USBasp за 3,5 бакса 😉

  12. Здравствуйте, ув. Zoltberg

    Спасибо за ту нелёгкую работу, которую вы делаете на этом сайте.

    Не получается установить Bootloader на Arduino Nano v2.3.

    Очень нужно создать проект на ардуине (Arduino Nano v2.3 w/ ATmega 168-20AU). Плата самодельная. Ввиду того, что Атмель давно снял с производства ATmega 168-20AU, пришлось заменить этот МК на ATmega 168PA. Всё остальное — как в мануале ArduinoNanoManual23.pdf). Фьюзы процессора не трогал, т.е. в качестве источника тактирования использую установленный по умолчанию встроенный
    RC-генератор. Для выяснения состояния процессора попытался прочитать, запрограммировать его со стороны ICSP порта (ChipBlasterAVR, STK200/300). Всё получается — читается, стирается, программируется, отрабатывает программу. Т.е. процессор стопроцентно жив.

    Пытался установить bootloader по технологии, описанной в статье выше. Использовал правленную ArduinoIDE-022 (вписал в файл “arduino-0022\hardware\programmers.txt”: stk200.name=STK200stk200.protocol=stk200) и шнурок
    STK200/300, подключённый к единственному LPT-порту. После правки в разделе Tools\Burn Bootloader появилась новая запись- w/STK200.
    Работаю под Windows XP. Драйвер LPT-порта giveio.sys установил.

    Для установки Bootloaderа жму Tools\Burn Bootloader\w/STK200
    Получил ответ:

    Error while burning
    avrdude: Expected signature for ATMEGA168 is 1E 94 06
    Double check chip, or use -F to override this check.

    Используя всё тот же ChipBlasterAVR и шнурок STK200 прочитал байты сигнатуры ATmega168PA. Как и следовало ожидать, они отличаются от сигнатуры ATmega168:
    Chip Signature: 1E 94 0B

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

    Shihad > Господа, кто-нибудь сумел поправить бутлодер для Атмеги8а?
    Zoltberg > Править бутлоадер не надо. ЕМНИП Atmega8 и Atmega8a программно полностью совместимы, так что надо просто унять аврдьюд. Он, как видите ругается на сигнатуру(подпись), которая естественно разная у 8 и 8а. Отсюда вывод — надо обьяснить что мы шьём другой контроллер или вообще запретить проверку подписи.

    Подходит ли такой способ решения проблемы и в моём случае (совместимы ли программно ATmega 168-20AU и ATmega 168PA)? Нужно
    ли править Bootloader? Или достаточно унять аврдьюд?

    • Образец правильно поставленного, развёрнутого вопроса=)
      Подходит.
      Совместимы.
      Не нужно.
      Достаточно.
      Кстати можно использовать и современную ИДЕ.
      Лезете arduino-1.0.1\hardware\tools\avr\etc
      Открываете avrdude.conf (блокнот кашу не форматированную показывает, лучше Notepad++, Bred)
      Ищем строчку 0x1e 0x94 0x06
      Меняем на 0x1e 0x94 0x0b
      Сохраняем, теперь аврдьюд думает что у ATmega168 сигнатура именно 1E 94 0B и не быкается.
      Минус решения — теперь будет ругаться на ATmega 168-20AU
      По-хорошему нужно добавить «свою» плату в Сервис->Плата->My w/ATmega 168PA, но это долго и нудно.

  13. Прошу помощи, спасите, уже всю голову сломал. Вообщем микроконтроллер Atmega644, платформа Gen7 для RepRap, программатор 5 проводков. Вообщем записываю фьюзы все норм:

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

    D:\for bootloader\avrdude\avrdude -p atmega644 -C avrdude.conf -c dapa -P lpt1 -U flash:w:bootloader-atmega644-20Mhz.hex
    avrdude: AVR device initialized and ready to accept instructions
    Reading | ################################################## | 100% 0.00s
    avrdude: Device signature = 0x1e9609
    avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
    To disable this feature, specify the -D option.
    avrdude: erasing chip
    avrdude: reading input file «ATmegaBOOT_644P.hex»
    avrdude: input file ATmegaBOOT_644P.hex auto detected as Intel Hex
    avrdude: writing flash (65382 bytes):
    Writing | ################################################## | 100% 19.31s
    avrdude: 65382 bytes of flash written
    avrdude: verifying flash memory against ATmegaBOOT_644P.hex:
    avrdude: load data flash data from input file ATmegaBOOT_644P.hex:
    avrdude: input file ATmegaBOOT_644P.hex auto detected as Intel Hex
    avrdude: input file ATmegaBOOT_644P.hex contains 65382 bytes
    avrdude: reading on-chip flash data:
    Reading | ################################################## | 100% 18.06s
    avrdude: verifying…
    avrdude: verification error, first mismatch at byte 0xf800 0x8f != 0xff
    avrdude: verification error, content micmatch
    avrdude: safemode: Fuses OK
    avrdude done. Thank you.

    • verification error, first mismatch at byte

      Ну так про это пол статьи.
      Кабель меняйте, пробуйте укорачивать, от чего питаете, кстати?

    • питание от блока питания, штатное питание платы, на ножке VCC микроконтроллера стабильные 5 вольт))) что-то как-то не понятная сама физика, фьюзы пишет, сам бутлоадер прошивает но ошибка возникает уже при проверке при обращении к адресу 0x8f… не с микроконтроллером ли беда какая?

    • С МК врядли что-то скорее просто помехи ловит.
      Мало ли чего он прошивает — главное что прошилось=)
      Запитайте от компа (например от разъёма FDD/HDD/CD-ROM, хоть USB)
      Земли соединили?
      Ну и — «делайте другой кабель, укоротите имеющийся»…

    • просто много где читал у кого такая ошибка, скетч в ардуино все равно получается залить, а у меня ни фига, когда скетч заливаю та же самая ошибка выскакивает в ардуино, а когда монитор порта открываю там непонятные иероглифы пишет и прокручивает.
      Всмысле земли соединить? об этом что-то я не в курсе…
      заранее извиняюсь если какие глупости пишу, но в программировании новичок

    • тогда прошу на форум, чтобы здесь не плодить, и фотки прилепите и схему, и ссылки, и прочие подробности.

    • хорошо… спасибо! со шнурком повожусь

  15. Здравствуйте при попытке прошить через среду Arduino 1.0.4 выдает следующее:
    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:\Documents and Settings\Администратор\Мои документы\Загрузки\arduino-1.0.4-windows\arduino-1.0.4\hardware/tools/avr/etc/avrdude.conf»

    Using Port: \\.\COM3
    Using Programmer: stk500v1
    avrdude: Send: 0 [30] [20]
    avrdude: Send: 0 [30] [20]
    avrdude: Send: 0 [30] [20]
    avrdude: Recv:? [3f]
    avrdude: stk500_getsync(): not in sync: resp=0x3f

    avrdude done. Thank you.

    В чём проблема?
    Спасибо.

  16. Господа, кто-нибудь сумел поправить бутлодер для Атмеги8а? На Ардуино-форуме есть вопрос без ответа. АрдуиноИДЕ пишет

    avrdude: AVR device not responding
    avrdude: initialization failed, rc=-1
    avrdude: Yikes!  Invalid device signature.
    avrdude: Expected signature for ATMEGA8 is 1E 93 07

    Шью MRC28 c robozone.su параллельным программатором.

    • Править бутлоадер не надо.
      ЕМНИП Atmega8 и Atmega8a программно полностью совместимы, такчто надо просто унять аврдьюд. Он, как видите ругается на сигнатуру(подпись), которая естественно разная у 8 и 8а. Отсюда вывод — надо обьяснить что мы шьём другой контроллер или вообще запретить проверку подписи.
      Тут у нас про аврдьюд читануть можно.
      Ну или шить тем что понимает 8а, а скармливать тот же \hardware\bootloaders\atmega8\ATmegaBOOT.hex
      Не забываем прошивать правильным образом фюз и локбиты.

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение