Forum: Mikrocontroller und Digitale Elektronik USART bei ATMega8 geht nicht


von Philipp (Gast)


Lesenswert?

Hi Leute,

habe ein Problem, bei dem ich einfach nicht weiter weiß und ich hoffe 
sehr, dass jemand von euch eine Idee hat. Ich habe bisher einen 
ATTiny2313 benutzt. Jetzt bin ich auf den ATMega8 umgestiegen aber bei 
dem funktioniert der USART nicht. Ich finde einfach den Fehler nicht, 
weil andere Funktionen gehen, aber beim Senden und Empfangen per USART 
merke ich zwar, dass er sendet, aber es kommt nichts oder zumindest 
nichts verwertbares an. Es ist das gleiche Programm, dass auf dem Tiny 
funktioniert hat. Vielleicht liegt es an den Fuse-Bits, ich habe 
BOOTSZ1, BOOTSZ0, SUT0, CKSEL3, CKSEL2, CKSEL1 programmiert, bei einem 
9,216MHz Quartz. Ich weiß, die Frage ist sehr speziell, aber ich hoffe 
wirklich sehr, dass mir jemand helfen kann, weil ich nämlich schon viel 
Zeit in die Fehlersuche investiert habe.

Danke,
Philipp

von Rahul, der Trollige (Gast)


Lesenswert?

Poste den Code!
... oder guck dir das Beispiel im Datenblatt an.
Hellseher findest du vermutlich unter www.Astroluegie.de

von Philipp (Gast)


Lesenswert?

Na also um mir zu sagen ob die Fuse-Bits richtig gesetzt sind braucht 
man wahrlich kein Hellseher zu sein, sondern nur ein bischen mehr 
Erfahrung und uC Verständnis zu haben als ich. Und das Datenblatt hab 
ich natürlich schon mehrfach zu Rate gezogen. Ich poste hier weil ich 
hoffe, dass es vielleicht jemanden gibt, der ein ähnliches Problem 
hatte, oder dass mich jemand auf einen offensichtlichen Fehler hinweist, 
den man beim ATMega beachten muss. Den Code brauch ich nicht zu posten, 
weil ich ja weiß, dass er beim Tiny funktioniert.

von Rahul, der Trollige (Gast)


Lesenswert?

>BOOTSZ1, BOOTSZ0
Wozu begrenzt du deinen Programmspeicher? Willst du einen Bootloader 
laufen lassen?

>SUT0, CKSEL3, CKSEL2, CKSEL1

Ja...

CKOPT sollte man ab 8MHz vermutlich auch setzen.

Die Seite 25 im Datenblatt dürfte dich interessieren.

von Philipp (Gast)


Lesenswert?

Shit, ich hab die Fuse-Bits abgedruckt, die im Auslieferzustand gesetzt 
waren, ich muss nochmal nachschauen, welche ich jetzt wirklich gesetzt 
habe.

von Philipp (Gast)


Lesenswert?

OK, also meiner Meinung nach ist das einzige Fuse-Bit das programmiert 
sein muss das CKOPT. Kann mir jemand sagen ob das richtig ist?

von Rahul, der Trollige (Gast)


Lesenswert?

Nein! Guck auf Seite 25 mal in die Tabelle!

von Philipp (Gast)


Lesenswert?

Auf Seite 25 ist bei mir keine Tabelle, aber auch die Tabellen auf den 
Seiten danach hab ich schon mindestens 20 mal angeschaut und falls ich 
sie falsch interpretiere, dann hilft es mir auch nichts, wenn ich sie 
nochmal anschau. Also entweder sagt mir jemand wie ich es richtig machen 
muss oder es muss halt falsch bleiben.

von Rahul, der Trollige (Gast)


Lesenswert?

Du hast einen ATMega8 und den "Complete Datasheet"?
http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

von Michael U. (Gast)


Lesenswert?

Hallo,

ich setze meist SUT0 auf 0 (bei Ponyprog also mit Haken), mehr Zeit zum 
stabilisieren des Taktes.
CKOPT mußte ich bisher selbst mit 16MHz auf dem Steckbrett noch nie 
setzen.

Ansonsten sind CKSEL0...3 auf 1 gesetzt, bei Ponyprog also ohne Haken.

Gruß aus Berlin
Michael

von Philipp (Gast)


Lesenswert?

Es hilft alles nichts, so ein Mist, es geht nicht!

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.