www.mikrocontroller.net

Forum: PC-Programmierung /dev/ttyS1 Probleme mit Baudrate


Autor: Michael J. (jogibaer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe da ein Problem, wo ich nicht weiterkomme.

Ich benutze einen AVR Mikrokontroller zum Senden von Daten
auf die serielle Schnittstelle meines Linux PC's.

Zuerst stellte ich im AVR eine Baudrate von 1200 ein, aber unter Linux
bekomme ich per

>cat /dev/ttyS1

keine Daten angezeigt. Die Schnittstelle habe ich mit

>stty 1200 cs8 -parenb -crtscts -echo -F /dev/ttyS1

konfiguriert.
Da auch auf dem Rechner W2K drauf ist, konnte ich feststellen, daß
jedenfalls bei Hyperterminal die Zeichen bei eingestellten 1200 Baud
korrekt ankommen.

Unter Linux ändert sich die Interruptanzahl der Schnittstelle
(grep serial /proc/interrupts), aber es werden keine Zeichen
angezeigt.

Jetzt habe ich die Baudrate des AVR's auf 115000 erhöht, und plötzlich
erhalte ich auch unter Linux die korrekten Zeichen, obwohl die Baudrate
unter Linux per stty immer noch bei 1200 steht .

Wieder Windows gebootet, und unter Hyperterminal sind es auch
115000 Baud, wo die Zeichen korrekt ankommen.

Jetzt habe ich mal unter Linux die Baudrate abgeändert, und schon
funktioniert es nicht mehr -> meine Einstellungen werden anscheinend
übernommen .

Warum muß ich unter Linux 1200 Baud einstellen, damit eine Baudrate von
115000 Baud empfangen wird ????

Der AVR läuft definitiv mit externem Quarz bei 16Mhz.

echt ratlos

Jogibär

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe bei mir unter Linux die Einstellungen für die serielle
folgendermaßen vorgenommen:

stty ospeed 1200 ispeed 1200 -crtscts -parenb cs8 < /dev/ttyS0

Ich weiß nicht ob es einen Unterschied macht die Einstellugnen mittels
der -F Option einzustellen. Bei mir funktioniert es jedenfalls so.
Ob die Einstellungen übernommen wurden kann man sich auch mit:

stty -a < /dev/ttyS0

anzeigen lassen.
Probleme treten auf, wenn noch andere Programme im Hintergrund laufen
die auf die serielle Schnittstelle zugreifen. Das "Mitlauschen"
mittels cat hat bei mir nicht funktioniert.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit dem -F Schalter funktioniert es auch, die hast es nur in der
falschen Reihenfolge benutzt.
Mit:

stty  -F /dev/ttyS1 1200 cs8 -parenb -crtscts -echo

funktioniert die Einstellung der Schnittstelle ebenfalls.

PS:
Eigentlich ist die Standardantwort auf Linuxfragen ja:
RTFM ;-)

Autor: Jogibär (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

weder noch.

Bei meinem Laptop funktioniert es wie gewünscht mit meinen
Einstellungen.
Die Ursache scheint zu sein, daß in meinem PC eine serielle
Schnittstellenkarte eingebaut ist.
Wie ich im Internet gelesen habe, kann es sein, daß diese karte mit
einer anderen Frequenz arbeitet, als es Linux annimmt.
Deshalb muß man irgendwie Linux sagen, welchen Teiler er nehmen soll.
Ich weiß aber nicht, ob dies was mit setserial DIVISOR zu tun hat.

Jogibär

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.