mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Varification Error beim Rücklesen der Fuses (ATMega103)


Autor: GundelGaukeley (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

Ihr werdet euch sicherlich Fragen, was ich mit so einem alten Schätzchen 
mache. Eigendlich garnicht derzeit verwende ich einen Mega128 für das 
Projekt. Ich muss aber Leider abwärtskompatible bleiben und da kommt 
jetzt der 103'er ins Spiel.

Programmieren mit anschließender Verifikation von Flash und EEPROM
Klappt bestens (mkII mit skt500.exe)

jetzt Programmiere ich die Fuse

stk500.exe -cUSB -dATMEGA103 -peDF -veDF

beim Verify bricht das Programm mit einem Fehler ab.

Lese ich jetzt die Fuse durch -q aus erhalte ich mal 0x1F 0xCF 0x0F
als Antwort vom mkII zurück.

Kann sich jemand vorstellen warum dieses so ist

Gruß

GundelGaukeley

P.S. Die Lockbit sind 0xFF

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Bits der Extended Fuse sind valid, alle?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne nachzugucken: ich glaube mich zu erinnern, dass der ATmega103
gar keine efuse hat.

Autor: GundelGaukeley (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtig

ich Programmiere ja auch keine eFuses die würden Programmiert mit -E und 
Verifiziert mit -G

Ok ein Problem (Vermutung) könnte es sein das der Parameter -f und -F 
ein 16-bit hex value erwartet ich Ihn aber nur ein 8-bit hex value 
schicke?

Aber der 103 hat nur eim Fuse Byte also 8 Bit


Gruß

GundelGaukeley

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, zu stk500.exe kann ich dir nichts sagen.  Wenn du's mit
avrdude probieren willst, kann ich dir ggf. Hinweise geben.

Autor: GundelGaukeley (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie verhält sich der Mega103 bei avrdude?
wenn du dort experte bist.

Kannst Du die Bits dort lesen und Verifizieren?

Gruß

GundelGaukeley

Autor: GundelGaukeley (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit dem experten bitte nicht falsch verstehen
--> Ist zu heiß heute und das mit meinem Problem nervt

Sorry --> So nochmal Ohne Zynismus


Kannst Du mit avrDude die Kontroller Fuses Fehlerfrei immer Lesen.

Gruß

GundelGaukeley

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
GundelGaukeley schrieb:
> Wie verhält sich der Mega103 bei avrdude?

Kann ich dir erst sagen, wenn ich zu Hause bin.  Ich glaube, ich habe
noch einen ATmega103 irgendwo in der Kiste liegen, den könnte ich
mal in einen STK501 reinlegen.  Ping mich mal heute abend (gern auch
per email).

Autor: GundelGaukeley (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry hatte keine Zeit hast Du es jetzt mal Ausprobiert was AVRDude mit 
nem 103 macht. ?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hatte auch gerade wieder dran gedacht.
% avrdude -c stk500v2 -P /dev/cuad0 -p m103 -U fuse:r:-:h

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9701
avrdude: reading fuse memory:

Reading | ################################################## | 100% 0.00s

avrdude: writing output file "<stdout>"
0xb

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Wird also offenbar als 0x0B ausgelesen.  AVRDUDE maskiert dabei die
nicht definierten Bits 2, 5, 7 und 8 aus, Bit 6 ist SPIEN, die natürlich
gesetzt ist.  EESAVE (Bit 3), SUT1 (Bit 1) und SUT0 (Bit 0) sind alle
gelöscht.  Ein Versuch, EESAVE zu setzen, sieht erfolgreich aus:
% avrdude -c stk500v2 -P /dev/cuad0 -p m103 -U fuse:w:0x03:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9701
avrdude: reading input file "0x03"
avrdude: writing fuse (1 bytes):

Writing | ################################################## | 100% 0.02s

avrdude: 1 bytes of fuse written
avrdude: verifying fuse memory against 0x03:
avrdude: load data fuse data from input file 0x03:
avrdude: input file 0x03 contains 1 bytes
avrdude: reading on-chip fuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of fuse verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

% avrdude -c stk500v2 -P /dev/cuad0 -p m103 -U fuse:r:-:h

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9701
avrdude: reading fuse memory:

Reading | ################################################## | 100% 0.00s

avrdude: writing output file "<stdout>"
0x3

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Sieht also alles in Ordnung aus, denke ich.

Autor: GundelGaukeley (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

Es sieht so aus als ob AVRDude etwas cleverer ist als die stk500.exe die 
List bei der Verifikation des Fuse Byte das komplett Byte aus, erkennt 
aber nicht das nur das Low Nibble im Byte die für den Kontroller 
wichtigen Informationen enthält. Ich habe das ganze jetzt über eine 
Batch Datei geregelt. Um das Fuse Byte zu Kontrollieren Lese ich mit -q 
das Byte und Frage dann mittels einer FOR operation in der Commando Line 
die ausgabe des STK500.exe ab. Das heißt ist das Low Nibble = 0xF  ist 
meine Fuse richtig programmiert.
FOR /F "skip=2 delims=() tokens=2" %%A in ('STK500.exe -cUSB -dATMEGA103 -q') do ( usw... ) 

Ich hab nur ganz selten einen Mega103 und deshalb auf AVRDude 
umzusteigen Lohnt sich nicht

Vielen Danke nochmals für deine Hilfe

Gruß

GundelGaukeley

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.