Forum: Mikrocontroller und Digitale Elektronik Hilfe beim Brennen eines Atmega8 ( Fusebits)


von Manfred B. (bastelbube)


Lesenswert?

Hallo,

da ich keine Ahnung  von Microcontrollern habe und nach dem Suchen nach 
einer Lösung für mein Problem noch unwissender dastehe bitte ich um 
Hilfe.
Ich muss einen Atmega8 brennen, die Unterlagen incl des HEX files sind 
hier
 https://www.vbesmens.de/de/dro-fuer-magnetbaender.html
frei verfügbar.
Zur Verfügung steht mir ein Evaluationsboard von Pollin. Als Software 
habe ich Ponyprog und AVR Dude mit AVR8 Burn O Mat versucht. Mehrmals 
ohne Erfolg. Wenn ich das Recht verstehe besteht das Problem darin, das 
der Resetpin umprogrammiert wird und ich mich damit aussperre. Des 
weiteren weiß ich nicht was ich bei den Fuse Bits einstellen soll. 
Probieren hat nur zum Verlust der Chips geführt :-(
Wer kann mir helfen und sagen was ich genau bei den Programmen 
einstellen muß.
zB hab ich keine Möglichkeit gefunden den Resetpin bei den Fuse in 
Ponyprog zu markieren.. Des weiteren ist mir unklar ob ich erst den 
Speicher schreiben muß und anschließend die Fuse Bits. Ihr seht ohne 
Hilfe wird das nix

Das sind die Angaben für die Fusebits

// Fuse settings:
// SPIEN     = false
// RSTDISBL   = true
// EESAVE       = false
// CKOPT        = false
// WDTON        = false
// BODEN        = false
// BOOTRST      = false
// BODLEVEL     = 0
// BOOTSZ       = 00
// CKSEL        = 0100
// SUT          = 10

Ich will mir nur den Chip brennen weiter nichts, also bitte keine 
Kommentare wie einlesen, Datenblätter studieren oder ähnliches.
Ich brauche nur die Anleitung für Dumme :-)

Ich bedanke mich für eure Hilfe
Manfred

von holger (Gast)


Lesenswert?

>Des weiteren ist mir unklar ob ich erst den
>Speicher schreiben muß und anschließend die Fuse Bits. Ihr seht ohne
>Hilfe wird das nix

Du musst zuerst den Speicher schreiben. Wenn du den Resetpin
wegballerst geht ISP nicht mehr.

von Manuel (Gast)


Lesenswert?

Manfred B. schrieb:
> zB hab ich keine Möglichkeit gefunden den Resetpin bei den Fuse in
> Ponyprog zu markieren..

Der Resetpin kann man nicht auswählen. Beim Atmega 8 ist dies der Pin 1. 
Das Fuse bit RSTDISBL programmiert diesen Pin um. Dies sollte also nach 
dem Schreiben des Programms geschehen. Die anderen Fuse Bits könntest du 
auch vorher setzen. Wichtig ist, dass die Clock nicht falsch eingestellt 
wird, da man dann (ähnlich wie beim RSTDISBL) nicht mehr viel mit dem 
Controller anfangen kann. Aber die Daten hast du ja gegeben...

von Oliver S. (oliverso)


Lesenswert?

Manfred B. schrieb:
> // RSTDISBL   = true

AVR Fuses und auch Ponyprog haben die Eigenheit, daß nichts so ist, wie 
es scheint. Da bedeutet dann 0 1, oder true false...

Datenblatt und sonstige Doku um Netz hilft da weiter.

Ich hab jetzt nur einen kurzen Blick und den Schaltplan geworfen, und 
habe da keinen Hinweis darauf gefunden, das der Resetpin was anderes als 
Reset machen sollte.

Oliver

von Thomas P. (topla)


Lesenswert?

Oliver S. schrieb:
> Ich hab jetzt nur einen kurzen Blick und den Schaltplan geworfen, und
> habe da keinen Hinweis darauf gefunden, das der Resetpin was anderes als
> Reset machen sollte.

Doch. PC6(/RESET) geht auf das Signal ZERO und das ist über J4:1 mit 
einem Taster gegen Masse geschaltet. Funktion "Zero/Menue".

Thomas

von MaWin (Gast)


Lesenswert?

Manfred B. schrieb:
> Ich muss einen Atmega8 brennen

Ach der arme kleine Atmega8.

von Thomas F. (igel)


Angehängte Dateien:

Lesenswert?

AVR-Studio gibt für 8MHz intern die Fuse-Werte wie im Bild aus.

von Manfred B. (bastelbube)


Angehängte Dateien:

Lesenswert?

Hallo,

vielen Dank für eure Antworten.
Daraus schließe ich jetzt mal folgendes:



> Du musst zuerst den Speicher schreiben. Wenn du den Resetpin
> wegballerst geht ISP nicht mehr.
Erklärt warum der letzte Chip gar nicht geht. Hab erst die Fusebits 
geschrieben und dann den Flash Speicher.


> Aber die Daten hast du ja gegeben...

Die stammen aus der orginal Doku


> AVR Fuses und auch Ponyprog haben die Eigenheit, daß nichts so ist, wie
> es scheint. Da bedeutet dann 0 1, oder true false...

Ich hab mal versucht ein Screenshoot anzuhängen mit den nach meiner 
Meinungen gültigen Einstellung.





>> Ich hab jetzt nur einen kurzen Blick und den Schaltplan geworfen, und
>> habe da keinen Hinweis darauf gefunden, das der Resetpin was anderes als
>> Reset machen sollte.
>
> Doch. PC6(/RESET) geht auf das Signal ZERO und das ist über J4:1 mit
> einem Taster gegen Masse geschaltet. Funktion "Zero/Menue".

Genau hier liegt wohl das Problem. Da in Ponyprog das Feld RSTDISBL 
ausgegraut ist, kann ich Pin1 nicht zum E/A umprogrammieren. Das heißt 
nach dem Einschalten des Geräts komme ich automatisch ins Menue SET, 
kann hier aber keine Einstellungen vornehmen, da ein Druck auf den 
Taster nur einen Reset auslöst und nicht wie nötig eine Auswahl 
vornimmt.
Meine Überlegung :

1. Brennen vom Flsah Speicher
2. Setzen der Fuse Bits ohne RSTDISBL
3. Verifizieren ob bis hier alles stimmt
4. Wechseln auf AVR Dude mit AVR 8 Burn und auslesen der Fuse Bits
5. Nachsetzen von RSTDISBL und neu brennen der Fuse Bits

Mag das gehen ? Oder wie kann ich in Ponyprog an den Reset kommen ?
Einfachere Lösungen ?

Vielen Dank für eure Bemühungen
Manfred



>> Ich muss einen Atmega8 brennen
>
> Ach der arme kleine Atmega8.

Dein Beitrag bringt mich zwar nicht wirklich weiter, aber dann sind wir 
ja schon zu zweit die sich um das Wohl der Chips sorgen

von Oliver S. (oliverso)


Lesenswert?

Hm. google findet zum ponyprog RSTDISBL Problem nur einen steinalten 
Hinweis, daß es sich da wohl um einen Bug handelt, der in einer neueren 
Version gefixt werden soll. Obs tatsächlich dann jemals gefixt wurde, 
keine Ahnung. PonyProg gehört nicht zu den tools, an die ich überhaupt 
jemals einen Gedanken verschwendet habe.

Eine Lösung wäre wohl, eine noch steinältere Version zu verwenden (zum 
Glück ist der AtMega8 so steinuralt, der wird immer unterstützt), oder 
per Script.

Was funktioniert denn bei AVRDude nicht?

Oliver

: Bearbeitet durch User
von Mandi (Gast)


Lesenswert?

nimm myAVR-ProgTool

http://shop.myavr.de/index.php?sp=download.sp.php&suchwort=dl112

 Pollin Atmel Eval.Board 2.01
Serielles Kabel 1:1 an COMx (PC) und Ser.ISP (Atmel Ev.Board) 
anschliessen
myAVR-ProgTool - Hardware --> ATMega8  auswählen
                 Hardware: sonst. --> ponyser. wählen

 Bei neuem IC: myAVR-ProgTool - Fuses bearbeiten: Hardware auslesen,
LowFuse: DivideClock/8 Häckchen weg , Oszillator 16MHz wählen,
Jetzt schreiben

myAVR-ProgTool - Flash brennen (Hex-File)

MfG. Mandi

von Manfred B. (bastelbube)


Angehängte Dateien:

Lesenswert?

Hallo,
Oliver S. schrieb:
> Was funktioniert denn bei AVRDude nicht?

Erhalte unter AVR Dude die Fehlermeldung sh Anhang.
Das gleiche HEX File unter Ponyprog wird fehlerfrei gebrannt, zumindest 
steht da OK wenn ich verify Programm Flash aufrufe.

Deshalb meine Idee das Flash File unter Ponyprog zu brennen und die 
Fuses mit AVR Dude, denn da läßt sich RSTDISBL anklicken.
Bin nur etwas unsicher ob das Sinn macht, da das mein letzter Atmega8 
ist und ich vor Ostern wohl kaum noch einen geliefert bekomme. Wäre 
schöner wenn das vorher funktionieren würde, dann würde ich nämlich die 
anderen Achsen bestücken und die Mechanik für die Sensoren fräsen.

Gruß Manfred

von Georg G. (df2au)


Lesenswert?

Seltsamer Effekt. Ponyprog und AVRDude geben dem Mega8 nur Daten und 
Befehle. Der eigentliche Programmiervorgang erfolgt innerhalb des Mega8 
durch den Prozessor selbständig. Warum soll der sich unterschiedlich 
verhalten, wenn er die Befehle von zwei verschiedenen Programmen 
bekommt? Da ist etwas ganz grundsätzlich im Argen. Zeig doch bitte mal 
ein Foto deiner Hardware mit dem angeschlossenen Programmiergerät.

von Manfred B. (bastelbube)


Lesenswert?

Hallo,

Georg G. schrieb:
> Seltsamer Effekt. Ponyprog und AVRDude geben dem Mega8 nur Daten und
> Befehle. Der eigentliche Programmiervorgang erfolgt innerhalb des Mega8
> durch den Prozessor selbständig. Warum soll der sich unterschiedlich
> verhalten, wenn er die Befehle von zwei verschiedenen Programmen
> bekommt? Da ist etwas ganz grundsätzlich im Argen. Zeig doch bitte mal
> ein Foto deiner Hardware mit dem angeschlossenen Programmiergerät.

Der ATMEGA8 steckt im Sockel auf dem Evaluationsboard von Pollin, dies 
ist über ein serielles Kabel mit COM1 vom PC verbunden. Die SubD ist mit 
ISP beschriftet.Nicht zu verwechseln mit dem 10 poligen Pfostenstecker.

Im AVR8 Burn O Mat ist unter Settings unter Programmer Ponyserv Design 
Ponyprog seriell eingetragen. Das war die einzigste passende Einstellung 
die ich für das Board gefunden habe. Sollte auch passen, sonst könnte 
ich ja die Fusebits nicht auslesen.
Warum es beim Flashspeicher zur Fehlermeldung kommt ??????

Gruß
Manfred

Beitrag #4973410 wurde von einem Moderator gelöscht.
Beitrag #4974500 wurde vom Autor gelöscht.
von Manfred B. (bastelbube)


Angehängte Dateien:

Lesenswert?

Hallo

Julia W schrieb:
> Ich würde es einfach mal versuchen, daher erst dein Programm flashen und
> dann die Fusebits über "AVR Burn-O-Mat" setzen.
>
> Bitte Rückmeldung geben.

ich habe jetzt den Flashspeicher und die Fuse Bits unter Ponyprog
gebrannt und anschließend noch mit AVR Burn o mat den RSTDISBL
nachgesetzt.
Und siehe da die Anzeige geht. Es läßt sich mit PIN1 ins Menue wechseln.
Warum das so geht weiß ich nicht, ist mir aber letztendlich egal :-)

Ich bedanke mich recht herzlich bei allen die sich Gedanken gemacht und
mir geholfen habe.
Gruß
Manfred

Beitrag #4974556 wurde von einem Moderator gelöscht.
von Manfred B. (bastelbube)


Lesenswert?

Julia W schrieb im Beitrag #4974556:
> mit AVR-Burn-o-mat wolltest du nicht im einem Rutsch die Fuses setzen?
> Probiere das bitte beim nächsten mal.

Hallo,

da mein Vorrat an Atmega8 begrenzt ist wollte ich kein Risiko eingehen.

Ich brauchte ja noch zwei für die y und z Achse.. Funktionierte aber 
einwandfrei. Über Ostern werde ich mal die Mechanik basteln und das 
ganze an die Drehbank bauen.

Gruß
Manfred

von eProfi (Gast)


Lesenswert?

Der Herr Volker ist ja gut, JP2 geht auf PD6 und wird nicht verwendet.
Dafür opfert er den Reset/PC6, damit man nur noch mit einem 
HighVoltage-Brenner wiederprogrammieren kann.

Und seine Abkürzungen:
VB ist nicht VisualBasic, sondern sind seine Initialen.
AD ist nicht Analog/Digial, sondern Altium Designer.
"ZERO - Port must be here to keep AD happy."

Manfred, toll dass Du es geschafft hast! Frohes Werkeln und Ostern!

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.