Предохранители ATTiny84 считываются как 0

Я программировал свой ATTiny84, когда он случайно перестал программироваться. К нему подключен внешний кристалл с частотой 32768 Гц, и я использую свой Arduino UNO со скетчем ArduinoISP для его программирования. Следующая команда работала хотя бы один раз раньше, но больше не работает:

C:\Users\Anubhav\Documents\ArduinoData\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude -CC:\Users\Anubhav\Documents\ArduinoData\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf -v -pattiny84 -cstk500v1 -PCOM3 -b19200 -Uflash:w:C:\Users\Anubhav\AppData\Local\Temp\arduino_build_256583/watch.ino.hex:i -U lfuse:w:0xe6:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m

Я пробовал использовать -B 5, но это тоже не помогло. Проблема, похоже, в том, что он всегда считывает предохранители как 0x000000. Это мой вывод:

avrdude.exe: 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:\Users\Anubhav\Documents\ArduinoData\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf"

             Using Port                    : COM3
             Using Programmer              : stk500v1
             Overriding Baud Rate          : 19200
             AVR Part                      : ATtiny84
             Chip Erase delay              : 4500 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     6     4    0 no        512    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      8192   64    128  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          1    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.exe: PAGEL and BS2 signals not defined in the configuration file for part ATtiny84, using dummy values
avrdude.exe: AVR device initialized and ready to accept instructions

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

avrdude.exe: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.04s

avrdude.exe: Device signature = 0x000000 (retrying)

Reading | ################################################## | 100% 0.04s

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


avrdude.exe done.  Thank you.

Как исправить ошибку Ой! Недопустимая подпись устройства. ошибка и почему она возникает?

, 👍0

Обсуждение

ты не задал вопрос, @jsotola

Работает ли MCU на частоте 32 кГц? Тогда тактовая частота ISP должна быть меньше 1/4 тактовой частоты MCU. Поэтому вы должны попытаться изменить значение по умолчанию #define SPI_CLOCK (1000000/6) на значение, подобное 5000, в скетче ArduinoISP., @KIIV

Не является ли скорость 19200 бод слишком быстрой для системных часов 32768?, @the busybee

@thebusybee — это последовательная скорость между компьютером и ArduinoISP (UNO). Тактовая частота ISP жестко запрограммирована внутри скетча ArduinoISP (насколько я знаю), @KIIV

А, спасибо за разъяснения!, @the busybee

@KIIV, это исправило, спасибо! Если вы отправите в качестве ответа, я могу пометить его как принятый., @Anubhav


1 ответ


Лучший ответ:

3

Как уже упоминалось, кварцевый резонатор 32 кГц используется в качестве источника тактового сигнала, а также, по крайней мере, первое программирование работало.

Скетч ArduinoISP имеет жестко запрограммированную тактовую частоту ISP, а тактовая частота ISP должна составлять не более 1/4 скорости MCU. Таким образом, скетч ArduinoISP SPI_CLOCK должен быть установлен на гораздо более низкое значение, чем 166 кГц по умолчанию, что слишком быстро для тактовой частоты MCU 32 кГц. Безопасное значение составляет около 5000 (5 кГц)

#define SPI_CLOCK 5000   // (1000000/6)

Есть также настройки baud_rate для avrdude, но это просто скорость связи между компьютером и программатором ArduinoISP, и ее изменение не изменит SPI_CLOCK (это часы ISP).

,