Digispark - Загрузчик застрял
У меня есть digispark, который я хочу перепрограммировать, запаянный в схему. Я сжег прошивку по умолчанию t85 micronucleus.
Это команда, которую я использовал:
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude" -C "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -pattiny85 -cstk500v1 -PCOM4 -b19200 -Uflash:w:D:\Documents\micronucleus-master\firmware\releases\t85_default.hex:i
avrdude: Version 6.3, compiled on Sep 12 2016 at 17:24:16
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 : COM4
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 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: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x1e930b (probably t85)
avrdude: safemode: hfuse reads as D7
avrdude: safemode: efuse reads as FF
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "D:\Documents\micronucleus-master\firmware\releases\t85_default.hex"
avrdude: writing flash (8116 bytes):
Writing | ################################################## | 100% 0.07s
avrdude: 8116 bytes of flash written
avrdude: verifying flash memory against D:\Documents\micronucleus-master\firmware\releases\t85_default.hex:
avrdude: load data flash data from input file D:\Documents\micronucleus-master\firmware\releases\t85_default.hex:
avrdude: input file D:\Documents\micronucleus-master\firmware\releases\t85_default.hex contains 8116 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.07s
avrdude: verifying ...
avrdude: 8116 bytes of flash verified
avrdude: safemode: hfuse reads as D7
avrdude: safemode: efuse reads as FF
avrdude: safemode: Fuses OK (E:FF, H:D7, L:F1)
avrdude done. Thank you.
Я не установил никаких предохранителей (надеюсь, частота правильная).
Плата распознается моим компьютером, и я могу запрограммировать на нее скетч с помощью Arduino IDE. Несмотря на все это, программа, которую я в него запалил, не запускается. Похоже, он застрял в секции загрузчика.
Скетч:
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(0, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(0, HIGH);
}
Контакт PB0
никогда не имеет напряжения больше 1,7 В
(шумовое или плавающее). Все контакты имеют одинаковое напряжение (за исключением PB3
,PB4
, которые вытянуты вверх или высоко).
Схема:
Схема работает. Я протестировал оба дисплея ранее с atiny, который я непосредственно запрограммировал с Uno
. Верхний правый разъем напрямую подключен к digispark
с помощью следующих контактов: VIN
,GND
,5V
. Средний разъем также подключен к digispark
.
Я попробовал:
- Питание от USB: Я боюсь, что это будет обнаружено загрузчиком и войти в состояние программирования, таким образом, никогда не работает схема(не должно произойти, но вы никогда не знаете...)
- Питание от VIN с батареей 9V. Ничего. Все напряжения находятся под контролем (
5V pin
имеет5v
на нем. Все остальные контакты плавают) - Питание осуществляется
от контакта 5
В с использованиемArduino UNO
в качестве источника. Ничего. Во всех случаях напряжение на PB0 остается неизменным. Он колеблется от0,6 В
до1,6 В.
В Arduino IDE:
- Пробовал Digispark 16,5 Мгц
- Digispark Pro 16 МГц
- Digispark(Без Usb) 16 МГц
Всегда успешная загрузка.
Примечания:
После загрузки в Arduino этот текст появляется:
Запуск приложения пользователя ... запуск: 100% полный
Таким образом, предполагается запустить программу, но плата на самом деле сбрасывается, потому что она перенумеруется Windows.
Не совсем возможно де-припаять его и запрограммировать скетч непосредственно с
помощью Arduino
asISP
- Я использую Windows 10
- Предохранители, использованные при сжигании
микроядра
L:F1
H:D7
E:FF
. Это "безопасные" значения по умолчанию. Фактические предохранители, необходимые для прошивки, следующие:L: E1
H:DD
E:FE
. - Разница в расширенном предохранителе: Самопрограммирование временно отключено...Неужели это и есть преступник?
- Мне удалось отпаять
PB0
,PB1
иPB2
с задней стороны печатной платы. Теперь я не могу запрограммировать его непосредственно спомощью Arduino в качестве ISP
. Та установка, которая у меня есть, должна работать, потому что я легко могу запрограммировать т45. Значит, это как-то связано с дигиспарком. Проверил соединение между контактами и самим микроконтроллером. Ошибка, которую я получаю, - этоФу...
и иногда он находит 0x00ff00 или другой ненужный идентификатор платы, но, вероятно, это происходит из-за неправильного подключения.
Вопрос № 2:
В текущей конфигурации(припаянной) можно ли было бы снова использовать Arduino в качестве ISP
для его программирования? PB0
,PB1
,PB2
подключены к последовательным часам
,последовательным данным
и последовательным часам хранения
соответственно. Прямо сейчас я пытаюсь установить правильные предохранители, но каждый раз получаю вот что:
avrdude -C "C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" -c stk500v1 -p attiny85 -U lfuse:w:0xe1:m -U hfuse:w:0xdd:m -U efuse:w:0xfe:m -B 20 -b19200 -P COM7
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.06s
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.
make: *** [fuse] Error 1
1 ответ
Лучший ответ:
Решил эту проблему! Я не знаю, в чем была настоящая проблема, но я сконструировал высоковольтный программатор и просто взорвал digispark новыми и надлежащими предохранителями. Теперь это работает так, как должно работать.
- Связь последовательного порта Digispark
- Библиотеки I2C для ATTiny85?
- ATtiny85 Digispark clones failing USB handshake - как их запрограммировать?
- длина провода i2c
- Программирование сервопривода на ATtiny85
- Программирование микроконтроллера Attiny85 без arduino
- Digispark ATtiny 85 - не распознается как HID устройство
- Клавиатура Digispark ATtiny85
Ваша схема нуждается в некоторой работе. Например, разъем(?) в правом верхнем углу, я не могу сказать, в каком порядке находятся контакты. Я не могу сказать, как называются резисторы (потому что они накладываются друг на друга). Там болтаются провода (огрызки), и это похоже на кучу спагетти. Конденсаторов нигде нет, так что это может быть проблемой., @Ron Beyer
Верхний разъем предназначен для питания. Он сразу же втягивается в digispark. Как и средний разъем. Digispark уже предоставляет конденсаторы для питания. И да..Для этого все еще требуется много работы. НО схема работает. Протестировал оба экрана с цифрами, непосредственно запрограммировав attiny., @sergiu reznicencu
Это сводит меня с ума. С тех пор как я запрограммировал этот загрузчик, ничего не работает. Я думаю, что это связано с программным обеспечением, потому что плата works..in его путь. Он распознается ПК, я могу его запрограммировать ... но он не выполняет ничего, что должен был бы выполнять., @sergiu reznicencu
вы это читали? https://digistump.com/wiki/digispark/tutorials/connecting, @jsotola
Я уже сто раз программировал digisprk. Это всегда срабатывало., @sergiu reznicencu