Проблема с прошивкой бутлоадера

Тема в разделе "Arduino & Shields", создана пользователем qiberry, 1 ноя 2018.

  1. qiberry

    qiberry Нуб

    Пытаюсь прошивать nano через mega 2560 по такой схеме:
    MEGA2560-NANO
    50-ICSP1
    5V-ICSP2
    52-ICSP3
    51-ICSP4
    10-ICSP5
    GND-ICSP6

    (Конденсатор между RESET и GND на 10 микрофарад внедрил)

    IDE выдает такую ошибку:
    avrdude: Yikes! Invalid device signature.
    Double check connections and try again, or use -F to override
    this check.
    Ошибка при записи загрузчика.

    Далее, попробовал зашить напрямую через avrdude, чтобы иметь возможность пропустить проверку ибо подключения ТОЧНО правильные, как мне казалось и кажется до сих пор. Сконструировал такую строку(Файл с прошивкой взял из интернетов): avrdude -C ./avrdude.conf -c avrisp -P COM3 -b 19200 -p m328P -U flash:w:"C:\Users\Nikita\Desktop\ATmegaBOOT_168_atmega328.hex":a -F

    В итоге, вроде как шьёт, но результата все равно нет. В чем может быть ошибка ошибка?
     
    Последнее редактирование: 2 ноя 2018
  2. Daniil

    Daniil Гуру

    Если я правильно понимаю, то без проверки дудка просто дергает ногами. То что у вас не совпадают сигнатуры не есть хорошо и надо решать проблему.
    К сожалению, мои попытки кончались тем, что я всё-таки путал miso/mosi или вид сверху/снизу разъёма, ну и на худой конец меня часто подводили контакты.
     
  3. AlexU

    AlexU Гуру

    В чём смысл сего действия?
    Что касается:
    не все поймут, что Вы этим хотели сказать.
    И Вы уверенны, что тот скетч, который загружаете в Мегу, использует 10-ю ногу для сброса программируемого контроллера?
     
  4. qiberry

    qiberry Нуб

    Руководствовался схемами с arduino.cc. Про кондюк они сами утверждают в тексте, но без него также не читает.
    Используется точно 10-я нога

    // Pin 10 is used to reset the target microcontroller.
    Все подключеня перепроверил. как логически, так и мультиметром
    +Полный вывод:

    Код (C++):

             System wide configuration file is "C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.15.0_x86__mdqgnx93n4wtt\hardware\tools\avr/etc/avrdude.conf"

             Using Port                    : COM3
             Using Programmer              : arduino
             Overriding Baud Rate          : 19200
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x7f
             AVR Part                      : ATmega328P
             Chip Erase delay              : 9000 us
             PAGEL                         : PD7
             BS2                           : PC2
             RESET disposition             : dedicated
             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    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
               flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
               lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
               calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
               signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

             Programmer Type : Arduino
             Description     : Arduino
             Hardware Version: 2
             Firmware Version: 1.18
             Topcard         : Unknown
             Vtarget         : 0.0 V
             Varef           : 0.0 V
             Oscillator      : Off
             SCK period      : 0.1 us

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.01s

    avrdude: Device signature = 0xffffff (probably .avr8x_mega) (retrying)

    Reading | ################################################## | 100% 0.01s

    avrdude: Device signature = 0xffffff (probably .avr8x_mega) (retrying)

    Ошибка при записи загрузчика.
    Reading | ################################################## | 100% 0.00s

    avrdude: Device signature = 0xffffff (probably .avr8x_mega)
    avrdude: Yikes!  Invalid device signature.
             Double check connections and try again, or use -F to override
             this check.


    avrdude done.  Thank you.
    [​IMG]
    [​IMG]
     
    Последнее редактирование: 2 ноя 2018
  5. AlexU

    AlexU Гуру

    Вы в Мегу заливаете скетч, который скорее всего Arduino ISP, там в самом начале написано какой порт используется для сброса программируемого контроллера (правда, не совсем просто выяснить это). Хотя скетч на то он и скетч, что каждый может поправить под свои нужды. Поэтому смотрите исходник скетча, что и как он использует (какие выводы/пины) для программирования 'TARGET'.

    PS:
    хватит хватать из интернетов что ни поподя -- есть же официальные сайты, где всё необходимое предоставляется.
     
  6. qiberry

    qiberry Нуб

    Полистал скетч, использовал вариант со старым подключением:

    Код (C++):
    #define USE_OLD_STYLE_WIRING

    #ifdef USE_OLD_STYLE_WIRING

    #define PIN_MOSI    11
    #define PIN_MISO    12
    #define PIN_SCK        13

    #endif
     
    И это тоже не работает, в общем я так понимаю какие я порты бы не ставил, оно все равно не читает, может быть использовать хардвейрный tcsp, судя по коду он должен работать
     
  7. b707

    b707 Гуру

    Qiberry - я вам писал еще в прошлой теме, что опция -F вам не поможет? - не поверили.
    Найдите какого-нибудь знакомого, который немного больше разбирается - и пусть он посмотрит, что вы такое делаете. Перешить загрузчик - дело одной минуты, а вы сколько уже возитесь.
    Возможно, вы просто уже убили плату и никакая прошивка ей не поможет. Я бы для проверки взял бы новую, заведомо живую Нано - и попытался перешить. Но Вам это боюсь и советовать - еще одну Нану и убьете и только.
     
  8. qiberry

    qiberry Нуб

    Да я сам удивляюсь, как-то раньше не приходилось перешивать платы, если помирали, то полностью, а эта продолжает определяться. Видимо, придется раскошелиться на новую нано, ибо мега - единственная заведомо живая плата.
     
  9. parovoZZ

    parovoZZ Гуру

    Стопудово скорости не те. Надо очень внематочно изучить прошивку ас исп.
     
  10. parovoZZ

    parovoZZ Гуру

    Не умеешь готовить программатор - купи его.
     
  11. qiberry

    qiberry Нуб

    Вы меня недооцениваете))). Спасибо b707 за подсказку включить мозги. Сегодня купил программатор и думал, что с ним проблема, пытался его перепрошить, короче еще одна головная боль. Как оказалось, мозги маги программатором перешиваются с первого тычка, а нанка встает колом.
    Таким образом, я выяснил, что пинал мертвую плату и сбея три чертовых дня своей жизни, спасибо за внимание.
    Огромное спасибо за того, что напомнили не быть приматом.