Проблема с программированием ATtiny85: Error - avrdude: Yikes! Invalid device signature

Я пытаюсь запрограммировать чип Attiny85, используя Arduino Uno в качестве ISP, следуя этим двум руководствам: Инструкции: Программирование ATtiny с помощью Arduino и Программирование ATtiny с помощью Arduino 1.6 (или 1.0), но каждый раз, когда я пытаюсь загрузить скетч, я получаю это сообщение об ошибке:

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

Я пробовал разные платы Arduino/изменение порта и разные чипы ATtiny, но все результаты были одинаковыми. Я также несколько раз проверял проводку, и она кажется правильной.

Это полное сообщение об ошибке (в подробном режиме):

     avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
     Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
     Copyright (c) 2007-2009 Joerg Wunsch

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

     Using Port                    : COM7
     Using Programmer              : stk500v1
     Overriding Baud Rate          : 19200
     AVR Part                      : ATtiny85
     Chip Erase delay              : 400000 us
     PAGEL                         : P00
     BS2                           : P00
     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    12     4    0 no        512    4      0  4000  4500 0xff 0xff
       flash         65     6    32    0 yes      8192   64    128 30000 30000 0xff 0xff
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
       lock           0     0     0    0 no          1    0      0  9000  9000 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
       calibration    0     0     0    0 no          2    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.05s

     avrdude: Device signature = 0x000000 (retrying)

     Reading | ################################################## | 100% 0.05s

     avrdude: Device signature = 0x000000 (retrying)

     Reading | ################################################## | 100% 0.05s

     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.

, 👍1

Обсуждение

Проголосовали против, потому что вы перестали отвечать на вопросы человека, пытающегося вам помочь, что сделало невозможным ответ на этот вопрос., @per1234

Подсказка: начните с проверки «Arduino Uno в качестве интернет-провайдера». Этот вопрос предполагает, что интернет-провайдер работает правильно., @Mikael Patel

@MikaelPatel - я обнаружил, что если поставщик услуг Интернета установлен неправильно, то ошибка не «Ура!», а либо «Не удалось найти ошибку устройства USBtiny», либо «avrdude: stk500_recv(): программатор не отвечает»., @Greenonline


2 ответа


1

Попробуйте подключить контакт RESET Attiny85 к GND за секунду до того, как вы нажмете «программировать».

По моему опыту, Arduino не всегда отправляет сигнал RESET, когда должен (или на выводе, который, по вашему мнению, будет отправлен).

В этих случаях ручной сброс Attiny путем подключения контакта RESET к земле делает его программируемым.

Вы можете поддерживать низкий уровень RESET в течение всего процесса программирования, но если вы будете поддерживать низкий уровень в течение многих минут перед программированием микросхемы, это может не всегда работать. В таких случаях установите RESET на некоторое время в высокий уровень, а затем снова установите его в низкий уровень, и Attiny должен быть пригоден для следующего раунда программирования.

И, конечно же, если вы хотите, чтобы Attiny начал делать то, на что вы его запрограммировали, вам нужно снова установить высокий уровень RESET.

,

Я попробовал это и получил: avrdude: stk500_recv(): программист не отвечает какие-либо предложения?, @Voly

Добавили ли вы конденсатор или подтягивающий резистор, чтобы предотвратить самоперезагрузку Arduino при попытке перезагрузки Attiny?, @Dampmaskin

Да, есть, 10 мкФ подключено между GND и RES., @Voly

Единственная повторяющаяся проблема, с которой я столкнулся, не дала мне выполнить двойную и тройную проверку... * соединений, * и не забыть загрузить скетч «Arduino as ISP» в Arduino, * и выбрать плату, * порт, и * «ArduinoISP» в Arduino IDE... приходилось выполнять сброс вручную. Если ничего из этого не помогло, то мне жаль признавать, что у меня закончились идеи. Однако я несколько раз обманывался, забывая переключить программатор между AVRISP mkII и ArduinoISP в нужное время., @Dampmaskin

@Voly: Вы пытаетесь запрограммировать Attiny в схеме? Другими словами, есть ли другие компоненты, подключенные к контактам Attiny, или это только Arduino Uno?, @Dampmaskin

@Voly, еще один вопрос: вы «сожгли загрузчик» на Attiny85? На самом деле это не сжигает загрузчик, но устанавливает предохранители. Эта операция успешна или тоже не удалась?, @Dampmaskin


-1

Эта ошибка (в частности, 0x000000) обычно, но не всегда, означает, что в ATtiny установлены фьюзы на внешнее колебание, но нет работающего генератора :

avrdude: Device signature = 0x000000

Возможно, вам потребуется добавить внешний генератор, то есть кварцевый резонатор 16 МГц, и пару керамических конденсаторов емкостью 22 пФ:

Внешний кварцевый генератор

Однако, как показывает этот калькулятор предохранителей Engbedded Atmel AVR®, существует ряд вариантов, которые можно задать:

Выбор генератора ATtiny85

Поэтому вместо кристалла вам может понадобиться внешний тактовый генератор:

Внешний тактовый сигнал

Эти схемы взяты с сайта Что такое схема? делить один кристалл с двумя микро?

,