UART - ATMEGA128 int. Oszilator

Gast #810205
Lesenswert?

Hallo Leute,

lacht mich bitte nicht aus, aber ich hab erst angefangen mit den uCs und 
versuche mich ein wenig einzuarbeiten.

Ich habe jetzt einen ATMEGA128 hier und versuche über die serielle 
Schnittstelle Daten zwischen meinem uC und dem PC zu übertragen. 
Geschwindigkeit und dergleichen sind mir derzeit vollkommen egal. Das 
Problem ist, der uC sendet zwar was, aber nur undefinierbare Zeichen. 
Ich denke mal, das liegt daran, dass ich keinen Quarz, sondern den 
internen Oszilator des ATMEGA verwende.

Leider ist die Platine auf der der uC ist fertig aufgebaut.
Meine Frage ist, gibt es eine Möglichkeit oder hat jemand ein Beispiel, 
wie ich das zum Laufen kriege? Wie gesagt, die Geschwindigkeit ist mir 
egal, im Prinzip möchte ich nur Text zwischen uC und PC hin und her 
schicken ...

Danke Markus
Gast #810212
Lesenswert?

Ja das geht.

Du must die Baudrate auf 300 Bd berechnen und in deinem Programm 
einstellen. Dann sollte es auch mit dem internen 1MHz Generator 
funktionieren

2,4 KBaud sollten gerade noch gehen vielleicht sogar 4,8 KBd.
Gast #810228
Lesenswert?

Also,

erst mal danke für die raschen Antworten, aber ich glaub, ich bin 
einfach zu blöd für die Geschichte ...

Ich krieg immer noch Zeichen-Salat ...

Den Oszilator hab ich jetzt auf 1000000 eingestellt, die Baud-Rate auf 
300 und es haut trotzdem nicht hin :o(

Vielleicht liegt es auch daran, dass ich das mit den Fusebits noch nicht 
so ganz durchschaut hab ... oder an meinem Makefile oder so ...

Ich verwende WinAVR ... ich hab mal eine Zip-Datei angehängt, welches 
mein Programm sein soll ... vielleicht spinnt auch mein uC???

Vielleicht hat mal jemand kurz Zeit und schaut sich das an, was ich da 
verbrochen hab und kann mir vielleicht ein wenig helfen.

Danke, Markus
Angehängte Dateien:
#810254
Lesenswert?

Du solltest die Clock-Konstante auf die tatsächliche Freuenz deines 
Controller-Exemplars einstellen (vorher messen).

Wenn dann der Baudratenteiler groß genug ist (etwa 100? 600Baud? habe 
die Tabelle nicht da) und damit eine ausreichend feine Abstimmung 
ermöglicht (1%), hast du gewonnen. Die Baudteilerberechnung muss 
natürlich F_CPU benützen...

Grüße, Peter
Gast #810269
Lesenswert?

Das mit dem Messen ist nicht so einfach ... ich hab leider kein 
Messgerät dafür.

Aber so wie ich das verstehe, kann man davon ausgehen, dass das an der 
Taktfrequenz des Controllers liegt?

Wenn ich also einen externen Quarz verwende (vielleicht sogar einen 
Baudratenquarz) dann sollte das funktionieren?

Hat vielleicht jemand von euch einen Schaltplan zur Hand, wie so eine 
Schaltung aussehen könnte? Es geht mir nur um die Grundschaltung, ohne 
die I/O-Pins und so. Welchen Quarz würdet Ihr nehmen, wenn der uC mit 
möglichst 16 MHz laufen sollte?

Danke

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren