You are not logged in.

Anzeigen

**Wir werden in den kommenden Tagen einen Umzug auf einen neuen Server durchführen. Im Rahmen dieser Maßnahme wird das Forum ca. 1 Stunde nicht erreichbar sein.** nslu2-info.de ist ein privates Projekt von mir, welches jeden Monat aus eigener Tasche finanziert wird. Mit einer freiwilligen Spende wird der Erhalt und der weitere Ausbau dieses Forums unterstützt. Um mich beim Erhalt des Forums zu unterstützen, kannst Du entweder via Flattr oder Paypal spenden. Ich bedanke mich schon jetzt bei allen Unterstützern.

Dear visitor, welcome to Die NSLU2 Community****wenns ums speichern und streamen geht****. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Thursday, January 28th 2010, 5:29pm

Verbindung der NSLU2 (mittels picocom, minicom o.ä.) über einen USB-RS232-Adapter mit einer seriellen Schnittstelle (RS232)

Hallo,

kann mir jemand bitte ein paar Tipps geben, wie ich mit meiner NSLU2 und picocom, minicom o.ä. eine Verbindung zur seriellen Schnittstelle meiner Heizung herstelle?

Die Verbidungsparameter lauten: 9600, 8N1. Aber bei z.B. picocom kommt nach "Terminal ready" nichts mehr. Was muss ich tun?

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root@nslu ~ $ picocom --b 9600 /dev/ttyUSB0
picocom v1.4

port is    	: /dev/ttyUSB0
flowcontrol	: none
baudrate is	: 9600
parity is  	: none
databits are   : 8
escape is  	: C-a
noinit is  	: no
noreset is 	: no
nolock is  	: no
send_cmd is	: ascii_xfr -s -v -l10
receive_cmd is : rz -vv

Terminal ready

Ich weiß, dass das Senden des Hex-Codes 02 mit dem Hex-Code 10 als Antwort quittiert werden müsste.
Aber wie sende ich einen Hex-Code mittels picocom o.ä. Tools rüber?

Ich weiß, dass die Verkabelung unter Windows (mittels COM-Port und Software des Heizungsherstellers) mit meinem USB-RS232-Adapter funktioniert (pl2303 oder ftdi_sio als Alternativen). Aber das sollte auch von der NSLU2 aus klappen.

Die für einen der beiden Adapter nötigen Kernel-Module (ftdi_sio, pl2303) sind geladen:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
root@nslu ~ $ cat /proc/modules 
appletalk 30216 20 - Live 0xbf1a8000
nfsd 227964 17 - Live 0xbf16f000
auth_rpcgss 40356 1 nfsd, Live 0xbf164000
exportfs 4064 1 nfsd, Live 0xbf162000
nfs 264848 0 - Live 0xbf120000
lockd 68564 2 nfsd,nfs, Live 0xbf10e000
nfs_acl 3328 2 nfsd,nfs, Live 0xbf09b000
sunrpc 196248 13 nfsd,auth_rpcgss,nfs,lockd,nfs_acl, Live 0xbf0dd000
ext2 63752 1 - Live 0xbf0cc000
pl2303 16676 0 - Live 0xbf0c6000
evdev 8672 0 - Live 0xbf0c2000
ftdi_sio 47464 1 - Live 0xbf0b5000
usbserial 30860 4 pl2303,ftdi_sio, Live 0xbf0ac000
ixp4xx_eth 12280 0 - Live 0xbf0a8000
ixp4xx_npe 8000 2 ixp4xx_eth, Live 0xbf0a5000
firmware_class 7648 1 ixp4xx_npe, Live 0xbf0a2000
ixp4xx_qmgr 5272 6 ixp4xx_eth, Live 0xbf09f000
ixp4xx_beeper 2816 0 - Live 0xbf09d000
ohci_hcd 18276 0 - Live 0xbf095000
ext3 123688 3 - Live 0xbf075000
jbd 45460 1 ext3, Live 0xbf068000
mbcache 7968 2 ext2,ext3, Live 0xbf065000
sd_mod 22736 8 - Live 0xbf05e000
ehci_hcd 35212 0 - Live 0xbf054000
usb_storage 83559 5 - Live 0xbf03e000
usbcore 128828 7 pl2303,ftdi_sio,usbserial,ohci_hcd,ehci_hcd,usb_storage, Live 0xbf01d000
scsi_mod 111300 2 sd_mod,usb_storage, Live 0xbf000000


Das Device müsste /dev/ttyUSB0 sein:

Source code

1
2
3
4
5
root@nslu ~ $ dmesg | grep tty
[42949377.250000] serial8250.0: ttyS0 at MMIO 0xc8000000 (irq = 15) is a XScale
[42949377.250000] console [ttyS0] enabled
[42949377.590000] serial8250.0: ttyS1 at MMIO 0xc8001000 (irq = 13) is a XScale
[42949406.140000] usb 1-2.1: FTDI USB Serial Device converter now attached to ttyUSB0


Herzlichen Dank für Eure Hilfe!
Gruß, ao

NSLU2 (Debian/NSLU2 (armel) 5.0.3 Stable Release, 263.78 BogoMIPS)
Apple MacBook C2D (OS X 10.5, Ubuntu 8.04, Windows XP)

Anzeigen

warti

Forensupporter

Posts: 244

wcf.user.option.userOption68: NSLU2

wcf.user.option.userOption65: Debian

  • Send private message

2

Thursday, January 28th 2010, 7:35pm

Hallo,

ich hab auch immer Probleme mit der seriellen Schnittstelle. Wenn gar keine Zeichen (auch kein "Zeichenbrei") übertragen werden liegt es oft daran, dass tx und rx vertauscht werden müssen.

Wobei ich nie verstanden haben, wann es nötig ist, ein Kabel zu "kreuzen". Es gibt mMn Serielle Verlängerungen (1:1) und Nullmodemkabel (gekreuzt). Wann welche nötig sind hängt von der Gegenstelle ab.

Viel Erfolg.
Werner

Anzeigen

3

Friday, January 29th 2010, 7:13am

Hallo Werner,

meine Verkabelung orientiert sich an dem, was hier beschrieben wird. Ich verwende also kein echtes serielles Kabel, sondern ein Kabel mit 3 Adern, das ich gemäß o.g. Link an eine 9-polige RS232-Schnittstelle gelötet habe. Die steckt auf dem RS232-USB-Adapter, und der hängt an der NSLU2. Statserial meldet zu den Pins folgendes:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
root@nslu / $ statserial /dev/ttyUSB0

Device: /dev/ttyUSB0

Signal  Pin  Pin  Direction  Status  Full
Name    (25) (9)  (computer)         Name
-----   ---  ---  ---------  ------  -----
FG       1    -      -           -   Frame Ground
TxD      2    3      out         -   Transmit Data
RxD      3    2      in          -   Receive  Data
RTS      4    7      out         1   Request To Send
CTS      5    8      in          0   Clear To Send
DSR      6    6      in          0   Data Set Ready
GND      7    5      -           -   Signal Ground
DCD      8    1      in          0   Data Carrier Detect
DTR     20    4      out         1   Data Terminal Ready
RI      22    9      in          0   Ring Indicator


Wenn ich die Verkabelung verändere, funktioniert die Verbindung aber unter Windows nicht mehr.

Source code

1
2
root@nslu ~ $ setserial -g /dev/ttyUSB0
/dev/ttyUSB0, UART: unknown, Port: 0x0000, IRQ: 0, Flags: low_latency

Kennst Du Dich denn mit einem Linux-Programm (picocom, minicom o.ä.) aus, mit dem man die serielle Schnittstelle anspricht/ abfragt?
Ich wüsste jetzt nicht einmal, was ich tun muss, damit das Tool die Initialisierung startet. Ich weiß nur, dass dazu der Hex-Code 02 gesendet werden muss (das erwartet die Heizung am anderen Ende), der dann mit dem Hex-Code 10 beantwortet werden soll. Aber wie ich einen Hex-Code schicke, habe ich auch nach intensivem Suchen leider nicht herausgefunden.
Gruß, ao

NSLU2 (Debian/NSLU2 (armel) 5.0.3 Stable Release, 263.78 BogoMIPS)
Apple MacBook C2D (OS X 10.5, Ubuntu 8.04, Windows XP)

This post has been edited 4 times, last edit by "ao" (Jan 29th 2010, 7:51am)


warti

Forensupporter

Posts: 244

wcf.user.option.userOption68: NSLU2

wcf.user.option.userOption65: Debian

  • Send private message

4

Friday, January 29th 2010, 8:10am

Guten Morgen!

Quoted

... kein echtes serielles Kabel ...
Ich glaube drei Adern sind die minimale Ausprägung einer seriellen Schnittstelle (GND, TX, RX). Wenn es unter Windows mit dem selben USB-SER-Adapter funktioniert, sollte die Verkabelung korrekt sein.

Werte auf die serielle Schnittstelle kannst Du zum zB. so schicken:

Source code

1
echo 2 > /dev/ttyUSB0


Dies sollte eine "2" auf die Reise schicken... (2 Entspricht auch hex. einer 2)...

Mit Picocom/Minicom kenne ich mich nicht so gut aus, aber die Eingabe einer "2" (Taste "2" drücken) schickt mMn das Kommando an die Heizung.

MfG
Werner

Similar threads

Used tags

minicom, picocom, RS232, seriell, USB

Social bookmarks