www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART<->Computer?


Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

mittels der UART-Schnittstelle übertrage ich Daten vom Computer zum
Controller und umgekehrt. Dabei kommt es relativ häufig zu Fehlern.
(Liegt, denke ich, nicht an der Baudrate, denn 9600 bps bei 4MHz hat
eine Fehlerhaüfigkeit von 0,2% laut ATmega8515 Datenblatt.) Gerade bei
kürzeren Telegrammen und am Anfang dieser scheinen diese sich zu
häufen. Ist das so? Muß sich so eine serielle Kommunikation erst einen
Moment "eingewöhnen"? Oder muß ich doch nochmal im Quellcode suchen?

Gruß,

Jörn

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

wenn die 4MHz stimmen (Quarz) sind die 0,2% kein Problem da die RS232
bis zu 2% Taktabweichung erlaubt. du solltest also nochmal im Quellcode
oder im sonstigen Aufbau (wie machst du die Pegelanpassung) suchen.

Matthias

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Pegelanpassung nehme mich mittels eines MAX232 mit 100nF
Kondensatoren.
Vielleicht liegt es tatsächlich irgendwo am Code. Ich werde nochmal
alles genau durchgehen.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Poste ihn doch einfach. Manchmal übersieht man den Fehler auch beim xten
Mal Durchgucken.

Autor: FeeJai (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann aber auch an den 100 nF liegen...

Autor: Martin Jansen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab 1µ genommen, damit tuts...

Autor: Oryx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
wenn ich mich recht entsinne, braucht der normale MAX232 1uF.
Datenblatt kontrollieren. Es gibt auch spezielle Versionen, die kommen
mit 100 nF hin.

Die 0,2 % Abweichung sind kein Problem.

Dein Problem sollte also bei den Kondensatoren oder in Deinem Quellcode
liegen.

Oryx

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

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe vor längerem ein Programm geschrieben das mit dem 16 Bit Timer
LED zum blicken bringt.
Aber ich verstehe das Programm nicht mehr.
In welcher Zeile wird der Timer gestartet?

Gruss

Grillparzer

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ldi temp, 0b00000101
out TCCR1B, temp      ;Vorteiler 1024

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.