Forum: Mikrocontroller und Digitale Elektronik USART ATmega8515


von b.steiner (Gast)


Lesenswert?

Fragen von einem Anfänger!

Funktioniert USART mit dem internen Oszi. des AVR oder braucht man
einen Quarz?

Verwende STK 500, ATmega8515

Danke für die Hilfe

von Thomas Burkhardt (Gast)


Lesenswert?

Hi,

die USARTs der AVR sind unabhängig von der Taktquelle verwendbar. Die
Frage ist, ob du die Baudrate die du brauchst erzeugen kannst. Je nach
Taktrate ist es nämlich so, dass übliche Baudraten nur mit großem
Fehler erzeugt werden können. Es gibt jedoch für übliche Taktfrequenzen
auch passende Baudraten. Wenn du also nicht durch die entsprechende
Gegenstelle mit der dein USART kommunizieren soll auf eine bestimmte
Baudrate eingeschränkt bist, dann geht es auch mit internem
Oszillator.

Nebenbemerkung: bei internem Oszi besteht eine größere Abhängigkeit der
Taktfrequenz von Betriebsspannung und Temperatur. Bei großen zu
erwartenden Schwankungen dieser Größen vielleicht doch besser einen
Quarz verwenden...

Grüße

von Rainer (Gast)


Lesenswert?

Und Umgekehrt:Es gibt natürlich auch spezielle Quarz mit Taktraten,
welche bei der Fehlerrate 0% schaffen :D

von b.steiner (Gast)


Angehängte Dateien:

Lesenswert?

hallo zusammen!
Danke für die rasche Antwort.
Dann muß die Übertragung auch mit dem internen takt funktionieren.

Für den atmega8513 interne freq. 3,686 MHz ergibt sich für
UBRRL = 23
UBRRH = 0

AVR prog. - Kabel am STK 500 umgesteckt und nix tut sich am
hyperterminal.
Beim drücken der reset-taste erscheinen manchmal so komische
sonderzeichen.

Bitte um kontrolle - was habe ich falsch gemacht.

Danke - b.steiner

von Rahul (Gast)


Lesenswert?

Benutze lieber solche Programme wie "Comtest" von B&B für
Terminal-Sachen (RS232-Tests).
Da ich eher in C programmiere, kann ich nicht sagen, was an deinem
Programm falsch läuft.Bin mir jetzt auch nicht ganz sicher, ob die von
dir berechnete Zahl für UBBRL richtig ist. Ich lasse sie mir in der
Regel durch ein Makro berechnen.

Gruß Rahul

von Sebastian (Gast)


Lesenswert?

intern hast du doch keine 3,686 Mhz

ich denke du verwechselst da was weil die besagten 3,686 Mhz ist die
max
Frequenz die vom stk generiert wird. Um das zu nutzen mußt du die
fusebits richtig setzen und vielleicht auch noch die passenden jumper
auf dem stk setzten.

intern hat man doch nur 1,2,4,8 Mhz

von b.steiner (Gast)


Lesenswert?

Sebasitan - Danke

mein 8515 war mit 1 MHz unterwegs

von Bernhard (Gast)


Angehängte Dateien:

Lesenswert?

.... hab' gerade das gleiche Problem....

mein ATmega8 mit seinem internen Oszillator läuft auf 1 MHz

(genau auf 997.688 Hz)

Leider lassen sich nur Baud-Raten von 4800, 2400 und 1200 erzeugen.

9600 Bd geht theoretisch und praktisch nicht!!

Du kennst sicherlich die Formel:   oszillator/(16*Baud)-1

Das Ergebnis dieser Formel sollte möglichst ganzzahlig sein, sonnst
stimmen die Bit-Zeiten nicht.

Ich stell Euch mal eine Tabelle zur Verfügung....

Ach noch was, nur so als Tipp.

Der COM port am Pc besitzt eine sogenannte Negativ Logik,
d.h. loghisch 1 sind 0 Volt und logisch 0 sind +5 Volt

von b.steiner (Gast)


Lesenswert?

hallo bernhard

deine tabelle war und ist sehr hilfreich. jetzt ist mir einiges klarer
geworden.

grup b.steiner

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.