По ICSP записывается с пятого раза

std
Offline
Зарегистрирован: 05.01.2012

Ошибка всегда "yikes! invalid device signature. double check connections or use -F to override".

Длина проводов 7 см. Скетч ArduinoISP записан в меге8, подключаю к меге328 и пишу. Количество раз, которое надо повторить попытку, разное. Количество раз меньше при попытке записать загрузчик (с 2-3 раза обычно пишется). Прошиваемая мега328 имеет свой собственный кварц и т. п.

Резистора 100 ом от плюса к сбросу ведущей (меги8) нет, поможет ли он? Имхо, если бы дело было в нём, вообще бы не показывалось никаких ошибок, либо в духе "not in resp", но не про сигнатуру.

В чём может быть проблема?

Клапауций
Offline
Зарегистрирован: 10.02.2013

Во всяком может быть - питание шумит, провода по три метра и на соплях, просто плохой программатор ArduinoISP или, наоборот, очень хороший.

К примеру - у меня atmega2313 программатором usbasp на универсальной панели таким же образом себя ведёт, в отличии от attiny2313, которая шьётся влёт.

К чему веду - если программируемый МК слегка тупит с переводом в режим программирования, то программатор должен дождаться ответа, а не сбрасывать подключение.

Так ведёт себя AVR-Doper, который шьёт всё и влюбых условиях, но... кааакой же он меедлеенный.

зы

так, мысли из личного опыта.

std
Offline
Зарегистрирован: 05.01.2012

помог электролит 10 мкФ на сбросе ведущей атмеги

std
Offline
Зарегистрирован: 05.01.2012

Народ, какие ещё могут быть факторы?

Провода проверяются самым тщательнейшим образом, провода SPI 5 см, питание 8 см, от плюса на сброс ведущей дуины (со скетчем ArduinoISP) резистор 100 Ом, туда же от минуса кондер 10 мкФ. Конденсаторы кварца и вообще всё, что находится близко к атмеге прочищается от канифоли сразу же, чуть ли не купается в ацетоне. Всё равно, несмотря на все меры, идут бессистемные тупняки, шьется только когда ей понравится и возникнет особое настроение. Кнопку можно жать и 5 раз, и 10, и 30. Провода можно шевелить, можно не шевелить, не влияет как будто вообще абсолютно. Единственное что не пробовалось так это стучание на бубне, ритуальные жертвоприношения и присыпания толчеными костями летучей мыши.

Что может быть? Молиться на кнопку чтобы наконец прошилось - реально одолевает, спустя минуты полторы приступ бешенства практически неизбежен.

Клапауций
Offline
Зарегистрирован: 10.02.2013

std пишет:

Что может быть? Молиться на кнопку чтобы наконец прошилось - реально одолевает, спустя минуты полторы приступ бешенства практически неизбежен.

Что угодно может быть - напряжение питания прошиваемого МК ниже 5V, битый кварц, битые конденсаторы на кварце(при нормальном раскладе - нахрен не нужны, туда же(в пень) электролит большой ёмкости на сбросе - зачем он там нужен?), плата пропитана электролитом(отравлен текстолит при производстве/травлении), плохие контакты.

Что делать - прекращать жрать кактус(ArduinoISP), подключить программатор созданный для программирования а не для поиграться и проверить на аналогичные глюки.

*и, электрическую схему всега давайте - где-то там неправильно.

std
Offline
Зарегистрирован: 05.01.2012

Прежде всего, какой? и что ему давать.

Рыться в каталоге TEMP в поисках .hex файла как-то неинтересно. Плюс: покидая среду и указывая параметры avrdude в командной строке, имеем неиллюзорную возможноть попутать фьюзы и потом хрен восстановишь. Я так уже прошил bitbang'ом. Нафиг-нафиг. Должен же быть способ довести до ума этот программер, люди же его придумали. Более вероятно, что придумали для работы, а не для геморроя. Это как с Radiant (редактор уровней такой, для Quake, Doom и т. п.).

Напряжение в пределах 4.98-5.03. короче, от USB. чем измерить сопротивление текстолита - вообще никаких идей нет. Остаётся надеяться, что хотя-бы десятки мегаом.

Не указал пару моментов.

Программатор сделан на Atmega8. Имеет ли смысл попробовать с 328?

Провода втыкаются в дырки на Arduino (т. о. на прошиваемой плате штыри - на них одевается кабель с дырками, на другом конце два ряда штырей - 10..13 и питание с Reset - те штыри уже втыкаются в Arduino). Имеет ли смысл припаять насмерть?

Ну и как выше писалось, в 98% случаев ошибка Invalid device signature. Ошибка через время становится вероятнее. То есть, только что собранная плата c 99% вероятностью прошьется сразу. Потом может тупить чаще, потом может долго быть нормально (вплоть до 20 раз подряд перешилось, и ошибок не было вообще). Хотя, в общем и целом, никакой закономерности нет.

Кварцы и меги покупаются в таобао. Думаю, если бы был какой-то брак, не работало бы вообще. Меги доставляются в заводской упаковке - в пластмассках с квадратными ячейками. Пластмасски намного тяжелее пластика ABS, трудно режется, почти не ломается, больше напоминает керамику.

Клапауций
Offline
Зарегистрирован: 10.02.2013

std пишет:

Прежде всего, какой? и что ему давать.

Ну, какой - такой http://www.fischl.de/usbasp/

Скачать http://www.fischl.de/usbasp/usbasp.2011-05-28.tar.gz

распаковать

прочитать файлег Readme.txt в частности

USE PRECOMPILED VERSION
 
Firmware:
Flash "bin/firmware/usbasp.atmega88.xxxx-xx-xx.hex" or
"bin/firmware/usbasp.atmega8.xxxx-xx-xx.hex" to the used controller with a
working programmer (e.g. with avrdude, uisp, ...). Set jumper J2 to activate
USBasp firmware update function.
You have to change the fuse bits for external crystal (see "make fuses").
# TARGET=atmega8    HFUSE=0xc9  LFUSE=0xef
# TARGET=atmega48   HFUSE=0xdd  LFUSE=0xff
# TARGET=atmega88   HFUSE=0xdd  LFUSE=0xff
 
посмотреть USBasp_schematics.pdf - спаять на макетке аналогичное.
Всё.
МК у вас имеется, если нет стабилитронов, то можно сделать финт ушами, подключив устройство в USB-хаб версии 1.1 - будет работать.
 

 

Клапауций
Offline
Зарегистрирован: 10.02.2013

std пишет:
Рыться в каталоге TEMP в поисках .hex файла как-то неинтересно. Плюс: покидая среду и указывая параметры avrdude в командной строке, имеем неиллюзорную возможноть попутать фьюзы и потом хрен восстановишь.

Пропустил странное.

А, как вы прошиваете фьюзы из Ардуино ИДЕ?

std
Offline
Зарегистрирован: 05.01.2012

Клапауций, командой Tools -> Burn bootloader  (потом поверх загрузчика пишется нужный скетч, из File -> Upload using programmer)

UPD. мегу8 перешил на программу usbasp'а, завтра диоды на usb куплю, соберу и отпишу как результаты.

Шить можно из среды Arduino, только надо установить драйвер, правильно я понимаю? (тоесть он тоже будет видеться в системе как com порт)

Клапауций
Offline
Зарегистрирован: 10.02.2013

std пишет:

Клапауций, командой Tools -> Burn bootloader  (потом поверх загрузчика пишется нужный скетч, из File -> Upload using programmer)

Это странный способ прошивки фьюзов.

Обычно делается так 

avrdude -p atmega8 -c arduino -U hfuse:w:0xc9:m -U lfuse:w:0xef:m

std пишет:
UPD. мегу8 перешил на программу usbasp'а, завтра диоды на usb куплю, соберу и отпишу как результаты.

перепроверьте фьюзы - должно быть HFUSE=0xc9  LFUSE=0xef

не диоды - стабилитроны

std пишет:
Шить можно из среды Arduino, только надо установить драйвер, правильно я понимаю? (тоесть он тоже будет видеться в системе как com порт)

В списке поддерживаемых программаторов Arduino IDE USBasp присутсвует.

драйвер в папке libusb_0.1.12.1 из скаченного пакета. система спросит, где дрова - ткнёте её в папку libusb_0.1.12.1

в системе будет видеться как USBasp

 

std
Offline
Зарегистрирован: 05.01.2012

Надо же, оно работает. но блин!

При начале записи гаснет Led1 (led2 вообще ни разу не видел чтобы светился). Стабильн ошибки "control message failed", "could not find device USBasp". Второй раз перешить невозможно, нужно выдернуть из usb и снова воткнуть. Но это не даёт никаких гарантий на то что запишется. За 7 часов мне удалось 1 раз залить загрузчик и 4 раза blink, что можно списать на везение. По сравнению с ArduinoISP надёжность ниже в разы.

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

Клапауций
Offline
Зарегистрирован: 10.02.2013

std пишет:
При начале записи гаснет Led1 (led2 вообще ни разу не видел чтобы светился).

переверните светодиоды

std пишет:
Стабильн ошибки "control message failed", "could not find device USBasp". Второй раз перешить невозможно, нужно выдернуть из usb и снова воткнуть.

ёмкость 10 микрофарад так и висит на ресете?

если хватаете плату руками, на соплях всё висит - может и отвалиться устройство от USB

std пишет:
Но это не даёт никаких гарантий на то что запишется. За 7 часов мне удалось 1 раз залить загрузчик и 4 раза blink, что можно списать на везение.

запись скетча длится несколько секунд - за 7 часов можно выполнить мировой план суточного производства дуино.

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 "D:\Program Files mini\arduino-1.0.5\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : usbasp
avrdude: seen device from vendor ->www.fischl.de<-
avrdude: seen product ->USBasp<-
         AVR Part                      : ATtiny2313
         Chip Erase delay              : 9000 us
         PAGEL                         : PD4
         BS2                           : PD6
         RESET disposition             : possible i/o
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65     6     4    0 no        128    4      0  4000  4500 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash         65     6    32    0 yes      2048   32     64  4500  4500 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration    0     0     0    0 no          2    0      0     0     0 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e910a
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: auto set sck period (because given equals null)
avrdude: reading input file "C:\temp\build4603437206948030263.tmp\sketch_sep09b.cpp.hex"
avrdude: writing flash (1684 bytes):

Writing | ################################################## | 100% 1.33s

avrdude: 1684 bytes of flash written
avrdude: verifying flash memory against C:\temp\build4603437206948030263.tmp\sketch_sep09b.cpp.hex:
avrdude: load data flash data from input file C:\temp\build4603437206948030263.tmp\sketch_sep09b.cpp.hex:
avrdude: input file C:\temp\build4603437206948030263.tmp\sketch_sep09b.cpp.hex contains 1684 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.64s

avrdude: verifying ...
avrdude: 1684 bytes of flash verified

avrdude done.  Thank you.

std пишет:
По сравнению с ArduinoISP надёжность ниже в разы.

с ArduinoISP у вас те же яйца - вид в профиль

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

не факт

std
Offline
Зарегистрирован: 05.01.2012

Ну не знаю.. собрано по схеме (только нет джампера self programming), руками за плату не хватаюсь, длина usb провода 40 см, на isp разъём сразу в плату. Программатор работает, но далеко ему до идеала... мож собрал криво, короче за 15 юаней можно и купить. Собрать этот обошлось в 100 руб., то есть дороже.

В общем и целом - пишет, но глюки есть в двух случаях: если попытаться сразу после подключения шить (вероятно, ему нужно секунд 30 чтобы захотеть работать), и если попытаться перешить ещё раз, не отключая перед этим от usb.

Клапауций
Offline
Зарегистрирован: 10.02.2013

std пишет:

В общем и целом - пишет, но глюки есть в двух случаях: если попытаться сразу после подключения шить (вероятно, ему нужно секунд 30 чтобы захотеть работать), и если попытаться перешить ещё раз, не отключая перед этим от usb.

не выдумывайте странного