Arduino mega 2560 не прошивается загрузчик

Тема в разделе "Arduino & Shields", создана пользователем Zai4ishe, 6 янв 2020.

  1. Zai4ishe

    Zai4ishe Нуб

    Всем добрый день!
    История следующая:
    Коротнул 12В на какую-то из дорожек на ардуино мега, в итоге сгорела плата, на подключение к компу никак не реагировала. Поменял стабилизатор питания и чип USB-UART, USB-UART прошил, плата начала определяться как Ардуино мега, висящая на ком-порту. Однако прошивка скетчей в контроллер не шла. Заказал в Китае МС Atmega 2560, поменял. Но скетчи не грузятся, и постоянно горят светодиоды L и ON.
    Как я понимаю, надо зашить в микруху загрузчик, и вот тут вылезает проблема.
    При попытке прошить загрузчик с помощью второй Меги в качестве программатора вылезает следующее:

    C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega2560 -cstk500v1 -PCOM3 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xD8:m -Ulfuse:w:0xFF:m

    avrdude: Version 6.3-20190619
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2014 Joerg Wunsch

    System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

    Using Port : COM3
    Using Programmer : stk500v1
    Overriding Baud Rate : 19200
    AVR Part : ATmega2560
    Chip Erase delay : 9000 us
    PAGEL : PD7
    BS2 : PA0
    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 10 8 0 no 4096 8 0 9000 9000 0x00 0x00
    flash 65 10 256 0 yes 262144 256 1024 4500 4500 0x00 0x00
    lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
    hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
    efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
    lock 0 0 0 0 no 1 0 0 9000 9000 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 : STK500
    Description : Atmel STK500 Version 1.x firmware
    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.02s

    avrdude: Device signature = 0x000000 (retrying)

    Reading | ################################################## | 100% 0.02s

    avrdude: Device signature = 0x000000 (retrying)

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

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


    avrdude done. Thank you.

    Фотки с подключением прикладываю. Пробовал уже и частоту понизить (менял #define SPI_CLOCK (1000000/6) в скетче на #define SPI_CLOCK (128000/6) ), не помогает. Куда копать, подскажите?
    Знаю, что проще новую Мегу было купить, но уже интересно добить вопрос)
     

    Вложения:

  2. parovoZZ

    parovoZZ Гуру

    Ну он же пишет
    А как ты из меги сделал
    Поделись! Я тоже хочу такой!
     
  3. Zai4ishe

    Zai4ishe Нуб

    Нет, я понял, что коряво считывается сигнатура, вопрос, это микруха atmega2560 корявая приехала из Китая или у меня руки кривые...)

    Я просто в мегу залил скетч ArduinoISP и соединил выводы ICSP обоих ардуин
     
  4. parovoZZ

    parovoZZ Гуру

    Там reset еще надо подтянуть и не перепутать MISO и MOSI. Ну т.е. дашик открыть и посмотреть. Ну и частоту понизить на минимальную. Оно с китайского завода вообще неизвестно от чего тактируется и с каким делителем.
     
  5. Zai4ishe

    Zai4ishe Нуб

    Подтянуть через резистор к +5? Даташиты уже смотрел...ради интереса можно, конечно, поменять мисо с моси местами..
     
  6. alp69

    alp69 Форумчанин

     
  7. parovoZZ

    parovoZZ Гуру

    Вообще, я себе сделал программатор на основе atmega32u4 AVRISP mkII (есть в библиотеке LUFA). Если он МК не видит, значит МК в помойку.
     
  8. Zai4ishe

    Zai4ishe Нуб

    Попробовал запустить прошивку из командной строки с параметром -F...Результат приведен ниже. Видимо, надо и правда попробовать сторонним загрузчиком...

    avrdude: Version 6.3-20190619
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2014 Joerg Wunsch

    System wide configuration file is "C:\avrdude.conf"

    Using Port : COM3
    Using Programmer : stk500v1
    Overriding Baud Rate : 19200
    AVR Part : ATmega2560
    Chip Erase delay : 9000 us
    PAGEL : PD7
    BS2 : PA0
    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 10 8 0 no 4096 8 0 9000 9000 0x00 0x00
    flash 65 10 256 0 yes 262144 256 1024 4500 4500 0x00 0x00
    lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
    hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
    efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
    lock 0 0 0 0 no 1 0 0 9000 9000 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 : STK500
    Description : Atmel STK500 Version 1.x firmware
    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.03s

    avrdude: Device signature = 0x000000 (retrying)

    Reading | ################################################## | 100% 0.03s

    avrdude: Device signature = 0x000000 (retrying)

    Reading | ################################################## | 100% 0.03s

    avrdude: Device signature = 0x000000
    avrdude: Yikes! Invalid device signature.
    avrdude: Expected signature for ATmega2560 is 1E 98 01
    avrdude: safemode: lfuse reads as 0
    avrdude: safemode: hfuse reads as 0
    avrdude: safemode: efuse reads as 0
    avrdude: erasing chip
    avrdude: reading input file "0x3F"
    avrdude: writing lock (1 bytes):

    Writing | | 0% 0.00s ***failed;
    Writing | ################################################## | 100% 0.10s

    avrdude: 1 bytes of lock written
    avrdude: verifying lock memory against 0x3F:
    avrdude: load data lock data from input file 0x3F:
    avrdude: input file 0x3F contains 1 bytes
    avrdude: reading on-chip lock data:

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

    avrdude: verifying ...
    avrdude: verification error, first mismatch at byte 0x0000
    0x00 != 0x3f
    avrdude: verification error; content mismatch

    avrdude: safemode: lfuse reads as 0
    avrdude: safemode: hfuse reads as 0
    avrdude: safemode: efuse reads as 0
    avrdude: safemode: Fuses OK (E:00, H:00, L:00)

    avrdude done. Thank you.
     
  9. Zai4ishe

    Zai4ishe Нуб

    alp69 - да, битрейт 19200, и что?)))
     
  10. parovoZZ

    parovoZZ Гуру

    А смысл? Если сигнатура не читается, значит есть явные проблемы. Надо подключать ЛА и смотреть, есть ли вообще ответ от МК.

    Программатор должен сперва утянуть вниз пин ресета прошиваемого МК, а затем пытаться установить связь с МК.
     
  11. b707

    b707 Гуру

    делать этого категорически не стоит НИ В КАКОМ СЛУЧАЕ. А в вашем по диагностике и так было совершенно очевидно, что это не поможет.
    То. что у вас читается сигнатура 0х0000 - говорит об отсуствии связи с контроллером. Причины - либо проблема с подключением, либо на МК нет питания. либо он уже мертвый...
     
  12. parovoZZ

    parovoZZ Гуру

    МК читается прекрасно от паразитного питания через ноги ICSP, но флеш, разумеется, не пишется)