Предохранители 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.
Как исправить ошибку Ой! Недопустимая подпись устройства.
ошибка и почему она возникает?
@Anubhav, 👍0
Обсуждение1 ответ
Лучший ответ:
Как уже упоминалось, кварцевый резонатор 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).
- avrdude ser_open() can't set com-state
- При использовании Arduino Uno в качестве ISP: "Yikes! Invalid device signature" - плохое соединение, неверную конфигурацию или неверную версию avrdude?
- Не удается снова загрузиться после смены платы
- avrdude: ошибка проверки, первое несоответствие в байте 0x0000 : 0x00 != 0x16 с использованием USBasp
- Arduino UNO для получения подписи чипа ATmega328P-PU
- Поддерживают ли чипы ATMega 328/2560 JTAG-программатор и аппаратный отладчик?
- Arduino не реагирует на macbook pro
- Программирование сервопривода на ATtiny85
ты не задал вопрос, @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