Probleme beim RS232-Daten empfangen (Linux)

Gast #1666518
Lesenswert?

Hallo,

ich versuche verzweifelt, über die serielle Schnittstelle Daten von 
einem LPC2378STK Board (Olimex) zu empfangen. Das ganze klappt unter 
Windows mit hyperterm am gleichen Rechner einwandfrei. Habs unter Linux 
schon mit minicom, cat und hterm versucht immer das Gleiche.
kommen sollte :

Uart initialized.
wait for link...linked.

Statt dessen kommt z.B
tializedfor link

oder auch mal andere Teile.

hyperterminal läuft mit 9600 Bd, 8N1, kein Flow Control
Auch in minicom sind hard- und software flow control aus.
Aber ich vermute, es hat damit was zu tun?
Die anderen Parameter in Minicom sind Gleich (9600, 8N1), aber daran 
sollte es ja kaum liegen, ich empfang ja einige Buchstaben korrekt.

Hier mal noch die Ausgabe von "stty -aF /dev/ttyS0":

speed 9600 baud; rows 0; columns 0; line = 0;
intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>; eof = 
<undef>; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = 
<undef>;
stop = <undef>; susp = <undef>; rprnt = <undef>; werase = <undef>; lnext 
= <undef>; flush = <undef>; min = 1; time = 5;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon 
-ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 
bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop 
-echoprt -echoctl -echoke


vielleicht könnt ihr mir ja helfen?

Viele Dank
Markus
Gast #1666580
Lesenswert?

Hi,
danke für die schnelle Antwort.
CR/LF hab ich mir auch schon überlegt, aber ich kann das glaube ich 
durch hterm ziemlich ausschließen. Dort wird mir jedes byte einzeln auch 
als hex usw. angezeigt. Und da kommt genau das gleiche.
Oder gibts irgendwo, tief in den ttySx Einstellungen auch nochmal sowas 
wie CR/LF? Also irgendwie vermute ich ja was mit Flow-Control da einfach 
ein paar Zeichen am Stück unterschlagen werden.

Vielleicht noch jemand eine Idee wo ich nachschauen könnte?

Danke

Markus
#1666585
Lesenswert?

Was sagt denn "setserial -ga /dev/ttyS0"?

Eventuell hat Linux den UART falsch erkannt, und benutzt deshalb den 
FIFO nicht. In diesem Fall kann es helfen, den FIFO-Typ mit setserial 
manuell zu setzen: "setserial /dev/ttyS0 uart 16550A". 16550A sollte bei 
den meisten Rechnern aus diesem Jahrtausend funktionieren, ansonsten mal 
noch andere UART-Typen ausprobieren (siehe setserial-Manpage).

Andreas
Gast #1667375
Lesenswert?

setserial -ga /dev/ttyS0
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
  Baud_base: 115200, close_delay: 50, divisor: 0
  closing_wait: 3000
  Flags: spd_normal skip_test

auch während minicom läuft. Bin aber sehr sicher, da gestern abend auch 
die 9600 gesehen zu haben.
Was mich erstanunt ist, dass hwinfo 2 Serial controller findet, auf 
ttyS0 und ttyS2. Und wenn ich auf ttyS2 mit minicom höre bekomme ich 
auch Daten, allerding nur "?". Die Daten stammen auch irgendwie vom 
Board, kommen nämlich nur wenn ich es anschalte.

Hier mal die 2 controller in hwinfo:


48: None 00.0: 0700 Serial controller (16550)
  [Created at serial.74]
  UDI: /org/freedesktop/Hal/devices/pnp_PNP0501_serial_platform_0
  Unique ID: S_Uw.3fyvFV+mbWD
  Hardware Class: unknown
  Model: "16550A"
  Device: "16550A"
  Device File: /dev/ttyS0
  I/O Ports: 0x3f8-0x3ff (rw)
  IRQ: 4 (509 events)
  Config Status: cfg=new, avail=yes, need=no, active=unknown

49: None 00.2: 0700 Serial controller (16550)
  [Created at serial.74]
  UDI: 
/org/freedesktop/Hal/devices/platform_serial8250_serial_platform_2
  Unique ID: ML+2.3fyvFV+mbWD
  Hardware Class: unknown
  Model: "16550A"
  Device: "16550A"
  Device File: /dev/ttyS2
  I/O Ports: 0x3e8-0x3ef (rw)
  IRQ: 4 (509 events)
  Config Status: cfg=new, avail=yes, need=no, active=unknown

Ein weiteres Phänomen fällt mir gerade ein:
Vor ein paar Wochen hab ich schon mal wild Daten über RS232 an den 
Laptop geschickt. Nach ein paar Sekunden ist dieser dann immer 
heruntergefahren. Werd mal im Bios schauen was da eingestellt ist. Habt 
ihr sonst noch eine Idee?

Vielen Dank und viele Grüße
Markus
(Firma: IMKO GmbH) #1667399
Lesenswert?

Hi Markus,

minicom & hterm zeigen den gleichen Fehler? Dann liegt's eher nicht an
der Software. Ich benutze unter Linux gerne jpnevulator
(http://jpnevulator.snarl.nl/) kannst ja auch mal damit ausprobieren.

Ansonsten könntest Du mal einen USB->RS232 Adapter ausprobieren, um
herauszufinden ob deine serielle Schnittstelle einen Macken hat.

Was für eine Linux Distribution nutzt Du denn?

- Markus
Gast #1667422
Lesenswert?

Ich glaub ich bin dem Fehler jetzt auf der Spur:
Die beiden Seriellen Controller (ttyS2 müsste IR sein) nutzen beide 
IRQ4. In Windows ist aber der IR-Port auf IRQ3. wenn ich das jedoch mit 
setserial umstelle ändert sich nichts, hwinfo zeigt auch immer noch 
beide mit IRQ4 an.
Weiß jemand vielleicht auswendig, wo ich das dauerhaft einstellen kann?

Danke

Grüße Markus

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