mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Übertragungsrate UART


Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich plane, zwei ATMega per UART (und RS-485) kommunizieren zu lassen.
Die ATMega werden je mit 16MHz betrieben, können diese z.B. problemlos 
mit
500000 Baud kommunizieren? Da war doch irgenwas mit "Fehler < x%"...

Mike

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn beide megas mit dem gleichen Quarz laufen kannst dir der Fehler 
ziehmlich egal sein. Sie verstehen sich immer beide. ob es nun 500500 
baud oder 499000 baud sind ist egal.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Steht im Datenblatt.

MfG Spess

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ui, das ging schnell.

Also war das mit dem Fehler nur auf die Komm. mit dem PC bezogen?!

Heißt für meine Anwendung mit dem Max490: Max. Ü-Rate 2,5Mbit (brauche 
ich zwar nicht, würde aber gehen?)

Überträgt der ATMega die Daten im Hintergrund (Puffer wird verwendet) 
oder wird das Programm dafür angehalten?

Danke!

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die ATMega werden je mit 16MHz betrieben, können diese z.B. problemlos
> mit 500000 Baud kommunizieren?

Einfach ausrechnen: UBRRx = F_CPU /16 /BAUD -1 = 1.6e7 /16 /500000 -1 = 
1
Geht also.

> Da war doch irgenwas mit "Fehler < x%"...

Das ist hier unerheblich sofern beide megas die selbe Baudrate erzeugen 
können (und das können sie wenn sie beide mit dem selben Takt betrieben 
werden).

Allerdings solltest Du noch was anderes bedenken: bei 500kBaud (mit 8n1) 
hast Du gerade mal etwa 320 Takte CPU-Zeit pro Datenbyte. Das reicht 
dicke wenn sonst nichts zu tun ist, wird andernfalls aber schnell eng - 
'nur' Daten rüberschieben ist ja eher langweilig, wahrscheinlich soll 
mit denen auch irgendwas angestellt werden..

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@g457: Also, der Plan ist Folgender:

Beide AVR haben einen eigenen 16MHz-Quarz. Beide senden sich gegenseitig 
(alle 2 Sekunden, keine Ahnung) Informationen, diese sollen im Puffer 
des anderen landen. Wenn ein AVR Daten benötigt, liest er den Puffer 
aus. Dabei ist es egal, wenn er mal die Daten nicht abholt und diese 
durch den anderen überschrieben werden.
Wenn einer wieder Daten braucht, liest er die jeweils zuletzt 
empfangenen  aus.

Klappt das so?

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar, sollte klappen.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bedanke mich und wünsche einen schönen Abend!

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.