Проблема прошивки Arduino Pro mini через USBasp
- Войдите на сайт для отправки комментариев
Доброго времени суток всем!
Прошу вашей помощи в прошивке Arduino Pro Mini. Целый день бьюсь, а результата ноль!
Заказывал платку из китая. Точнее две платки одна Arduino Nano и Pro mini (ATmega168/5V/16Mhz). Так же для прошивки было заказано два программатора USBasp 2.0 т.к. по отзывам больше всего понравились людям. Nano оказалось может шить сама себя, потому я долгое время не брался за программаторы и pro mini. Но пришло время... Прочитав кучу литературы в интернете собрал на монтажке модуль подключения программатора к нужным потам pro mini. Все пропаял и прозвонил, получилось все надежно и прочно. Поставил драйвер на программатор и принялся шить блинк как IDE выдала ошибку: Найден неправильный микроконтроллер. Вы указали правильную плату в меню Инструменты -> Плата?
Arduino: 1.6.5 (Windows 7), Плата"Arduino Pro or Pro Mini, ATmega168 (5V, 16 MHz)"

ты какую кнопку жмёшь для загрузки скетча?
"Вгрузить" или "Загрузить с помощью программатора"?
если правильную, то считай сигнатуру с контроллера - соответсвует ли.
пример считывания сигнатуры в файл:
..........please check for usbasp firmware update........
Сначала нужно перешить USBasp
.........cannot set sck period.......
Он не может снизить частоту
..........please check for usbasp firmware update........
Сначала нужно перешить USBasp
.........cannot set sck period.......
Он не может снизить частоту
чем и зачем перешивать? - последняя актуальная прошивка выдаёт это сообщение, это сообщение ни на что не влияет.
....давно это было....
У меня все сразу перешитые с фицхл.де и не выдают этого сообщения ( а это не ошибка).
Влияет.
Чтобы ключ -В работал
Берём два, одним шьём другого, выводит сообщение, но шьёт, затем наоборот, но уже без сообщения.
http://www.fischl.de/usbasp/
Там ещё надо перемычку воткнуть на том кого шьём.....
А в первом сообщении: Expected signature for ATmega168 is 1E 94 06
А где считанная сигнатура?????
Считать не смог?
Рэсет не прошёл? (Пинцетиком попробовать)
Рэсет кто-то держит? (Раз моргает- значит вычёркиваем)
Сигналы перепутаны? ( Мультик в руки - и до проца)
Джампер питания на 3.3 Вольта стоит?
Загадка, однако.......
........перекинул GND на крайнюю левую ногу шлейфа и при подключении плата начала еще моргать синим светодиодом........
Были варианты и прошивки USBASP где на две ножки рядом с питанием были выведены Rx иTx от Atmega8
http://varzazaliam.blogas.lt/files/2010/10/pinbelegung_zielschaltung.png
поэтому всегда беру крайнюю землю
Вот уже сижу теперь дома ковыряю. Пытался понять как считать сигнатуру, почитал мануалы... Вроде дошло что нужно поставить AVR Studio 4. Сказано - сделано. Точной инструкции по считыванию вроде как нет, нашел инструкцию по прошиванию загрузчика, там вроде как надо было считать чтото, попробовал сделать, не нашел платы программатора в настройках подключения (tools>programm AVR>connect). На работе ставил прогу с какого то кривого сайта, там программатор был на выбор usbasp mkII, но при конекте все зависало намертво. Дома поставил версию 4.16 с оф сайта. Там вообще нет этого прогроматора, только ISP но насколько я понимаю это другое. Короче как считать сигнатуру я так и не понял, но думаю что это может быть реальной причиной такого поведения.
Если ктото сможет дать более полные инструкции по получению сигнатуры, я буду рад!
По поводу варианта прошивки USBasp'a думаю вы попали в точку, потому что пока я не подключил землю к крайнему разъему у меня на ардуино горел только красный светодиод, после начал моргать синий.
Мультиком звонил от ног программатора до контактов на ардуино, все было норм, до самого проца не звонил, можно попробовать конечно.
По поводу вольтажа... плата вроде 5V, я перемычку на USBasp не трогал, она стояла на 5V. Вот сейчас попробовал передернуть на 3V, эфект тот же...
Кстати когда после компиляции IDE перед тем как выдать ошибку на платках программатора и один раз моргает светодиод на прием помойму.
Пока это все... Блин такая маленькая плата и такая проблемная. Надо было две Nano Брать. Хотя для них пришлось толи у арабов то ли у китайцев дрова брать на прошивальщик, зато работает безотказно и намного проще конечно. Хотя nano при внешнем питании не может выдавать 3.3v... Кстати кто знает модули расчитаные на 3.3v можно питать от 5 вольт ардуино nano? Я по привычке сначала гироскоп воткнул в 5v когда тока подключал, а потом прочитал что ему нужно 3.3v... Но модуль не сгорел, нормально работал потом. Я вот и думаю, принципиально ли это? Просто не хочется расшивать кабель USB, а датчики вешать нужно.
З.Ы. Кстати кварц в Arduino Pro Mini 16Mhz а в USBasp 12Mhz. В этом может быть проблема?
Пытался понять как считать сигнатуру, почитал мануалы...
какие мануалы? - одна строчка.
нет - нужно купить бубен.
Пытался понять как считать сигнатуру, почитал мануалы...
какие мануалы? - одна строчка.
нет - нужно купить бубен.
Это я прекрасно понял что всего то одна строчка, непонятно куда она... Я написал ее в командрой строке, написал на столе, пошел написал на стене в туалете, написал гречкой в тарелке с ужином... Думаю татуху делать или нет?
На бубне тоже писал, может у меня бубен плохой. Как прошить бубен кто знает?
Блин я не погуглил кстати по поводу самой строчки, надо бы, может найду ответ...
Вроде нашел. Используя поиск вышел на программу SinaProg с помощью нее чтото получил помойму...
Блин я не погуглил кстати по поводу самой строчки, надо бы, может найду ответ...
ну, погугли - что бы не страдать избирательным кретинизмом.
а, то студию ставить, что бы сигнатуру считать - нашёл, а дудкой пользоваться - не нашёл.
Блин я не погуглил кстати по поводу самой строчки, надо бы, может найду ответ...
ну, погугли - что бы не страдать избирательным кретинизмом.
а, то студию ставить, что бы сигнатуру считать - нашёл, а дудкой пользоваться - не нашёл.
Ну короче вроде считал... получается у нас следующее...
Насколько я понял у меня неправильная сигнатуры чипа стоит в плате. Что с этим можно сделать?
Насколько я понял у меня неправильная сигнатуры чипа стоит в плате. Что с этим можно сделать?
ну, снова берёшь 0x1e940b и идёшь в гугл - там тебе скажут, что МК у тебя ATMEGA168P
Да я как бы был в курсе что у меня ATMEGA168PA... Так и само описание говорило о том что там стоит такой чип. Теперь я понял что оригинальные pro mini работают на mega168 и сигнатура там отичается от mega168pa... Только от этого не легче, я до сих пор не понял как это исправить... Пока гуглю но толкового не нашел ничего пока. В IDE при выборе процессора нет возможностивыбрать ничего проме просто mega168 или mega 328...
ну, смотри https://www.google.com/search?q=arduino+ATMEGA168P
ты не поверишь!
http://arduino.ru/forum/programmirovanie/oshibka-podpisi-atmega168pa-au
но это для старых версий ИДЕ - для новых тут
https://github.com/FastLED/FastLED/issues/163
частоту, название платы и пути к загрузчику можно редактировать
Все, спасибо большое! Разобрался! Оказывается там файл с настройками есть(avrdude.conf), где надо было просто поправить сигнатуру для m168! Все началось шиться! Хотя в файле дочерним объектом выступал m168p с правильной сигнатурой, непонятно почему не заработаботало изначально, возможно потому что у меня m168pa. Но это уже не важно, главное я могу снова вернуться к своему проекту!)
Огромное спасибо! Тему можно закрывать!
Все, спасибо большое! Разобрался! Оказывается там файл с настройками есть(avrdude.conf), где надо было просто поправить сигнатуру для m168! Все началось шиться! Хотя в файле дочерним объектом выступал m168p с правильной сигнатурой, непонятно почему не заработаботало изначально, возможно потому что у меня m168pa. Но это уже не важно, главное я могу снова вернуться к своему проекту!)
Огромное спасибо! Тему можно закрывать!
нет - теперь у тебя дудка на сигнатуру m168 будет ругаться.
выше читай - добавь секцию в boards.txt
З.Ы. Кстати кварц в Arduino Pro Mini 16Mhz а в USBasp 12Mhz. В этом может быть проблема?
12мгц нужны для тактирования USB. Никакой другой не пойдет.
12мгц нужны для тактирования USB. Никакой другой не пойдет.
с чего бы это вдруг?
http://arduino.ru/forum/programmirovanie/oshibka-podpisi-atmega168pa-au#...
Народ, а кто подскажет как в IDE Arduino...ы при прошивке bootloadre...а, программа шила фъюзы с локированной памятью?
По умолчанию всегда берется из boards.txt профиль "xxx.bootloader.unlock_bits=0x3F", но там же есть и строка с локированным значением "xxx.bootloader.lock_bits=0x0F", так как IDE заставить брать именно локированный профиль? при прошивке bootloadre...а?
Я обошел это просто заменив фъюз с "xxx.bootloader.unlock_bits=0x3F" на "xxx.bootloader.unlock_bits=0x0F", все заработало, но мне такой подход не нравится, если есть опция в boards.txt, значит как-то можно переключать где-то как шить фъюзы...
п.с. На всякий случай, у меня IDE_v1.6.6
Мой профиль для ARDUINO pro mini(ATmega328p 16мГц 5в)
Я обошел это просто заменив фъюз с "xxx.bootloader.unlock_bits=0x3F" на "xxx.bootloader.unlock_bits=0x0F", все заработало, но мне такой подход не нравится, если есть опция в boards.txt, значит как-то можно переключать где-то как шить фъюзы...
теперь у тебя команда unlock_bits выполняет lock_bits
потому, что:
порядок заливки загрузчика:
Из опыта программирования контроллеров Attiny13-15 AT90S2313 Attiny2313 итд...
Первая операция (разлочивается контроллер - 0x3F) как вы описали, выполняется не так, подается команда стереть контроллер, он автоматом и разлочивается, потом шъются фъюзы конфигуратора high,extended, заливается bootloader, а потом шьются фъюзы локирования
Но вопрос вы, наверное, не поняли, как заставить IDE брать по умолчанию не "xxx.bootloader.unlock_bits=0x3F" а именно строку "xxx.bootloader.unlock_bits=0x0F"?
п.с. Кстате с вашего ответа я понял что вы хотите сказать что после прошивке с моего профиля нельзя будет повторно прошить bootloader? Забегу в перед, все повторно шъется как часы без проблем...
Но вопрос вы, наверное, не поняли, как заставить IDE брать по умолчанию не "xxx.bootloader.unlock_bits=0x3F" а именно строку "xxx.bootloader.unlock_bits=0x0F"?
это вы не поняли
0x3F - разлочивает контроллер, невозможно этой командой выполнить ничего, кроме разлочивания контроллера.
0x0F - лочит загрузочную область, невозможно этой командой выполнить ничего, кроме залочивания загрузочной области.
что вы хотите делать, что бы загрузочная область не лочилать, не разлочивалась или вместо одного выполнялось другое?
*просто включите в Дуино ИДЕ подробный лог и посмотрите, что у вас происходит, что бы не спорить на пустом месте.
проверил чисто для себя на примере atmega8
стираем, разлочиваем, шьём фьюзы
шьём загрузчик, лочим.
что вы хотите делать, что бы загрузочная область не лочилать, не разлочивалась или вместо одного выполнялось другое?
Чтобы по умолчанию, при прошивке bootloadera вся память (FLASH, EEPROM ) была залочена...
п.с. Сейчас по эксперементировал и сразу ошибочку нашел у себя!
Для локирования не 0х0F а 0х0С
Чтобы по умолчанию, при прошивке bootloadera вся память (FLASH, EEPROM ) была залочена...
и, как ты будешь шить скетч и писать в EEPROM ?
Для локирования не 0х0F а 0х0С
все лохи, а ты - Дъартаньян.
Чтобы по умолчанию, при прошивке bootloadera вся память (FLASH, EEPROM ) была залочена...
и, как ты будешь шить скетч и писать в EEPROM ?
Для локирования не 0х0F а 0х0С
все лохи, а ты - Дъартаньян.
Зачем вы грубите?
Через UART все прекрасно шъется через BootLoader-Стандартно в IDE ARDUINO..ы (когда чип локирован) внутресхемно, но если содрать код с АРДУИНКИ то как я думаю, уже не получится...
Может конечно по UART считать можно как-то, но не думаю что это возможно, хотя...
Зачем вы грубите?
ну, а как можно разговаривать с человеком, корому неоднократно повторено, что так не работает:
содрать код с АРДУИНКИ то как я думаю, уже не получится...
ну, да - не получится подключить плату дуино к компу и считать всё, что выше загрузочной области средствами загрузчика.
Зачем вы грубите?
ну, а как можно разговаривать с человеком, корому неоднократно повторено, что так не работает:
Еще раз вам говорю что при прошивке IDE игнорирует строку "promini.bootloader.lock_bits=0x0C" она что есть что ее нет он берет данные с "promini.bootloader.unlock_bits=0x0C"
Еще раз вам говорю что при прошивке IDE игнорирует строку "promini.bootloader.lock_bits=0x0C" она что есть что ее нет он берет данные с "promini.bootloader.unlock_bits=0x0C"
а, как вы узнаёте, что у вас происходит, если lock_bits=unlock_bits=0x0C
попробуйте для напоржать и фьюзы прописать 0x0C
читаем первоисточник, что для чего и зачем
https://www.arduino.cc/en/Hacking/Bootloader?from=Tutorial.Bootloader
Еще раз вам говорю что при прошивке IDE игнорирует строку "promini.bootloader.lock_bits=0x0C" она что есть что ее нет он берет данные с "promini.bootloader.unlock_bits=0x0C"
а, как вы узнаёте, что у вас происходит, если lock_bits=unlock_bits=0x0C
попробуйте для напоржать и фьюзы прописать 0x0C
У нас с вами беседа зашла в тупик... Либо вы меня не понимаете либо меня не хотите понять и моего вопроса, который я озвучил в самом начале нашей дискусии...
Сейчас я видео коротенькое делаю, где все наглядно видно что все работает при локированной ARDUINO все шъется по UART и работает...
читаем первоисточник, что для чего и зачем
RE: Это мне не зачем читать я там и так все давно прочитал
Сейчас я видео коротенькое делаю, где все наглядно видно что все работает при локированной ARDUINO все шъется по UART и работает...
сиськи будут на видео?
я говорил, что достаточно логов Дуино ИДЕ, что бы аргументированно разговаривать.
я говорил, что если(я не проверял и ничего утверждать не буду) по UART полностью контроллер заливает скетчи, то что запретит слить с контроллера хекс средствами загрузчика?
зачем эти бессмысленные танцы с бубнами?
Сейчас я видео коротенькое делаю, где все наглядно видно что все работает при локированной ARDUINO все шъется по UART и работает...
сиськи будут на видео?
Нет, не будет!
Возможно, комму-то пригодится!
https://www.youtube.com/watch?v=252MYGym6xc&feature=youtu.be
п.с. Основной вопрос остался открытым, как при прошивке в IDE bootloader..а, в конфиге boards.txt не меняя строку "promini.bootloader.unlock_bits=0x3F" на "promini.bootloader.unlock_bits=0x0C"(для лакирования контроллера) прошить чип и он по умолчанию был локированным, возможно, где-то есть опция скрытая, для включения данной возможности... Еще раз повторюсь что при стандартной прошивке bootloadera контроллер остается не за лакированным!!! И любой через программатор USB(asp)isp сможет спокойно считать вашу программу...
я же тебе говорю, что нужно сделать:
*.bootloader.lock_bits=0x0C
ок. а, нафига это всё? что бы было что?
ещё раз, чисто для себя, что бы понять, нафига.
стираем чип
читаем лок-фьюзы
делаем *.bootloader.lock_bits=0x0C и загружаем загрузчик посредством Дуино ИДЕ
сначала разлочивается
затем, залочивается
перепроверяем
кто в курсе, что желает ImaSoft ?
кто в курсе, что желает ImaSoft ?
ХА, вот я и нашел секрет, в чем мы друг друга не поняли!
Чего же вы молчите что ...
Вернее, почему в профильном файле boards.txt, для UNO указано не правильное значение(promini.bootloader.lock_bits=0x0F) лакирования чипа? Вот это меня и запутало!
Посмотрел лог AVRdube, действительно он в самом конце прошивает значение для лакирования чипа, только вот если зашить 0х0F то не чего не за лакируется, а вот 0х0С (получается 0хСС) все как надо, чип получается лакированным!
п.с. Все мой вопрос снимается с повестки дня, все, оказывается, шьется, но бракописатели ARDUINO...ы не те значения в профиле указали!
Посмотрел, в каких профилях не правильно указанно значение для ATmega328p...
uno.name=Arduino/Genuino Uno(328p)
mini.name=Arduino Mini(328p)
nano.name=Arduino Nano(328p)
pro.name=Arduino Pro or Pro Mini(328p 5v 16mHz)
Народ еще вопрос возник!
Чем отличаются Bootloader...ы для UNO(optiboot_atmega328.hex) и Mini(pro)(optiboot_atmega328-Mini.hex), сравнил их в bin виде, они полностью разные, но в работе разницы между ними не вижу?
Народ еще вопрос возник!
Чем отличаются Bootloader...ы для UNO(optiboot_atmega328.hex) и Mini(pro)(optiboot_atmega328-Mini.hex), сравнил их в bin виде, они полностью разные, но в работе разницы между ними не вижу?
тож присоединяюсь к вопросу. ведь скетчи не зальются пока плату правильно не выберешь.
может быть это пережиток дип и планара? для про мини разрешено использовать А6 А7 ? Хотя есть дешевые УНО, там тож атмега328 в планарном корпусе стоит, и как в про мини выведены А6 и А7.
и как в про мини выведены А6 и А7.
Я пробовал шить bootloader optiboot_atmega328-Mini.hex на UNO китайскую, вроде все работает, и на Pro Mini bootloader optiboot_atmega328.hex, тоже работает, но вот A6 и A7 не проверял, не используются они у меня!
п.с. Еще для инфы, может коммуто будет интерестна, у меня китайская UNO...а http://ru.aliexpress.com/item/high-quality-UNO-R3-MEGA328P-CH340-CH340G-for-Arduino-UNO-R3-USB-CABLE/32272110284.html?adminSeq=206203646&shopNumber=837425 так вот где-то ранее в мануалах я читал что для настоящей итальянской UNO...ы в фъюзах выстален Бровн-детектор на 4.3в, а на моей 2.7в...
ХА, вот я и нашел секрет, в чем мы друг друга не поняли!
поделись со мной этим секретом.
Чего же вы молчите что ...
потому, что я в 25/10/2015 - 14:06 отсутсвую на форуме.
Вернее, почему в профильном файле boards.txt, для UNO указано не правильное значение(promini.bootloader.lock_bits=0x0F) лакирования чипа? Вот это меня и запутало!
потому, что это команда лока загрузочной области контроллера
читай внимательно bootloader.lock_bits - что по твоему должна выполнять эта команда?
общий лок контроллера или загрузчика?
Посмотрел лог AVRdube, действительно он в самом конце прошивает значение для лакирования чипа,
возможно как-то иначе?
только вот если зашить 0х0F то не чего не за лакируется,
лочится загрузочная область для защиты загрузчика от тебя.
а вот 0х0С (получается 0хСС) все как надо, чип получается лакированным!
полный лок чипа 0хС0, а не 0х0С
п.с. Все мой вопрос снимается с повестки дня, все, оказывается, шьется, но бракописатели ARDUINO...ы не те значения в профиле указали!
я же говорил, что ты - Дъартаньян.
дубль
потому, что это команда лока загрузочной области контроллера
читай внимательно bootloader.lock_bits - что по твоему должна выполнять эта команда?
общий лок контроллера или загрузчика?
возможно как-то иначе?
Ну я же вам писал ранее с 328 мегой в первые работаю, а с теме что имел дело ранее, у них нет загрузочной области, вот от туда и ноги не правильные...
полный лок чипа 0хС0, а не 0х0С
RE: Проверю
Вот это уже конструктивная помощь в разжовывании пошла, с 0x0F пасибочки, как-то сразу и не дошло, уперся что чип должен полность локироваться...
Вот это уже конструктивная помощь в разжовывании пошла, с 0x0F пасибочки, как-то сразу и не дошло, уперся что чип должен полность локироваться...
почитай эту статью http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR109.htm
то, что ты чуть иначе залочил МК, не значит, что пейсатели дуино ошиблись.
почитай эту статью http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR109.htm
Вот это позновательно.