Forum: Mikrocontroller und Digitale Elektronik uCLinix wie ausgabe von serieller Schnittstelle


von Jabber W. (jabber)


Lesenswert?

Hallo,

ich habe hier eine Platine bekommen die ich Prüfen soll.
Darauf läuft ein uClinux. Ich kann auch per Terminal (lan und seriell)
drauf zugreifen und alles möglich machen, nur weiß ich nicht wie. Um die 
Funktionalität von Lan und Seriell zu testen, würde ich gern per Lan 
einloggen und über die serielle Schnittstelle etwas an den dem PC 
schicken.

Weiß jemand wie ich da eine serielle Ausgabe erzeugen kann?

Außerdem wäre es auch nicht schlecht wenn es eine Möglichkeit gäbe 
einzelne Portpins schalten zu können. Aber ich weiß nicht ob das Linux 
das überhaupt zulässt.

Wäre nett wenn mir da jemand ein paar Tipps geben könnte.
Z.B. eine befehlsübersicht des uCLinux oder so.

mfg

Jabberwock

von Dominique G. (dgoersch)


Lesenswert?

Kenne nun "dein" Linux nicht, aber gewöhntlich stellt man unter Linux 
mit "stty" die Schnittstellenparameter ein und kann dann einfach mit 
"echo" auf das Device (/dev/ttyS0) ausgeben.

Gruß
Dominique Görsch

von Jabber W. (jabber)


Lesenswert?

ahso, das werde ich mal teste. Ich kenne Linux algemein nicht besonders 
gut.
die einstellungen müssten ja passen da ein ja auch von Hyperterminal aus 
connecten kann... bzw. kenne ich die Einstellungen und bräuchte quasi 
nur noch senden.

Danke

von Dominique G. (dgoersch)


Lesenswert?

Dann sollte ein einfaches echo auf das Device(-File) funktionieren.

von Jabber W. (jabber)


Lesenswert?

habe es grade ausprobiert aber das tut sich nichts...
wenn ich stty eingebe ist die Ausgabe

speed 9600 baud; line = 0;
-brkint -imaxbel

wenn ich denn

echo hallo /dev/tty0 eingebe ist die ausgabe
hallo /dev/tty0

das echo scheint er zu erkenn da es dann weg ist und es kommt auch kein 
fehler, er macht was aber die ausgabe kommt auf jeden fall nicht am PC 
an.

Komisch ist auch, wenn die Platine startet gib sie über die Serielle ein 
Protokoll aus.
Um das zu empfangen muss ich 115200 baud 8N1 im Hyperterm einstellen.
Wenn ich dann nach dem start mich einlogge und stty eingebe steht da 
9600 baud.

von Mathi (Gast)


Lesenswert?

Versuch mal
echo hallo > /dev/tty0

von Jabber W. (jabber)


Lesenswert?

ja ist mir auch grade aufgefall als ich es an einem LinuxPC veruscht 
hatte. Da hängt zwar nichts an der Schnittstell dran aber er hat jetzt 
auf jeden fall schon mal das ganze kommando verschlungen und die ausgabe 
ist leer. Denke so sollte es klappen. Werde gelich mal an die platine 
laufen.

Dankeschön für eure Hilfe.

von Dominique G. (dgoersch)


Lesenswert?

ttyS0 nicht tty0
also: echo "Foo Bar" >/dev/ttyS0

Wegen stty: wenn du nur stty eingibst, bekommst du die Parameter der 
aktuellen Konsole, die normale (nicht-serielle) Konsole läuft oft mit 
9600 Baud, bei meinem Debian sind es 38400 Baud über SSH:

,---
| # stty
| speed 38400 baud; line = 0;
| -brkint -imaxbel
`---

Gib mal die Schnittstelle an, um die es geht:
,---
| # stty -F /dev/ttyS0
| speed 19200 baud; line = 0;
| intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>; eof =
| <undef>;
| start = <undef>; stop = <undef>; susp = <undef>; rprnt = <undef>;
| werase = <undef>; lnext = <undef>; flush = <undef>; min = 0; time = 0;
| -brkint -icrnl -imaxbel
| -opost -onlcr
| -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
`---

von Jabber W. (jabber)


Lesenswert?

achso, na dann ist klar. Ich war ja auch über SSH drauf.
Aber es klappt jetzt.

Gibt es jetzt noch ne Möglichkeit mit Linuxbefehlen ein Portpin zu 
schalten oder abzufragen?

mfg
Florian

von Dominique G. (dgoersch)


Lesenswert?

Da bin ich überfragt. Ich arbeite zwar seit einigen Jahren mit Linux, 
aber nur auf dem PC und ein paar embedded Devices (Router, Access 
Points, ...), aber wie man unter Linux die µC anspricht, weiß ich nicht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.