www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Linux console echo TEST > /dev/ttyS0 ich bekomms nicht gelesen Input Bascom


Autor: Christian Z. (christian_z)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich bin am rumspielen mit einem tiny2313 und gebe Daten über RS232 an 
eine linux büchse aus (PHP überwacht die Schnittstelle am Server - 
klappt wunderbar). Mein Tiny soll dann je nach Anfrage auch wieder Daten 
vom Server zurückbekommen (dio_write Funktion in PHP).

Wenn ich einen String aus meinem PHP-Script bzw. über ein "echo TEST > 
/dev/ttyS0" bleibt mein INPUT Befehl (Bascom programmierung) stumm und 
wartet weiterhin auf Daten. Wenn ich jedoch das gleiche mit 
Hyperterminal oder putty an den Tiny sende, reagiert der er und macht 
alles richtig.

CRLF war meine erste Vermutung, aber das juckt das "INPUT" nicht. Es 
gibt wohl noch andere Leute mit dem Problem, aber eine Lösung finde ich 
nicht.

Gibts da eine Lösung ? bin echt am verzweifeln :(

Danke

Christian

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du vor dem echo ..>... vielleicht Baudrate etc. nicht gesetzt?
Die Terminalprogramme machen das natürlich je nach Einstellung.
echo dagegen gibt nur aus.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
echo gibt am Zeilenende Linux/Unix-typisch ein Newline aus (wenn man 
das nicht mit -n unterdrückt).

Möglichweise wartet Input von BASCOM aber auf ein Carriage Return. 
Habe im BASCOM Manual aber nicht nachgesehen, ob das so ist.

Probiere aus der Shell heraus Zeile mit CR am Ende an den µC zu 
schicken:
echo "TEST\r" > /dev/ttyS0

Autor: Christian Z. (christian_z)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

die Baudrate wird im  PHP-Script gesetzt 9600 8N1, auf der Konsole wüsst 
ich nicht wie (bekomm ich aber raus). Deshalb denke ich das sollte 
passen (im PHP-Script). In Bascom ist 9600 gesetzt (stopbit usw. habe 
ich hier nicht fällt mir gerade auf... aber es geht ja mit putty & Co.)

echo "hello\r" > /dev/ttyS0 hilft nichts. Parameter -n macht auch keinen 
Unterschied.

Merkwürdig is, das er 10 sekunden braucht um den Befehl auf der konsole 
auszuführen (das echo). Meine Testumgebung ist eine VM, aber klappt ja 
mit putty.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian Z. schrieb:
> die Baudrate wird im  PHP-Script gesetzt 9600 8N1, auf der Konsole wüsst
> ich nicht wie (bekomm ich aber raus).

stty

Autor: Christian Z. (christian_z)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke,

habe ich versucht, keine Besserung (setserial geht wohl ebenfalls, soll 
simpler sein).

Noch wer eine Idee ? Das muss doch klappen...

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du schon den Windowsrechner mit Nullmodemkabel an den Linuxrechner 
gehängt und nachgesehen, was da gesendet wird?

Du kannst auch mit einem Loopbackstecker arbeiten, wenn du nur den 
Linux-Rechner hast aber zwei serielle Schnittstellen. Quasi eine 
Nullmodemverbindung zwischen beiden Schnittstellen.

Wenn du nicht sicher bist, ob der Linuxrechner überhauot etwas sendet, 
kannst du das physikalisch auf der Leitung überprüfen.

Autor: Christian Z. (christian_z)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ganze spielt sich in zwei virtuellen Rechnern ab. An meinem VM-Host 
(Windows7) hängt der Tiny (auf dem Pollin RFID Board) direkt an einer 
"echten" RS232.

Ich kann direkt von der Linux VM in die Windows VM senden/empfangen. 
folgende Szenarien habe ich versucht jeweils ein einfache Zeichenfolge:

µC > Windows Terminal (Putty) - OK
Windows Terminal > µC - OK

µC > Linux (cat /dev/ttyS0 & PHP dio_read) - OK
Linux (Bsp.: echo "string" > /dev/ttyS0 & PHP dio_write) > µC - Nicht OK

Das machts schwierig zu monitoren.

Autor: Christian Z. (christian_z)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit nem echten Rechner klappts auch nicht... HILFE :-(

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.