Forum: Mikrocontroller und Digitale Elektronik ATMega8 nur bei geringer Taktfrequenz flashbar


von Marc Schneider (Gast)


Lesenswert?

Hallo,

ich beschäftige mich gerade zum ersten Mal seit fast zwei Jahren wieder
mit Mikroprozessoren, habe aber Probleme beim Flashen meines ATMega8:
Wenn ich auf meiner Experimentierplatine ein 3.684 MHz Quartz benutze
klappt das Flashen sowohl mit UISP als auch mit AVRDUDE problemlos.
Tausche ich das Quartz jedoch gegen ein 12 MHz Quartz aus, so kann ich
weder mit UISP noch mit AVRDUDE zuverlässig Flashen: Beim
anschliessenden Verify-Vorgang zeigt UISP beispielsweise an dass fast
jede Speicherstelle einen anderen Wert enthält als sie haben sollte.
Auch das zu flashende Programm funktioniert überhaupt nicht. Wenn ich
das Programm jedoch mit 3.684 MHz flashe und dann das Quartz tausche,
so funktioniert Alles, ein einfaches "Blinkende LED"-Programm
beispielsweise blinkt nach dem Quartztausch dann einfach ca. 3 mal
schneller - das Problem scheint also eindeutig beim Flashvorgang zu
liegen...

Hat Jemand eine Idee wo das Problem liegen könnte?

von peter bb (Gast)


Lesenswert?

vielleicht hast du den avr8l, der läuft nur mit max 8mhz

oder hast die fusebit icht verstellt.

von Marc Schneider (Gast)


Lesenswert?

Nein, es ist ein ATMega8-16PI der ja soweit ich weiss bis zu 16 MHz
laufen soll.

Die Fusebits habe ich soweit ich mich erinnere tatsächlich nicht
verändert - was genau muss ich da denn einstellen?

von Stef (Gast)


Lesenswert?

Das Datenblatt vom MEGA16 z.B. sagt ab 0.9 MHz was von Kondensatoren
hinterm Quarz zwischen 12..22 pF. Vielleicht die Kondensatoren zu
hoch/zu niedrig gewählt? Wobei es ja noch die Optionen "CKOPT" und
"CKSEL 3..1" gibt. Wobei das Datenblatt von mir auch bloß bis 8 MHz
geht.

Grüsse

von Thilo (Gast)


Lesenswert?

Na, 'CKOPT' unt 'EXT CRYSTAL HIGH FREQUENCY', wobei die Startup-Time
von der Anwendung abhängt.

von Thilo (Gast)


Lesenswert?

Ach ja, die C's am Quarz gegen Masse bentuze ich 22pF, hat bisher immer
Funktioniert.

von Paul Baumann (Gast)


Lesenswert?

Das scheint ein Problem des ATMEGA8/16 zu sein. Ich hatte genau den
gleichen Effekt, so daß er beim Takt von 16Mhz durch bloßes Lesen
komplett blockiert war. Ich benutze Ponyprog V2.06 und einen seriellen
Programmer nach S.Hühn.

Mit einem ATTINY2313 und 20 Mhz trat der Effekt nicht auf. Der geht
tadellos.

MfG Paul

von Marc Schneider (Gast)


Angehängte Dateien:

Lesenswert?

Danke schon mal für eure Hilfe!

Die Kondensatoren zwischen Quartz und Masse sind 22pF - müsste also
schon mal passen.

Die Einstellung der Fusebits habe ich eben mal nachgeschaut, sie war
folgendermassen:
Fuse High Byte: 0xD9 (11011001)
Fuse Low Byte: 0x3F (00111111)
Was laut Datenblatt bedeuten müsste:
CKOPT = 1 (unprogrammiert)
CKSEL3 = 1
CKSEL2 = 1
CKSEL1 = 1
(-> Crystal oscillator, frequency range: 3-8 MHz)

CKSEL0 = 1
SUT1 = 1
SUT0 = 1
(-> Start-Up-Delay 65ms)

3-8 MHz? - das sah ja schon mal nach des Rätsels Lösung aus, laut
Datenblatt sind mehr als 8 MHz offenbar nur mit programmiertem CKOPT
möglich. War aber offenbar doch nicht der Fehler, denn ich habe die
Fusebits nun mal auf 0xC9 (high byte) bzw. 0x2F (low byte) geschaltet,
was für die relevanten Fuses bedeuten müsste:
CKOPT = 0 (programmiert)
CKSEL3 = 1
CKSEL2 = 1
CKSEL1 = 1
(-> Crystal oscillator, frequency range: >= 1 MHz)

CKSEL0 = 1
SUT1 = 1
SUT0 = 0
(-> Start-Up-Delay 4.1 ms)

Funktioniert aber trotzdem nicht. Was mich persönlich halt verwundert
ist die Tatsache dass der µC bei 12MHz offensichtlich ganz normal mit
12 MHz funktioniert wenn er erst einmal korrekt geflasht ist, nur das
ISP Programmieren geht bei 12 MHz offenbar nicht. Ausserdem kann ich
auch mit 12 MHz-Quartz die Fusebits korrekt lesen und schreiben.
Die Ausgabe von UISP habe ich mal angehängt, falls irgendjemand etwas
damit anfangen kann.

von Marc Schneider (Gast)


Lesenswert?

@Paul Baumann:
Das ist ja interessant, denn ich benutze zufällig ebenfalls genau
diesen seriellen Programmer nach S.Hühn... Ob das was damit zu tun
hat?
Im Schrank habe ich noch einen Parallel-Port-ISP, wäre doch mal
interessant ob das Problem mit dem auch auftaucht. Da müsste ich nur
leider erst mal nen neuen Stecker anlöten...

von Paul Baumann (Gast)


Lesenswert?

Das kann ich nicht testen, weil ich außerdem nur noch den HV-Programmer
nach Elm-Chan gebaut habe. (3 Kreuze, sonst hätte ich 2 Mega8 nicht
"wiederbeleben" können)
Ich habe eben nochmal mit einem 10Mhz-Quarz probiert. Mit dem geht
es auch noch, aber dann ist Feierabend. :-(

Wenigstens bin ich nicht der Einzige mit diesem Effekt.

MfG Paul

von alfsch (Gast)


Lesenswert?

tja, habe neulich mega8 bei 20mhz (quartz) getestet, geht wie er soll.
per isp /parport + sp12 .
ging sogar ohne ckopt fehlerfrei. mit ckopt auch.

von Atmega8 A. (atmega8) Benutzerseite


Lesenswert?

@ Paul Baumann

Ich hab das Problem dass ich C6 als Ausgang gewählt habe,
jetzt habe ich  versucht den HV-Programmer von Elm-Chan mit Eagle
2-Seitig hin zu bekommen ... bin mir aber unsicher mit den
Transistoren.

Hast du die Schaltung auch in Eagle aufgebaut?
Wenn ja, kannst du mir dein Layout schicken ?
Wenn nein, welche Widerstände(für die Transistoren) und welche
Transistoren hast du genommen ?

von Paul Baumann (Gast)


Lesenswert?

@atmega8
Ich habe die Schaltung kurzerhand auf Lochraster aufgebaut und mit
CuL verdrahtet. Erst habe ich versucht, das Ganzé in Eagle zu routen,
aber da ich sämtliche Fassungen auf der Platine haben wollte, gab das
einen Riesenwulst. :-(
Als Transistoren habe ich die DDR-Typen SF127 für NPN und tschechische
KFY´18 genommen (mit externen Vorwiderständen). Allerdings brauchte
ich auch noch einen Leitungstreiber (74LS244) HCT geht auch.
Die Transistoren "mussten mal weg". :-)
MfG Paul

von Paul Baumann (Gast)


Angehängte Dateien:

Lesenswert?

Hier noch ein Bild des "Kunstwerkes" :-)

MfG Paul

von TravelRec. (Gast)


Lesenswert?

Basteln macht Spaß und schult. Allerdings gibt es auch tadellose
Programmer, wie den AVR-ISP von ATMEL, die günstig sind und immer
gehen, egal welchen Rechenknecht man da dranne hängt. Wenn schon nicht
selber kaufen, dan laßt den euch doch wenigstens mal zum Geburtstag
schenken :-|...

von Paul Baumann (Gast)


Lesenswert?

Nüscht is! Ich bin Bauer, genauer gesagt Selbstbauer. :-)

So, aus einer Lieferung von 5 Stück ATMEGA8 zeigten 2 das oben
beschriebene Verhalten, 3 Stück gingen auch bei 16Mhz tadelos.
(Bei gleichen Fuseeinstellungen und gleichen Bedingungen)

Mein Enkel würde dazu sagen: "Voll krass, Alter!" grins

Und nu? Fehler gesucht, keinen gefunden 8 3/4 Stunden. :-)

Dann bekommen die beiden anderen eben "langsamere" Aufgaben.

MfG Paul

von TravelRec. (Gast)


Lesenswert?

Der ATMega8 hat doch so ´ne Fuse zum Teilen der Takt-Frequenz - ist die
vielleicht mal gesetzt?! Ich hatte mal ´ne Lieferung Tiny2313 bekommen,
bei denen ein Lock-Bit gesetzt war. Ließen sich nicht programmieren, bis
man die bewußt 1x gelöscht hatte...

von Paul Baumann (Gast)


Lesenswert?

@TravelRec
Die Fuses sind untereinander völlig gleich. Ich lese bei neuen
Prozessoren immer erst mal die Fuses aus. Wie gesagt: Wenn das Programm
erst einmal drin ist, laufen die beiden mit 16Mhz.
Ich muß sie aber auf dem Programmierbord (mit 4Mhz drauf) laden.
Wenn ich sie in der Zielschaltung auslese, stürzt der Kollege ab
und ich kann ihn dann nur noch mit dem HV-Gerät lesen. Dann sind
da alle möglichen Fuses gesetzt. (Staun!)

Sind sicher "Montags-Prozessoren" :-)

MfG Paul

von Bernd Müller (Gast)


Lesenswert?

Hallo,

bitte entschuldigt, dass ich mich hier so reinhänge, aber ich bin
gerade dabei mir den ELM Programmer zu bauen und mich würde
interessieren welche Leitungen, mit dem 74ls244 gepuffert werden.

Besten Dank


Gruß

Bernd Müller

von Paul Baumann (Gast)


Lesenswert?

@Bernd
Die 8 Leitungen, über die das gestrichelte Kästchen liegt. Besser
ginge vielleicht der 74hc541, weil da alle Eingänge auf einer Seite
sind. Ich habe den 244 genommen, weil er gerade da war.

MfG Paul

von Bernd Müller (Gast)


Lesenswert?

@Paul
Genau das ist ja die Frage,
das gestrichelte Kästchen liegt doch über 10 Leitungen...

Welche davon hast Du genommen?
Bitte poste doch mal Deine Schaltung oder nenne mir die 8 "richtigen"
Leitungen.
Programmiert Du mit der "DOS" oder der "Win32" Software oder kann
man auch AVRStudio oder eine andere grafische Windows Software
benutzen?

Danke

Gruß
Bernd

von Paul Baumann (Gast)


Lesenswert?

Alle Leitungen, die an den Prozessor gehen sind gemeint. Ich benutze
AVRPP der Win32 Software. Man kann ausschließlich dieses Programm dafür
nutzen.

Mfg Paul

von Bernd Müller (Gast)


Lesenswert?

Ok, danke.

Werde ich dann so einbauen und austesten.
Wenn es funktioniert berichte ich hier mal davon,
wenn nicht... dann melde ich mich ganz bestimmt wieder...

Erstmal vielen Dank.

Gruß

Bernd

von Paul Baumann (Gast)


Lesenswert?

Ist Recht, Herr Specht :-)

MfG Paul

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.