не грузиться скетч
- Войдите на сайт для отправки комментариев
Ср, 15/02/2012 - 17:44
помогите, пришла arduino uno с dealextreme
сначала когда подключил в диспетчере устройств определялось как atmega8u2 dfu со странными VID_03EB&PID_2FEE и соответственно не устанавливались драйвера, я расстроился, но решил что ничего страшного и перепрошил как написано здесь http://arduino.cc/en/Hacking/DFUProgramming8U2 на прошивку Arduino-usbserial-uno.hex что шла вместе с arduino 1.0
в диспетчере устройств появилось ардуино, установил драйвера теперь при подключении отображается ком порт, но при попытке залить скетч выдает
Binary sketch size: 1026 bytes (of a 32256 byte maximum) avrdude: stk500_getsync(): not in sync: resp=0x00
и при этом led который на 13 пине моргает два раза подряд с частотой где-то раз в секунду и так же моргает после перезагрузки кнопкой ресет
помогите пожалуйста
А в закладке Tools --> Board выбрали Arduino Uno?
да
Незнаю может это вам поможет
у меня такое было на пласе с com портом . решение непропай дорожек (плата делалась своими руками)
непоможет. Давайте детали платы
1) марка МК точно
2) частота работы
3) как подрубаемся к UART (FT232RL?)
ТРИ МИРА,
но здесь то заводская плата, сделана не плохо, внешне ничего не нашел
whoim,
1. ATmega328P-PU
2.9600 (это ведь про частоту порта?)
3. не знаю, на плате нет FT232RL. есть ATMEL MEGA8U2 1135 TH рядом что с юсб портом и есть LM358 рядом с МК
фото
На фотке видно белый предохранитель возле usb, проверьте его. Какой то он корявый. Счас поищу инфу по поводу usb-чипа. Но вообще по идее вам подойдет бутлоадер на одноименный МК с частотой вашего (8/16) мгц, выберите в Boards.txt. И обязательно при прошивке проставьте фьюзы так, как там указано. Если шьете не дудкой, переведите фьюзы в понятный вид калькулятором фьюзов (в гугле).
на предохранителе как будто отколот угол, но при этом плата работает, питание поступает и с юсб и с внешнего бп.
вся проблема в том что мне бутлоадер нечем прошить, второй ардуины нет и лпт порта тоже нет чтобы по ICSP прошить
так а раньше чем прошивали?
без этого никак. Только я уже и не знаю куда шить какой бутлоадер - в восьмую мегу или в 328..
вот это прочитайте. Похоже, вы прошили не то :)
http://arduino.cc/en/Hacking/DFUProgramming8U2
я прошивал по этой инструкции, но так заливается прошивка, а не бутлоадер как я понимаю
у вас на плате два контроллера. Первый, маленький - для связи с USB, у него своя прошивка. Второй, большой - сам контроллер "ардуино", в него бутлоадер. Думаю, что то вы напутали при прошивках.
Вот я и прошил flipом MEGA8U2 прошивкой из стандартного набора ардуино.
То есть теперь мне нужно прошить ATmega328P-PU?
вам нужно вернуть прошивку MEGA8U2 - там не бутлоадер должен быть, а своя прошивка для USBмоста на 328 мегу. Ну а потом уже 328 шейте, желательно прошивку и бутлоадер брать со страницы выше. То есть - официальной.
Если присмотритесь к плате - там два ISP.
что то я запутался
http://arduino.cc/en/Hacking/DFUProgramming8U2 здесь описано как прошить mega8u2 прошивка Arduino-usbserial-uno.hex это и есть рошивка для USBмоста на 328 мегу, так? Выходит mega8u2 можно шить не через ISP а через юсб? а как шить mega328p? и чем?
> для USBмоста на 328 мегу, так?
да
>Выходит mega8u2 можно шить не через ISP а через юсб?
нет, только ISP или парралельным (бессмысленно)
>а как шить mega328p?
через второй ISP, в конце платы
>и чем?
бутлоадер Arduino IDE, если на этом же сайте нет своего бутлоадера. Исходя из характеристик 328-й.
В общем, 8-я мега заменяет собой FT232RL, но при этом требует программы (работает программно). Она тупо дешевле.
Вроде как бутлоадер после прошивки 8-й меги (в 328-ю) через восьмую же и заливается, либо вообще не нужен. Переведите статью, почитайте вдумчиво. У меня времени нет (
бутлоадер для 328 нужен и через 8 его не залить как я понял.
еще когда 328 стоит на свем месте при отправке через сериал монитор ничего не возвращается моргает только RX и начинает моргать светодиод 13 два раза в секунду, если вытащить 328 и соединить контакты RX и TX в сокете сериал монитор отправляет и принимает и моргают и RX и TX, те работает нормально, значит ли это что mega8 свои функции выполняет правильно? а вот 328 нет
те работает нормально, значит ли это что mega8 свои функции выполняет правильно?
абсолютно верно, значит перешивайте 328-ю через второй ISP или парралельным
Хм, не совсем понял. Если бутлоадер можно перешить только через внешний программатор, то зачем его перешивать?
Раз у топик-стартера нет внешнего программатора, значит и бутлоадер в 328-мой он запороть не мог. (если только его еще на заводе не залили кривым).
да и
>и при этом led который на 13 пине моргает два раза подряд с частотой где-то раз в секунду и так же моргает после перезагрузки кнопкой ресет
говорит за то, что бутлоадер в 328 живой и трогать его не нужно.
Или его "без программатора не перешить", только когда он "поломан", а с нормальным бутлоадером он может "перешить сам себя"?
> и так же моргает после перезагрузки кнопкой ресет
А происходит ли это (само-перезагрузка) в момент когда вы начинаете заливать скетч или открываете Serial Monitor?
Если нет - попробуйте руками жмакнуть ресет в момент перез самой заливкой (не когда вы в IDE нажимаете кнопку Upload, а в момент когда оно закончило компиляцию и "счас будем заливать").
Если нет - попробуйте руками жмакнуть ресет в момент перез самой заливкой (не когда вы в IDE нажимаете кнопку Upload, а в момент когда оно закончило компиляцию и "счас будем заливать").
да моргает после начала заливки или запуска сериалмонитора
Хм... тогда "жмакать руками reset" не имеет смысла.
Возможно имеет смысм в свойствах ком-порта выставить ту же скорость, что и boards.txt для вашей платы (хотя обычно это не требуется, у меня разные - и ничего).
Или снизить ее в boards.txt (или вообще попробовать поперебирать, вдруг бутлоадер ждем "какую-то конкретную скорость").
leshak
имеем рабочий мост usb-uart и МК, не желающий сотрудничать с ним. Случаи "вылета" бутлоадера у меня были - статика, перегрев, полярность питания, 11в вместо 5 на мк давал)) после последнего он вообще сдох правда..
я так понял, если вынуть МК и коротнуть пины rx/tx в панельке - все возвращается?
хотя моргающий светодиод говорит за то что бутлоадер работает.. Возможно, сдыхает сам МК, резет вручную надо попробовать.
Моргает после начала заливки обоими светодиодами? Скетч стандартный блинк пробовали? У меня есть мк с видимо поврежденной флеш - работают только очень маленькие скетчи)
leshak
имеем рабочий мост usb-uart и МК, не желающий сотрудничать с ним. Случаи "вылета" бутлоадера у меня были - статика, перегрев, полярность питания, 11в вместо 5 на мк давал)) после последнего он вообще сдох правда..
Согласен. Это намного более вероятно, чем мое полу-мифическое предположение о несовпадении скоростей (битности и проч.) И если бы у человека был под руками программатор или другая дуина, конечно в первую голову нужно было-бы попробовать именно перешить бутлоадер. Но программатора, как я понял - нет.
Поэтому я и перечеслили, даже ОЧЕНЬ маловероятное, но то что можно попробовать "сразу сейчас". К тому же снижение скорости в boards.txt может помочь если "хреновый контакт" где-то или кабель не очень. Типа когда RX,TX коротили то "видили возврат" на 9200, а скетч пытаемся лить на 57600.
>хотя моргающий светодиод говорит за то что бутлоадер работает..
ну вот и я, тоже, из этого исходил когда говорил что бутлоадер жив, и не нужно торопится его перешивать.
>резет вручную надо попробовать.
Уже спрашивал. Топик стартер сказал что при загрузке или открытие сериал монитора "начинает мигать". Значит авто-ресет работает нормально.
Вообщем в итоге получается "все по отдельности вроде работает", но "не работает". Может камушек хреново припаян. И на RX,TX пинах все хорошо, а на ногу самого камня "не доходит". Есть возможность прозвонить соединение между ногами и этими пинами?
Вы знаете, тут вспомнилась такая вещь. На старых платах использовали FTDI микросхему в BitBang режиме, что-бы сделать из нее "программатор", не используя сам кристал и не заливая в него ArduinoISP.
Вот например "самопрошивают" duemilinanove в которой нет бутлоадера : http://arduino.cc/blog/2010/04/20/burn-bootloader-for-arduino-duemilanove/ и подробнее www.kerrywong.com/2010/04/02/on-atmega328-bootloading-with-ftdi-bitbang-method/
Видел упоминания что подобное делали и на 8u2, но найти "пошаговой инструкции" у меня не получилось. Если сможете найти-разобратся, то, возможно, "внешний программатор" и не потребуется искать.
"начинает мигать". Значит авто-ресет работает нормально.
ну, смотря как мигать. Полусекундное подмигивание будет в любом случае. Надо больше инфы.
Есть возможность прозвонить соединение между ногами и этими пинами?
так вроде автор коротил в колодке рх/тх?
На старых платах использовали FTDI микросхему в BitBang
лучше поискать в его городе парралельный программатор и пробовать на новом мк)
история продолжается, купил на ибэе новую ATMEGA328P-PU с уже прошитым бутлоадером, вставил:
запускаю serial monitor отправляет, плата мигает RXом но обратно не отправляет, при попытке залить блинк выдает ошибку
со старым чипом при запуске serial monitor сразу начинает моргать светодиод 13 (три раза подряд секунда перерыв потом опять и так по кругу) при отправке мигает RX обратно не приходит, при заливке блинка точно также начинает моргать 13 лед и выдает ту же ошибку
И на RX,TX пинах все хорошо, а на ногу самого камня "не доходит". Есть возможность прозвонить соединение между ногами и этими пинами?
Ну так это проверяли? Прозванивали между 2, 3 ногой камня и RX,TX пинами ардуины? arduino.cc/it/Hacking/PinMapping168
Можно еще и такую проверку устроить. Вытащить вообще камень из панельки. И замкнуть 2, 3 ногу на самой панели.
Дальше "serial" - смотрим что возвращается. Если возвращается - значит до камня точно все доходит, если нет - ищем обрыв на плате.
Ну и на всяк случай, убедитесь что порт правильный. Плата (в tools) выбрана правильно. Бо со всеми "танцами с бубном", могли где-то сбить и не заметить этого.
плата и порт правильные
звонится
это делал
Эта плата того же производителя что и у меня в соседней ветке про buyincons. Соболезную, я отправил все свои обратно. И вам советую. Бывает вылетает мелкая 8мега что возле юсб, там может быть просто не пропай, так как ноги очень мелкие. Самому перепаять - нужен большой опыт по перепайке такой мелочи. Мне такая мега2560 попалась, определяется, шьётся но не работает и все, видно где то не контакт (шил и 8 и 2560 - не помогло)) Отправил тоже.
Только теперь они хитро начали писать JY-MCU под колодкой атмеги 328й, когда снимешь можно только разглядеть.
плата и порт правильные
звонится
это делал
ну тогда, единственно что приходит на ум - либо питание на плате "вытанцовывает" (меряли? все нормально с этим), либо с кварцем "что-то не так".
Попробуйте подключить внешний блок питания на 9v, а не "от USB" питатся.
Потом, я бы, пробовал вытащить камень на макету. Повесить к нему новый кварц. Кнопку ресет (и ждать ее рукой). Вначале, так как проще, просто пробросил-бы ему RX,TX на ноги с пинов D0,D1.... если не заработает, то пытался-бы и USB<->Serial конвертер взять альтернативный. На FT232RL или, для экономии средств, на старом кабеле от мобилки за $2 (DKU-5, CA-42 и т.п.)
Узнал еще один способ лечения.
Имеет смысл, только если при замкнутом rx/tx данные возвращаются, но скетч все равно не грузится.
Лечение (все делаем при питании от USB, без внешного блока):
Узнал еще один способ лечения.
Имеет смысл, только если при замкнутом rx/tx данные возвращаются, но скетч все равно не грузится.
Лечение (все делаем при питании от USB, без внешного блока):
Это не "лечение", это или глюк бутлоадера, или отпал резет с ftdi. Если последнее - можно просто нажать быстро ресет при компилировании - появлении надписи в ИДЕ.
Два дня назад я тоже так думал :)
И выдвигал те же версии что и вы ("отпал резет с ftdi" - лечить быстрым нажатием reset). Но, в итоге, мои теоретически выкладки жестоко опроверглись реальным железом. Оказалось что я знаю, все-таки, далеко не все. И ларчик совсем в другом. :) Поэтому я и не поленился найти ветку месячной давности, авось еще актуально для человека.
Причем, по ветки выше вы можете увидить, что давить reset, уже пробовали.
Так что, думаю, ничего плохого от того что человек попробует "мой" новый способ - ничего плохого не будет. Тем более что покупать или корежить плату для него - не нужно.
Причем вероятность что поможет, учитывая "и так же моргает после перезагрузки кнопкой ресет" - далеко не нулевая.
Два дня назад я тоже так думал :)
И выдвигал те же версии что и вы ("отпал резет с ftdi" - лечить быстрым нажатием reset). Но, в итоге, мои теоретически выкладки жестоко опроверглись реальным железом. Оказалось что я знаю, все-таки, далеко не все. И ларчик совсем в другом. :) Поэтому я и не поленился найти ветку месячной давности, авось еще актуально для человека.
Причем, по ветки выше вы можете увидить, что давить reset, уже пробовали.
Так что, думаю, ничего плохого от того что человек попробует "мой" новый способ - ничего плохого не будет. Тем более что покупать или корежить плату для него - не нужно.
Причем вероятность что поможет, учитывая "и так же моргает после перезагрузки кнопкой ресет" - далеко не нулевая.
так где же собак порылся? )
Я точно знаю, что как минимум нескольких людям это помогло (перед этим "просто давить reset" - пробовали и не помогало).По крайней мере человеку с которым я общался - этот рецепт помог. И он рассказал мне :)
Мое пониманимание, "почему так", такое (но гарантировать что это 100% правильное объяснение - не могу):
Залили дефектный скетч. Выдернули шнур в момент заливки. Он пошел выполнятся... Выполнил что успели залить - и пошел дальше. Выполнять случайный мусор. Одна из команд этого случайного мусора - включили wathdog. Счетчик которого - естественно никто "не поддерживал". И дальше начался бесконечный reset по срабатыванию wathdog (поэтому и led все время мигает).
Нюанс состоит в том, что, видимо, RESET!="Выдернули питания". Насколько я понял, он не делает disable этому самому wathdog-у. А вот реальное выключение - делает.
Поэтому и нужно его держать, до тех пор, пока не начнешь лить реальный скетч. Что-бы "дефектный" не выполнился даже одного раза.
Не уверен, но насколько я помню из гугления, эта проблема бывает не на всех платах. Это баг в некоторых старых версиях бутлоадера. В более правильных, он сам сбрасывает этот wathdog.
Вот апп-ноутсах нашел подтверждение тому что reset!=power off/on
Using the Enhanced Watchdog Timer
When designing for devices having the Enhanced Watchdog Timer, it is important to
evaluate the WDT Reset Flag in the startup code. This applies even if the application
never intends to use the WDT. If the WDT System Reset Mode should unintentionally
be enabled and cause a system reset, the WDT Reset Flag will be set and the WDT
System Reset Mode is kept enabled after the system reset. "
Мой перевод: "в устройствах имеющих расширенный WatchdogTimer" важно устанавливать WDT Reset Flag в коде инициализации. Даже когда ваше приложение не использует WDT. Если WDT System Reset Mode случайно выставится в enable это приведет к перезагрузки системы. И WDT Reset Flag сохранит свое значение после рестарта системы."
Кстати там же можно найти что причиной подобной "неприятности", может быть еще и неправильноя установка фьюзов, а не только "битый скетч". Тогда и лечить нужно будет фьюзами :)
Но, насколько я пониюмаю, если шили через ArduinoIDE, а не внешним программатором, то фьюзы сбить не могли. Разве что статическим электричеством....
не верится мне в "битый" скетч, только во фьюзы.. Но вот причина..
Хотя.. Я залил прогу в тиньку, выпаял ее феном, впаял в новую платку - программы нет. Читаю - херня какая то. Заливаю по новой - все работает. Выпаивал при 300. Так что.. все может быть.
>не верится мне в "битый" скетч, только во фьюзы.. Но вот причина..
Ну я описал вам реальную ситуацию. Которая была у реального человека.
Начал заливать скетч, и посреди заливки - передумал. Выдернул из USB.
После чего и начал получать stk500_getsync(). Он нагуглил вот такое решение. И оно ему помогло.
А что такого невероятного в "битом скетче"? Как на меня это намного вероятней чем фьюзы. Которые через ArduinoIDE вообщем-то и не поменяешь. Не уверен что их вообще можно поменять без внешнего програматора.
Насчет watchdog у меня есть персональная поучительная история. Пытался я разобраться с само-ресетом. И где-то увидел такой код
ВНИМАНИЕ! НЕ НАДО ЕГО ЗАЛИВАТЬ!
Как-то так выглядело. После заливки в decimila, та мигает быстро быстро светодиодом и ни на что не реагирует. Как я потом понял, я как раз активировал Watchdog и плата перегружается бесконечно. Новый скетч залить невозможно.
Охренеть)
leshak, не верится что "мусор" так удачно расположится, что явит собой последовательность команд включения вачдога) сродни шансу на миллиард.. Но все может быть!
И где-то увидел такой код
Как раз собирался писать такой скетч. Что-бы проверить свои догадки. Но теория-теорией, а ладошки потеют ;) С вашим постом необходимость "риска" - отпала. По крайней мере для себя я уверился в правильности своей догадки о причинах "почему такое лечение помогает".
Как я потом понял, я как раз активировал Watchdog и плата перегружается бесконечно. Новый скетч залить невозможно.
Насколько я понимаю, если devimila еще жива, "рецепт" должен вам помочь (если вы еще не перешили ее внешим программатором).
не верится что "мусор" так удачно расположится, что явит собой последовательность команд включения вачдога)
Хм... а что в этом такого не вероятного? Это "правильно включить/насетапить" нужна последовательность комманд. А просто "включить", без сетапа - пара байт. В порту установить всего один бит. То есть должен попастся байт команды пересылки в порт, а за ним должен идти байт у которого установлен бит ""System Reset Mode". То есть, фактически нужно что-бы было точное совпадение с "одним магическим число" (вероястность 1/256), а за ним параметр который именно включит, а не выключит (вероятность 1/2). Получаем вероятность 1/512. На каждой команде.
При памяти в несколько килобайт (тысячи попыток), то что "нещасливая комбинация" попадется - практически гарантия.
Конечно я слегка упростил ("магическая команда" может быть не однобайтовой, а двух или трех байтовой), память не вся "выполняется" и т.п.. Так что в реальности вероятность будет пониже, но все равно выше, чем вероятность встретить честного ГАИ-шника ;)
понял, в принципе да, наверно так..
Кстати из этой ситуации можно сделать еще один вывод: НИКОГДА нельзя подключать ноги входа/выхода к питанию или земле напрямую (или к чему-то что может дать большой ток). Даже когда они в скетче используются как input (и вроде все безопастно и работает). Только через резистор.
Нет гарантии, что при очередной заливке, не произойдет сбой, и мусор не включит эту ногу на выход с противоположным, подключенному, значением. Тогда мы получим не "зацикленный ресет" (который можно пролечить), а выгоревшую ногу (в лучшем случае).
Узнал еще один способ лечения.
Имеет смысл, только если при замкнутом rx/tx данные возвращаются, но скетч все равно не грузится.
Лечение (все делаем при питании от USB, без внешного блока):
попробовал так на обоих микросхемах результат такой же.
Печально. Значит у вас еще какая-то другая причина.
Там еще важно "подгадать" момент отпускания ресета. Отпустишь "слишком рано" - бутлоадер решит что скетч не грузят, и запустит дефектный скетч, отпустишь "слишком поздно" - avrdude по таймату отлетит и решит что "на том конце нет бутлоадера" и прекратит попытки заливки. Нужно угадать именно момент заливки, а не " компиляция скетча".
Но это уже, конечно, "гадания от безысходности".
Всем Доброго времени суток!
За ранее извиняюсь, если повторяюси на на етом форуме, или задал неправильный вопрос, это мой первый опыт с ардуино.
Сегодня наконецто пришла моя ардуино уно Version Board ATmega328P UNO R3 CH340T Instead 16U2, также сегодня пытался создать свой первый скеч, но к сажелению при попытке прошить его софт выдает ошибку: avrdude: stk500_recv(): programmer is not responding, скеч выгледит так:
/* igorcutoff */
int ledPin = 13;
void setup ( )
http://arduino.ru/forum/obshchii/sokhranenie-kartinok-na-forume
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...