Linux console echo TEST > /dev/ttyS0 ich bekomms nicht gelesen Input Bascom

#1910477
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
#1910510
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.
Persönliche Seite #1910658
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.
#1910682
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.

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