Hallo,
angespornt durch http://messpunkt.org/blog/ mache ich mich derzeit auf den Weg zum Auslesen unserer Stiebel Eltron WPL13 Wärmepumpe mit dem WPMWII(Wärmepumpenmanager II - Das Teil mit dem Ipod Rädchen ) über Can-Bus.
Ich war/bin nicht bereit für den sog. „ISG“ einen Haufen Geld hinzulegen. Und für das dauerhafte Monitoring ist das „optische Kabel“ mit der Stiebel Wartungssoftware leider nicht so recht zu gebrauchen.
Projektinventar:
-
Raspberry PI B+ (3.12.35+)
-
Canberry V1.1.1 (CAN BUS Interface) von „www.industrialberry.com“
mit MCP2515 SPI Controller, MCP2551 Transceiver und ner RTC DS1307Z
Anschluss an Klemme 11 (CAN H) + 12 (CAN L) + 13 (Ground) im Wärmepumpenmanager -
Abschlusswiderstand 120 Ohm am Canberry Anschluss (zwischen CAN H + CAN L)
Lt. Messpunkt.org hat die Stiebel WPL13 eine Bitrate von 20000 (20kBaud).
Leider komme ich da noch irgendwo nicht weiter…
Vielleicht hat da jemand nen Tipp… meine Linux Kenntnisse (vor mind. 12 Jahren - ) sind leider stark eingerostet…
Hier mal ein paar Auszüge aus diversen Befehlen:
Basiskonfigfile:
can-start.sh
#Can
insmod /lib/modules/3.12.35+/kernel/drivers/spi/spi-bcm2708.ko
insmod /lib/modules/3.12.35+/kernel/net/can/can.ko
insmod /lib/modules/3.12.35+/kernel/drivers/net/can/can-dev.ko
insmod /lib/modules/3.12.35+/kernel/net/can/can-raw.ko
insmod /lib/modules/3.12.35+/kernel/net/can/can-bcm.ko
insmod /lib/modules/3.12.35+/extra/spi-config.ko devices=\bus=0:cs=0:modalias=mcp2515:speed=20000:gpioirq=25:pd=20:pds32-0=16000000:pdu32-4=0X2002:force_release
insmod /lib/modules/3.12.35+/kernel/drivers/net/can/mcp251x.ko
ip link set can0 up type can bitrate 20000
#ip link set can0 up
#ifconfig can0
root@raspberrypi:~# ifconfig
can0 Link encap:UNSPEC Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:16 Metrik:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:10
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
root@raspberrypi:~# ip -s -d link show can0
4: can0: mtu 16 qdisc noop state DOWN mode DEFAULT qlen 10
link/can
can state STOPPED restart-ms 0
bitrate 0 sample-point 0.000
tq 0 prop-seg 0 phase-seg1 0 phase-seg2 0 sjw 0
mcp251x: tseg1 3…16 tseg2 2…8 sjw 1…4 brp 1…64 brp-inc 1 clock 8000000
re-started bus-errors arbit-lost error-warn error-pass bus-off 0 0 0 0 0 0
RX: bytes packets errors dropped overrun mcast 0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns 0 0 0 0 0 0
root@raspberrypi:~# dmesg
[37612.050011] mcp251x spi0.0 can0: bit-timing not yet defined
[37612.050051] mcp251x spi0.0: unable to set initial baudrate!
[37612.922276] mcp251x spi0.0: CNF: 0x18 0xb5 0x01
[38041.517179] mcp251x spi0.0: CNF: 0x18 0xb5 0x01
[39925.570499] can: controller area network core (rev 20120528 abi 9)
[39925.570696] NET: Registered protocol family 29
[39925.600354] can: raw protocol (rev 20120528)
[39925.619351] can: broadcast manager protocol (rev 20120528 t)
root@raspberrypi:~# modinfo mcp251x
filename: /lib/modules/3.12.35+/kernel/drivers/net/can/mcp251x.ko
license: GPL v2
description: Microchip 251x CAN driver
author: Chris Elston <celston@katalix.com>, Christian Pellegrin <chripell@evolware.org>
srcversion: CF777FCDDC8E6DB144855BF
alias: spi:mcp2515
alias: spi:mcp2510
depends: can-dev
intree: Y
vermagic: 3.12.35+ preempt mod_unload modversions ARMv6
parm: mcp251x_enable_dma:Enable SPI DMA. Default: 0 (Off) (int)
Was mich wundert:
Im Konfigfile (can-start.sh) setze ich die Bitrate mittels:
ip link set can0 up type can bitrate 20000
unter „ip -s -d link show can0“ zeigt es „Bitrate 0“ an:
can state STOPPED restart-ms 0
bitrate 0 sample-point 0.000
Und unter „dmesg“ zeigt es an:
[37612.050011] mcp251x spi0.0 can0: bit-timing not yet defined
[37612.050051] mcp251x spi0.0: unable to set initial baudrate!
Hat mir hier jemand evtl. einen Tipp?