AVR Dragon kann fuses nicht schreiben

OP #4335378
Lesenswert?
• ▲
▼
Hallo zusammen

Ich habe einen AVR Dragon, mit dem ich die Fuses eines Attiny48 
schreiben möchte. Per Kommandozeile kann ich die Fuses auslesen, wenn 
ich jedoch sie schreiben möchte kommen diese Meldungen:
1
>avrdude -p attiny48 -P usb -c dragon_isp -U hfuse:w:testfile.fuse -B
2
 10 -v -v
3

4
avrdude: Device signature = 0x1e9209
5
avrdude: safemode: lfuse reads as 6E
6
avrdude: safemode: hfuse reads as DF
7
avrdude: safemode: efuse reads as 1
8
avrdude: reading input file "testfile.fuse"
9
avrdude: input file testfile.fuse auto detected as Intel Hex
10
avrdude: ERROR: address 0x0003 out of range at line 1 of testfile.fuse
11
avrdude: write to file 'testfile.fuse' failed
12

13
avrdude: safemode: lfuse reads as 6E
14
avrdude: safemode: hfuse reads as DF
15
avrdude: safemode: efuse reads as 1
16
avrdude: safemode: Fuses OK
17
avrdude: stk500v2_jtagmkII_close()
18
avrdude: jtagmkII_close()
19
avrdude: jtagmkII_close(): Sending sign-off command: 0x80 (1 bytes msg)
20

21
avrdude done.  Thank you.

Das Fuses-File habe ich mit CodeBlocks generiert.
Programmieren konnte ich schon mit einem anderen AVR-Tool. Möchte jetzt 
wegen dem Debuggen jedoch auf den Dragon ändern.

Suche eine Lösung wie ich die Fuses programmieren kann und dann das 
ganze Programm draufladen.

MfG
Gast #4335384
Lesenswert?
• ▲
▼
TM F. schrieb:
>
1
> avrdude: input file testfile.fuse auto detected as Intel Hex
2
> avrdude: ERROR: address 0x0003 out of range at line 1 of testfile.fuse
3
> avrdude: write to file 'testfile.fuse' failed
4
>

Hat also nichts mit der 'testfile.fuse' zu tun. Deshalb fehlt sie auch 
im Anhang. Außerdem weißt du welche Fuses du wie setzten möchtest. Gut, 
daß ich den Dragon nicht kenne.
#4335581
Lesenswert?
• ▲
▼
TM F. schrieb:
>avrdude -p attiny48 -P usb -c dragon_isp -U hfuse:w:testfile.fuse ...
> ...
> avrdude: reading input file "testfile.fuse"
> avrdude: input file testfile.fuse auto detected as Intel Hex
> avrdude: ERROR: address 0x0003 out of range at line 1 of testfile.fuse

Jede Fuse ist genau 1 Byte. Das Hexfile darf also auch nur genau 1 Byte 
enthalten. Deins enthält anscheinend 3.

Es ist allgemein unüblich, Werte für die Fuses in ein Hexfile zu 
schreiben. Eher gibt man sie direkt an:

1
avrdude ... -U hfuse:w:0xAB:m -U efuse:w:0xFF:m

siehe dazu das AVRdude Manual zur Bedeutung des :m Modifiers.

Eine andere nette Variante besteht darin, die Fuses in den Quellcode zu 
schreiben und sie zum Programmieren mit dem AVRFuseExtractor 
(https://github.com/ithron/AVRFuseExtractor) zu extrahieren:

1
~ .../AVR/Belichter $ls *.c *.h main.*
2
hal.h   main.c       main.eep   main.hex  main.map
3
main.c  main.disasm  main.elf*  main.lst  main.o
4

5
~ .../AVR/Belichter $tail -18 hal.h | head -6
6
FUSES =
7
{
8
    .low      = (FUSE_CKSEL1 & FUSE_SUT1),
9
    .high     = (FUSE_SPIEN & FUSE_BODLEVEL1 & FUSE_BODLEVEL0),
10
    .extended = EFUSE_DEFAULT
11
};
12

13
~ .../AVR/Belichter $extractfuses.sh avrdude main.elf 
14
-U lfuse:w:0xdd:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m

Ach ja. Mit dem AVR Dragon hat das natürlich nichts zu tun.
Moderator Persönliche Seite #4335591
Lesenswert?
• ▲
▼
Axel S. schrieb:
> AVRFuseExtractor

Braucht man nicht (mehr).  Man kann ja direkt aus dem ELF-File
programmieren:
1
… -U hfuse:w:foo.elf -U lfuse:w:foo.elf -U flash:w:foo.elf

Allerdings ist es fraglich, ob man sie nun wirklich unbedingt bei
jedem Programmiervorgang schreiben muss.  Sind schließlich auch nur
Flash-Zellen, die beim Löschen und Wiederbeschreiben altern.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.