Forum: Mikrocontroller und Digitale Elektronik ATMega8 Auslieferungszustand zurücksetzen


von Raik A. (raik)


Angehängte Dateien:

Lesenswert?

Hi,

in letzter Zeit hatte ich immer mal Probleme beim Schreiben von 
Fuse-Bits mit PonyProg2.07c. Damit war dann ein ATMega8 auf dem SPI- Ohr 
taub.

Leider besitze ich aber kein STK500, um den Mega8 über den parallelen 
Programmiermodus zurückzusetzen. Deshalb habe ich mir die Schaltung von 
Gunter Baabe "ParProg2" nachgebaut. Funktioniert super !

Da ich aber auch noch eine sinnvolle Verwendung für einen AT90S4433 
suche, habe ich mal versucht, das Programm entsprechend umzuschreiben.
Leider erfolglos. Der Target- Mega8 wurde nicht zurückgesetzt.

Hat jemand ein paar Hinweise?

Einen Verdrahtungsfehler schließe ich aus, da ich die gleiche 
Versuchsschaltung wie beim vorherigen Ausbau mit einem Mega8 als Source 
verwendet habe. Nur die beiden Ausgänge für die Spannungsversorgung des 
Targets und dem 12V- Reset habe ich auf PortC verschoben -> werden nun 
für die XTAL- Eingänge benötigt. Den 12V- Reset- Impuls konnte ich nach 
der Tastenbetätigung mit den Oszi sehen.

Raik

von Gunter (Gast)


Lesenswert?

Hallo Raik,

schön, dass mein Programm auch bei Dir funktioniert.
Lade einfach von www.e-lab.de die Demo runter.
Den Source-File hast Du ja.
Du musst nur die Zeile
"Device = mega8" zu
"Device = 90S4433" ändern,
bei den "Var Declarations" die neuen Ports angeben und kompilieren.

Falls es noch Probleme gibt:
melde Dich im E-LAB Forum an. Da schaue ich täglich rein.

Gruß
Gunter

von Raik A. (raik)


Angehängte Dateien:

Lesenswert?

Hallo Gunter,

erst einmal danke für Deine Hinweise.

So einfach war es dann doch nicht. Zusätzlich mußten noch die Werte für 
StackSize / FrameSize verringert werden. Andernfalls brachte der 
Compiler Fehlermeldungen. Die genaue Bedeutung der beiden Werte und der 
Wert für SysTick ist mir noch nicht klar. Auch das Handbuch vom Compiler 
brachte mich nicht weiter.

Jedenfalls funzt aber das Programm "ParProg2_AT90S4433" jetzt.

Warum mein zuvor geschriebenes Programm nicht läuft, ist mir aber auch 
noch nicht klar.

Grüße
Raik

von Gunter (Gast)


Lesenswert?

Hallo Raik,

die Erklärung Stack/Frame und Systick findest Du in DocuCompiler.pdf
im Kapitel 17.
Der Systick ist i.A. unkritisch und kann auf 10ms stehen bleiben.
Stack/Frame liegen im internen Ram. Da der Mega8 1k hat, konnte ich da
relativ grosszügig sein. Ist bei dieser Mini-Applikation auch recht
unkritisch, führt bei Überlauf aber zu extrem schwer zu findenden 
Fehlern.
Also nur soweit notwendig reduzieren und dann ggf. im Simulator testen!

Gruß
Gunter

von Raik A. (raik)


Angehängte Dateien:

Lesenswert?

Hi,

auf die einfachsten Dinge kommt man zuletzt. Es war lediglich der Reset- 
Interruptvektor nicht definiert. Jetzt läuft das Programm FuseReset1.1 
ohne Probleme.

@Gunter
Nochmals danke für die Infos.

Grüße
Raik

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.