Forum: Mikrocontroller und Digitale Elektronik Ponyprog und Script mit mehr als einem Fusebyte


von Norbert (Gast)


Lesenswert?

Hi,

Die Scriptsprache in Ponyprog lässt ja auf den ersten Blick nur ein
Fusebit zu, womit man bei einem ATMega ja gekniffen ist.
Nun habe ich dies gefunden:
http://ponyprog1.sourceforge.net/phorum/read.php?f=1&i=2955&t=2954
und
http://ponyprog1.sourceforge.net/phorum/read.php?f=1&i=2695&t=2695

Also für M8 Write-Fuse FBH FBL und für M128 FBL FBH FBE.
Dabei lautet der write-Befehl beim M8 laut Datenblatt fürs FBH
1010 1100 1010 1000 ...
Write FBL:
1010 1100 1010 0000 ...
... ist dann ein egal-byte und dann eben das Fusebyte.
Beim M128 ist es genau gleich, kommt nur eben noch das FBE dazu.
Warum ist also die Reihenfolge umgekehrt, was die FBH und FBL angeht?

Kann einer die Angaben zum M8 oben aus dem Forum bestätigen und vor
allem ist das beim M16 genauso wie beim M8?

Hat vielleicht einer Ponyprog und ein STK500 mit M16 um das mal
gefahrlos auszuprobieren und wäre auch noch so nett dies zu tun?
Ich würde mich nur ungern aus etlichen Controllern aussperren bis ich
das vielleicht so herausgefunden habe.

Danke schonmal!

Gruß,
Norbert

von Günter Koch (Gast)


Lesenswert?

Vielleicht ist es für Manchen schon zu spät, aber für den ATMega8 habe
ich Folgendes durch Probieren herausgefunden mit PonyProg 2.06c Beta
Jul 27 2003:

WRITE-FUSE 0x<Highbyte><LowByte>

Das Besondere ist jedoch, dass die Interpretation der Bits genau
umgekehrt zu der im Atmel Datenblatt, zum STK500 und zu AVRDUDE ist.

- Atmel ATMega8 datasheet: "Note that the fuses are read as logical
zero, “0”, if they are programmed".

- Ponyprog Doku zu WRITE-FUSE: "note that a 1 means programmed"

Also zum Beispiel:

# Fuse bit settings for AVRDUDE (bit interpretation as at STK500 and
Atmel datasheet):
# programmed = 0
#High byte: 0xD9
#RSTDISBL: 1 (default)
#WDTON:    1 (default)
#SPIEN:    0 (default, do not change)
#CKOPT:    1 (default)
#EESAVE:   1 (default)
#BOOTSZ1:  0 (default)
#BOOTSZ0:  0 (default)
#BOOTRST:  1 (default)
#Low byte:  0x3F
#BODLEVEL: 0
#BODEN:    0
#SUT1:     1
#SUT1:     1
#CKSEL3:   1
#CKSEL2:   1
#CKSEL1:   1
#CKSEL0:   1

# Same fuse bit settings for PONYPROG (bit interpretation in contrast
to STK500 and Atmel datasheet):
# programmed = 1
#High byte: 0x26
#RSTDISBL: 0 (default)
#WDTON:    0 (default)
#SPIEN:    1 (default, do not change)
#CKOPT:    0 (default)
#EESAVE:   0 (default)
#BOOTSZ1:  1 (default)
#BOOTSZ0:  1 (default)
#BOOTRST:  0 (default)
#Low byte:  0xC0
#BODLEVEL: 1
#BODEN:    1
#SUT1:     0
#SUT1:     0
#CKSEL3:   0
#CKSEL2:   0
#CKSEL1:   0
#CKSEL0:   0

Ich hoffe, dass kann auch von anderer Seite noch bestätigt werden,

Günter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.