Ошибка подписи ATmega168PA-AU
- Войдите на сайт для отправки комментариев
Пнд, 22/04/2013 - 22:32
Доброго времени!
Хотел прошить 168-ю, но не ожиданно возникла проблема, при записи загрузчика Arduino ISP сообщает:
avrdude: Expected signature for ATMEGA168 is 1E 94 06
Double check chip, or use -F to override this check.
прошиваю через UNO.
Как исправить можно?
Дословный перевод этой ошибки "Дважды проверьте чип" - то есть дважды проверьте, что правильно выбрали МК, который шьете! А вы какую плату из списка плат вы выбираете когда прошиваете? А теперь подумайте какую надо выбрать...
Выбираю Arduino NG or older w/ ATmega168 и другие пробавал, все равно одно и то же
Тогда подробно по пунктам опишите что делаете:
1. Заливаю скейтч ArduinoISP в UNO;
2. Подтягиваю резистором 100 Ом RESET дуины UNO к +5V;
3. ........
......
9. Выбираю Arduino NG or older w/ ATmega168;
10. Нажимаю "Прошить загрузчик".
1. Заливаю скейтч ArduinoISP в UNO;
2. Подключаю 168-ю.
3. Резистор на ресет 1к
4. В Arduino IDE выбираю плату 168-ю, програматор Arduino as ISP
5. Жму загрузить загрузчик
И ошибка.
А другие МК пробовали шить? И мне кажется у резистора слишком большое сопротивление...
8 мегу, резистор то же был.. щяс попробую меньше поставить
Тогда скорее всего замена резистора не поможет если другой МК шьет с этим.
Не помогла.. подозреваю что этот МК UNOй не прошить(
Вот что нашел. Надо такой програматор.
Ничего не надо, вот что гугл говорит по этому поводу:
This error is bevause of arvdude in Arduino development environment (Arduino.app). arvdude in Arduino.app refers to /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf. There is m168 section (for ATmega 168) but there is not m168p section (for ATmega 168p) in this avrdude.conf.
Смысл в том что ATmega168 не есть ATmega168P и у них разные сигнатуры.
Решение:
В файле \arduino-1.0.3\hardware\arduino\boards.txt в строке diecimila.build.mcu=atmega168 добавляете
буковку p (пэ англ.), сохраняете файл, перезапускаете IDE.
И будет вам счастье.
И все же счастье не пришло.. как была эта ошибка так и есть..уф
Той же ошибки быть не должно... Вы точно там подправили? плату потом Arduino Diecimila or Duemilanove w/ ATmega168 выбрали? Может подправили у одной платы, а выбираете другую?
В настройках IDE есть галочка upload (загрузка) ,поставьте ее ,и при попытки загрузить загрузчик будет полная инфа, выложите сюда.
Как я и говорил... вы что то не там подправили... или не перезапустили IDE... строку видите:
avrdude.conf -v -v -v -v -patmega168 -cstk500v1...
а должно быть:
avrdude.conf -v -v -v -v -patmega168p -cstk500v1....
Через командную строку запустил и дописал "p"
avrdude.conf -v -v -v -v -patmega168p -cstk500v1....
Все заработал))))
Если бы сделали все строго как описано выше тоже бы все заработало... во всяком случае у меня через IDE буковка p есть.
Доброе время суток! Не дождался заказанные 2 Ардуины из китая, решил собрать руками (благо с паяльником дружу).
Прикупил в радиомагазине контроллер ATMEGA168PV-10PU, кварц и мелочевку. Собрал по схеме Arduino Diecimila, собрал параллельный програматор. И началося...
При попытки прошивы начал через IDE стал ругаться на сигнатуру, не найдя эту ветку форума, нашел как поменять в avrdude.conf сигнатуру.
Вот только не посмотрел что там есть нормальный ATMEGA168P и менял на ATMEGA168(подумав какая разница), начал лить загрузчик. Вывалилась еще ошибка readback_p1 и readback_p2, поменял на желаемое. И все получилось!!!
Потом разобравшись пришел к неутешительному выводу. Родной загрузчик льется нормально. При попытки залить Скетч ругается на сигнатуру, просмотрев лог загрузки выясняется что сигнатура изменилась не 0x1e 0x94 0x0b (как должно быть у 168Р) а 0x1e 0x94 0x06 (шесть) меняем сигнатуру в avrdude.con на новую и вуаля, скетч загрузился. Но при повторной попытке он опять ругается на недоступность МК.
Лекарство грустное: опять в avrdude.con к МК 168Р меняем на родную сигнатуру (0x0b), грузим загрузчик. Опять меняем сигнатуру на 0x06 (шесть) и грузим скетч...
Понимаю что при заливе загрузчика от 168 в 168Р что-то я нарушил, но вот в чем проблема и как вылечить не знаю.
Пы.Сы. Вопрос не кртичен т.к. как обойти проблему я знаю и на будущее подготолю скетч и впаяю в плату на вечно. Но переступать через трупы (нерешенные вопросы) это моветон.
Скачайте и распакуйте ArduinoIDE по новой, то есть воспользуйтесь нередактированной вами версией файла avrdude.conf. И опять же что у вас там за программатор... через что вы заливаете скейтчи... зачем вам вообще загрузчик ,если есть ISP программатор... нам остается только догадываться. Как тут - http://arduino.ru/forum/programmirovanie/chto-za-strannosti-proiskhodyat-s-atmega168pa-au#comment-30400 дочитайте ветку до конца.
Программатор у меня DAPA, брал от сюда http://robocraft.ru/blog/arduino/50.html
Скетчи грузил через адаптер на FT232RL (как в схеме на Diecimila)выбирал новый СОМ порт.
При попытке загрузить загрузчик выдает следующее
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0xf9 != 0x01
avrdude: verification error; content mismatch
avrdude done. Thank you.
Пришлось сделать в файле плат подобное
# ATmega168P.bootloader.extended_fuses=0xf9
ATmega168P.bootloader.extended_fuses=0x01
И все заработало. Спасибо за помощь, хотя взглянув на СЕБЯ со стороны очень похож на шамана с бубном :). "Я не волшебник, я только учусь. "(с)
Да и в вашей подсказке (в родном файле boards.txt) расширенные фьюзы предлагаются
diecimila.bootloader.extended_fuses=0x00
А мне помогли 0x01 видать на данном МК Atmega168PV-10PU такие должны быть... (Почитаю повнимательней про фьюзы).
Спасибо, вопрос снят.
Как через програматор ASP и командную прошить 168PA такую конфигурашку: LOW 0xa2 HIGH 0xdf EXTENDED 0xf9?
P.S. Через IDE скетчи загружаются. Мне надо включить CKOUT.
И сново я с Atmega168p. Припаял к плате подогнал исходник, собрался идти устанавливать на место долгой и счастливой работы. Чёрт меня дёрнул убедится в том, что тактируется от кварца 16,000 (просто не помну как в последний раз его прошивал) Вобщем контнольно прошил lov - FF high - D9. ВСЁ ((( Мк управляет ЖКИ от nokia1100. Получилось что то типа частота упала раз в 100. Отчистка экрана происходит секунд за 8. Теперь не код не загружает, не прошивается. Хотя раньше прошивал его тем же шаблоном.
При попытке прошивки выдаёт следующее:
а если "юзаю" -F как он советует:
Все соединения проверил от мк до программатора. Залочить вроде не мог.
Если не трудно подскажите в чём беда.
Если МК хоть как то работает, но не шьется по SPI, значит либо установили бит RSTDISBL, либо сбросили SPIEN. Установку бита RSTDISBL можно проверить нажатием на ресет, если не перезагрузится значит установлен.
Либо меняйте МК либо ищите параллельный/высоковольтный программатор.
Reset проверил сразу, работает, точнее перезагружается. SPI тоже был установлен. В коде есть одна задержка delay(250); если принебречь временем расчёта и присвоения значений переменным, эта задержка длится порядка 25 секунд.
сделай
avrdude -p atmega168p -c usbasp -U hfuse:r:hfuse.txt:h -U lfuse:r:lfuse.txt:h
и посмотри в файлах hfuse.txt lfuse.txt , что за фьюзы ты наваял
Текстовые файлы не создаются. Это что значит?
Текстовые файлы не создаются. Это что значит?
что говорит cmd? попробуй вручную имя контрроллера перенабери - я мог туда кириллицу воткнуть.
у меня создаются - должно быть так
То и значит - не создаются. Что avrdude при этом выдает?
Говорит тоже самое:
Поменять то можно было бы, ещё пара штук валяется, только у меня нет фена чтоб выпаять, да и вроде как не умер он, живой, скорее в состоянии комы или летаргического сна, когда пара ударов сердца в минуту. Не пойму вобще ничего, как частота могла уменьшится в 100 раз
SPI тоже был установлен.
А проверьте будет ли он работать если кварц выпаять.
Если будет работать, значит вы точно не верно прошили фьюзы. А значит и бит SPIEN скорее всего сбросили.
Надо прошить usbasp .... То есть сам программатор прошить. Хотя-бы через ЛПТ понипрогом...
http://www.fischl.de/usbasp/usbasp.2011-05-28.tar.gz
Надо прошить usbasp .... То есть сам программатор прошить. Хотя-бы через ЛПТ понипрогом...
http://www.fischl.de/usbasp/usbasp.2011-05-28.tar.gz
Зачем?
...нужно шото делать.
Значит поколдовал немного тут, докладываю. Программаторами (asp и arduino2560) вроде всё понятно и вобще не понятно. ASP читает другие контроллеры но загрузить какой либо скетч не получается, пишет что неверно определён контроллке. Дуина говорит тоже самое (выбирал правельно, раньше загружал без проблем). пробовал на трёх контроллерах. А моё детище на 168-м ведёт себя ещё интересней, чем ниже напряжение на на МК тем выше вероятность что он запустится(с кварцем) и выше в разы тактовкач частота. Сейчас почти сразу запускается и относительно шустро работает на 2,5 вольта. Попробую выпаять ещё раз кравц. т.к. и с ним не всегда запусукался.
awrdude: warning: cannot set sck period. please check for firmware update.
По русски это значит:
В тех usbasp, которые приходят из известной нам страны, его процессор, обычно МЕГА8, прошит программой, которая не поддерживает смену частоты сигнала SCK (serial clock) программатором.
И avrdude, естественно ругается что не может сменить его частоту.
А этот сигнал должен быть как минимум в 4 раза ниже чем Fcpu тактирования МК.
http://radiokot.ru/forum/viewtopic.php?f=20&t=49209
И это не та скорость 9600 о которой все знают, это клок SPI.
всё это похоже на фьюзы от внешнего генератора - попробуй отпаять кварц и подключить xtal2 USBasp'a к xtal1 больного процессора
http://www.qsl.net/pa3ckr/bascom%20and%20avr/avr%20clock/index.html
как-то так
или какой иной генератор сооруди.
Выпаял кварц, цуко работает без него, так же, самая стабильная работа на 2,5 Вольт. Клапауций, попробую ещё как ты советуешь.
Но разве на Asp пин для тактирования другого мк активен? Мне проще тактировать его тинькой 2313 или 168-ым(другим в Дип-е)
Может действительно програматор подправить как советуют?
Может действительно програматор подправить как советуют?
ты этим программатором шил фьюзы на этом контроллере успешно? - если "да", то зачем?
Но разве на Asp пин для тактирования другого мк активен? Мне проще тактировать его тинькой 2313 или 168-ым(другим в Дип-е)
что значит "активен" - контроллер аспа работает ведь?
тактируй от чего угодно, если удобней
Ну и на последок самое интересное. Тактирую подопытного(или больного) от другого МК. Прочитал фьюзы, и чё!!?? а фьюзы выставлены под кварц (Atmega168p low 0xff high 0xdf). По частоте пока сказать не могу, экранчик отпаял пока. Но в любом случаи читает фьюзы легко. Клапауций и сново есть результат по твоим советам. Я тебе с Саудовской Аравии магнитьк на холодильник привезу)))
Прошил под встроенный осцелятор..... пока на мази))
мммм бред. От внутреннего работает, прошиваю под кварц, работает только от внешнего МК.
ну, чего? - ты же шил low 0xff high 0xd9, а получилось low 0xff high 0xdf
пробуй снова прошить low 0xff high 0xd9 , припаять кварц или прошить те фьюзы, которые у тебя были изначально.
*тут ещё момент, надеюсь ты хекс перекомпиляешь в соответсвии с новой частотой.
UPD: ну, хорошо, что получилось, но что было - непонятно.
**себе магнитик привези - что я буду с ним делать, если я ксенофоб?
я и шью df, это под кварц от 8мгц. но от него потом не работает, только внешнее нактирование. А d9 такой конфигурации вобще нет.
>*тут ещё момент, надеюсь ты хекс перекомпиляешь в соответсвии с новой частотой.
тут немного не понял
мммм бред. От внутреннего работает, прошиваю под кварц, работает только от внешнего МК.
потому что не нужно фьюзы шить - чем шьёшь? покажи командную строку
должно быть так
avrdude -p atmega8 -c usbasp -U flash:w:primer.hex
>*тут ещё момент, надеюсь ты хекс перекомпиляешь в соответсвии с новой частотой.
тут немного не понял
в дуино компилишь под частоту 8 мегагерц, ставишь кварц на 16-ть - фигня выходит.
Всё, нашёл. Пинзец, кормой чуил, что баг в железе. Шил всё правельно- под внешний кварц. ФиЗня в том, что пин VCC & XTAL рядом. сейчас на солнечном свете разглядел между ними раз в пять тоньше волосинки перемычку. поэтому от кварца не работал. Паяю экранчик...
только не вьеду как так получилось когда первый раз прошил.. походу он работал от внутреннего...Значит не зря решил проверить
ясно - мы ега умучили.
Про магнитик всё в силе :))
была нано 328 -контролер убил поставил мегу 168р.
mega168p nano- boot загрузился светик на пин 13 моргает , а скетчи не грузятся. ???
пишит
http://avr.myluna.de/doku.php?id=en:unterstuetzte_controller
atmega168p 0x1E940B
atmega168v 0x1E9406
Я бы просто исправил......
atmega168p 0x1E940B
atmega168v 0x1E9406
Я бы просто исправил......
исправить-залить загрузчик-вернуть все как было до заливки и пользоваться.Про сигнатуры по форуму уже много раз было.