USART ATmega8515

Gast #147182
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
Gast #147184
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
Angehängte Dateien:
Gast #147185
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
Gast #147186
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
Gast #147188
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
Angehängte Dateien:

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