www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART - ATMEGA128 int. Oszilator


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann stells doch mal auf 300Baud und schau obs geht.

Wenns dann immer noch nur Zeichensalat gibt, ist was anderes falsch, z.B 
du berechnest die Baudrate für 8MHz, hast aber die CLKDIV Fuse gesetzt 
und damit nur 1MHz...

Autor: winne (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
winne wrote:

> 2,4 KBaud sollten gerade noch gehen vielleicht sogar 4,8 KBd.

Diese Aussage ist Gefährlich.
Nein, nicht wegen Übertragungsfehlern, wegen den 200 Posts mit "Geht / 
Geht nicht / Geht bei mir mit 1MBaud" die jetzt unweigerlich folgen...

Autor: Hannes Jaeger (pnuebergang)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geht manchmal, geht häufig nicht, ist schon tausendmal ausdiskutiert 
worden, ist eine Scheißidee.

Autor: Markus (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist denn F_CPU definiert?

sonst mach mal in über deinem main

#define F_CPU 1000000

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, das wird im makefile gemacht

Autor: Peter Roth (gelb)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie du den Quarz anschaltest siehst du Datenblatt Seite 36.
Welcher Quarz günstig ist siehe Datenblatt Seite 194++

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, danke, dann werde ich mir das mal zu Gemüte führen.

Danke für Eure Geduld.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.