[vz-users] Udo Lesekopf und Raspberry PI

Michael Wulz michael.wulz at gmail.com
Thu Jan 2 17:47:36 CET 2014


Hallo Leute,

ich hab eine Frage bezüglich dem Lesekopf von UDO und dem Raspi.

Ich nutze den USB Kopf mit einer Platine, der Kopf funktioniert unter 
Windows mit hterm einwandfrei (300 baud, 7n1, parity even)
Wenn ich die Triggerzeichen sende antwortet der Zähler mit der 
Seriennummer und den Werten.
Mein Zähler ist ein Landis&Gyr, arbeitet aber wie dieser: 
http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/siemens_td3511

Nun zu meinem Problem, wenn ich den Kopf am Raspi anstecke dann wird 
dieser korrekt erkannt:
[232113.932187] usb 1-1.3: new full-speed USB device number 6 using dwc_otg
[232114.041152] usb 1-1.3: New USB device found, idVendor=10c4, 
idProduct=ea60
[232114.041188] usb 1-1.3: New USB device strings: Mfr=1, Product=2, 
SerialNumber=3
[232114.041208] usb 1-1.3: Product: CP2104 USB to UART Bridge Controller
[232114.041224] usb 1-1.3: Manufacturer: Silicon Labs
[232114.041239] usb 1-1.3: SerialNumber: 0061EA6B
[232114.054462] cp210x 1-1.3:1.0: cp210x converter detected
[232114.132234] usb 1-1.3: reset full-speed USB device number 6 using 
dwc_otg
[232114.236155] usb 1-1.3: cp210x converter now attached to ttyUSB0

Er hat das Devicefile /dev/ttyUSB0 bekommen.

Ich setze dann mit stty die Schnittstellenparameter:
stty -F /dev/ttyUSB0 300 parenb -parodd cs7 -cstopb raw -echo

und kontrolle:
root at raspberrypi:~# stty -F /dev/ttyUSB0
speed 300 baud; line = 0;
min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost
-isig -icanon -echo

sollte also passen.

wenn ich nun einen Trigger absende:
root at raspberrypi:~# echo $'\x2f\x3f\x21\x0d\x0a' > /dev/ttyUSB0
und gleich drauf lausche:
root at raspberrypi:~# cat /dev/ttyUSB0

totenstille...

Ich hab auch schon in einer anderen SSH parallell ein cat laufen gehabt 
und dann getriggert. Nichts!

Hatte jemand von euch auch das Problem? Ich mache viel mit Linux und hab 
schon alles mögliche mit stty versucht
jedoch ohne Erfolg.

Tests mit dem Programm:
root at raspberrypi:/data/vz_test# cat test.sh
#!/usr/bin/perl

#
# (m)ein Stromzähler mit IR-Schnittstelle blubbert nach einem "Anforderung-
# telegramm" Daten raus. Das Telegramm ist mit 300 Baud, 7 Bit, 1 Stoppbit
# und gerader Parität zu senden. Das ist der Initialmodus von Geräten,
# die das Protokoll IEC 62056-21 implementieren.
#
# Autor: Andreas Schulze
# Bugfix: Eric Schanze
# Datum: 20120302
#

my $PORT='/dev/ttyUSB0';
my $anforderungstelegramm = "\n/?!\r\n";

use warnings;
use strict;
use utf8;
use Device::SerialPort;

my $tty = new Device::SerialPort($PORT) || die "can't open $PORT: $!";
$tty->baudrate(300)      || die 'fail setting baudrate';
$tty->databits(7)        || die 'fail setting databits';
$tty->stopbits(1)        || die 'fail setting stopbits';
$tty->parity("even")     || die 'fail setting parity';
$tty->write_settings     || die 'fail write settings';
$tty->debug(1);

my $num_out = $tty->write($anforderungstelegramm);
die "write failed\n" unless ($num_out);
die "write inclomplete\n" unless ($num_out == 
length($anforderungstelegramm));
print "$num_out Bytes written\n";

$tty->close || die "can't close $PORT: $!";


sind ebenfalls ohne Erfolg. Es kommt kein Output vom /dev/ttyUSB0.
Ich hatte es einmal geschafft nach einem Reboot den Zähler auszulesen, 
jedoch beim zweiten Trigger war dann schonwieder aus.

Meine Vermutung, dass der USB nicht genügend Power liefert? Hat jemand 
von euch auch am USB Probleme?
Es steckt sonst nix am USB! Am Raspi steckt noch die Erweiterung von UDO 
mit den S0 Eingängen (an der GPIO Pinleiste)
diese: 
http://wiki.volkszaehler.org/hardware/controllers/raspberry_pi_erweiterung_rev1

Die Erweiterung funktioniert übrigens mit s0vz einwandfrei!

Hier die Daten vom Raspi:
root at raspberrypi:~# uname -a
Linux raspberrypi 3.10.25+ #616 PREEMPT Mon Dec 23 18:13:02 GMT 2013 
armv6l GNU/Linux

root at raspberrypi:~# lsmod
Module                  Size  Used by
snd_bcm2835            16165  0
snd_soc_bcm2708_i2s     5474  0
regmap_mmio             2806  1 snd_soc_bcm2708_i2s
snd_soc_core          131268  1 snd_soc_bcm2708_i2s
snd_compress            8076  1 snd_soc_core
cp210x                  8243  0
regmap_i2c              1645  1 snd_soc_core
regmap_spi              1897  1 snd_soc_core
snd_pcm                81593  2 snd_bcm2835,snd_soc_core
snd_page_alloc          5156  1 snd_pcm
snd_seq                53769  0
snd_seq_device          6473  1 snd_seq
snd_timer              20133  2 snd_pcm,snd_seq
usbserial              26929  1 cp210x
leds_gpio               2059  0
led_class               3688  1 leds_gpio
snd                    61291  7 
snd_bcm2835,snd_soc_core,snd_timer,snd_pcm,snd_seq,snd_seq_device,snd_compress

Das Netzteil am Raspi hat +5V und 3A - liefert also auch genügen Saft.

besten Dank im Vorraus
Michael



More information about the volkszaehler-users mailing list