Внезапно "avrdude: Device signature = 0x000000" с ArduinoISP. Мой чип умер?

atmega32u4 icsp arduinoisp

У меня есть несколько плат с atmega32u4, которые раньше работали отлично. Я использую неофициальную плату UNO для программирования через ICSP. Для питания UC я использую две литиевые батареи и понижающий преобразователь, чтобы понизить его до 5 В.

Это началось, когда я попытался загрузить код через ISCP, когда целевой чип не был включен по ошибке.

Это мое сообщение об ошибке:

Arduino: 1.8.5 (Windows 10), Placa:"Arduino Leonardo"

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

     Using Port                    : COM4
     Using Programmer              : stk500v1
     Overriding Baud Rate          : 19200
     AVR Part                      : ATmega32U4
     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    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
       flash         65     6   128    0 yes     32768  128    256  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.

Что я уже пробовал:

  • Другой программатор (другая плата Uno);
  • Загрузка на нужную плату Леонардо через ICSP сработала;
  • Загрузка на другую мою плату через ICSP сработала;
  • Работа с портативной версией Arduino;
  • Проверьте, подается ли на чип 5 В;
  • Заменил провода и проверил соединения;
  • Чип не нагревается;

Я занимаюсь этим два дня подряд, буду признателен за любую помощь.

, 👍2

Обсуждение

Взгляните на этот вопрос и ответ: Я замуровал свой Arduino Uno? Проблемы с загрузкой на плату, @sa_leinad


1 ответ


3

В основном эта ошибка возникает из-за проблем с подключением/питанием (как уже упоминалось в вашем выводе).

  • Проверьте соединения, особенно питание и заземление, также проверьте сопротивление между Vcc и GND вашего целевого MCU. (Если меньше 100 Ом, что означает, что что-то не так в вашей схеме или ваш MCU уже жареный.)

  • Проверьте, действительно ли ваш MCU получает достаточную мощность (напряжение и ток), а также проверьте, не получает ли он избыточного напряжения.

  • Убедитесь, что между устройствами выполнено надлежащее "общее заземление".

  • Если вы уверены, что указанные выше пункты проверены, но ошибка по-прежнему возникает, попробуйте переопределить флаг -F (avrdude через оболочку/командную строку), и если вы по-прежнему не можете загрузить, попробуйте вручную изменить адрес (не рекомендуется) в вашей библиотеке Arduino, чтобы он совпадал с полученной подписью.

  • Наконец, попробуйте использовать прямой USB-интерфейс с atmega32u4, так как atmega32u4 поддерживает его, и снова загрузите загрузчик через старое программное обеспечение под названием Переверните после этого повторите попытку.

После всего этого, если вы не можете выполнить загрузку, возможно, ваш MCU вышел из строя, и это может быть связано с незамеченным неправильным подключением питания, коротким замыканием или непреднамеренной перенастройкой предохранителя (крайне маловероятно).

,