Raspberry mit USB PCAN

This forum covers PCAN-Linux and Linux development issues concerning our products
Bertl
Posts: 14
Joined: Tue 21. Aug 2018, 09:51

Re: Raspberry mit USB PCAN

Post by Bertl » Sun 2. Sep 2018, 14:05

HAllo,

nach Eingabe von
receivetest -f=/dev/pcan32 -b=0x432F

receivetest Version "Release_20150611_n" (http://www.peak-system.com)
------- Copyright (C) 2004-2009 PEAK System-Technik GmbH ------
receivetest comes with ABSOLUTELY NO WARRANTY. This is free
software and you are welcome to redistribute it under certain
conditions. For details see attached COPYING file.

receivetest: device node="/dev/pcan32"
Only standard frames are accepted, init with BTR0BTR1=0x432f
receivetest: driver version = Release_20180720_n
2586198791.989 receivetest: m s 0x00000001 4 00 00 00 00
receivetest: pending CAN status 0x0020 read.
2586199019.769 receivetest: m s 0x00000742 3 15 00 f8
...
^Creceivetest: type = usb
Serial Number = 0xffffffff
Device Number = 1
count of reads = 79
count of writes = 0
count of errors = 0
count of irqs = 129
last CAN status = 0x0020
last error = 0
open paths = 1
driver version = Release_20180720_n
receivetest: finished (0): 79 message(s) received

Gruß
Bertl

M.Maidhof
Support
Support
Posts: 1751
Joined: Wed 22. Sep 2010, 14:00

Re: Raspberry mit USB PCAN

Post by M.Maidhof » Mon 3. Sep 2018, 09:48

Hallo,

sieht gut aus, Sie empfangen Daten mit receivetest auf 100k. Wenn Sie die default Baudrate von 100k fest einstellen wollen, koennen Sie dies auch ueber die Datei /etc/modprobe.d/pcan.conf machen (wie im Treiberhandbuch beschrieben):

- zuerst Treiber entladen:
sudo rmmod pcan
- Datei editieren:
sudo nano /etc/modprobe.d/pcan.conf
- in die unterste Zeile folgendes einfuegen:
options pcan bitrate=0x432F
- mit CTR-O speichern, mit CTR-X beenden
Treiber mit neuer config erneut laden
sudo modprobe pcan
cat /proc/pcan sollte nun die neue Defaultbaudrate anzeigen.

Gruss

Michael Maidhof

Bertl
Posts: 14
Joined: Tue 21. Aug 2018, 09:51

Re: Raspberry mit USB PCAN

Post by Bertl » Sun 16. Sep 2018, 09:24

Hallo,

danke für die Info.
Die 100k habe ich wie sie beschrieben haben durchgeführt.
pi@raspberrypi:~ $ sudo rmmod pcan
pi@raspberrypi:~ $ sudo nano /etc/modprobe.d/pcan.conf
pi@raspberrypi:~ $ sudo modprobe pcan
pi@raspberrypi:~ $ tree /dev/pcan-usb
/dev/pcan-usb
├── 0
│   └── can0 -> ../../pcanusb32
└── devid=1 -> ../pcanusb32

1 directory, 2 files
pi@raspberrypi:~ $ cat /proc/pcan

*------------- PEAK-System CAN interfaces (http://www.peak-system.com) -------------
*------------- Release_20180720_n (8.6.0) Aug 26 2018 11:41:25 --------------
*------------------------------- [mod] [usb] --------------------------------
*--------------------- 1 interfaces @ major 242 found -----------------------
*n -type- -ndev- --base-- irq --btr- --read-- --write- --irqs-- -errors- status
32 usb -NA- ffffffff 001 0x432f 00000000 00000000 00000000 00000000 0x0000
pi@raspberrypi:~ $ candump -tA any
^Cpi@raspberrypi:~ $

Leider tut sich bei Eingabe von candump noch immer nichts.
Woran könnte es liegen?
Gruß
Bertl

M.Maidhof
Support
Support
Posts: 1751
Joined: Wed 22. Sep 2010, 14:00

Re: Raspberry mit USB PCAN

Post by M.Maidhof » Mon 17. Sep 2018, 10:34

Hallo,

candump ist ein SocketCAN Tool und wird per ip link set konfiguriert. Sie haben den Treiber aber als chardev erstellt. Sehen Sie dazu eine meiner ersten Fragen in diesem Thread, welche Treiberversion Sie denn nutzen wollen.
Weitere Details zum Erstellen eines Netdev Treibers finden Sie im Handbuch des Treibers.

Gruss

Michael Maidhof

Bertl
Posts: 14
Joined: Tue 21. Aug 2018, 09:51

Re: Raspberry mit USB PCAN

Post by Bertl » Mon 17. Sep 2018, 10:48

Hallo,

so wie es aussieht habe ich den Treiber als chardev erstellt.
Ok.
D.h. ich muss den Netdev runterladen oder neu konfigurieren?

Gruß
Bertl

M.Maidhof
Support
Support
Posts: 1751
Joined: Wed 22. Sep 2010, 14:00

Re: Raspberry mit USB PCAN

Post by M.Maidhof » Mon 17. Sep 2018, 17:18

ja, neu erstellen, wie im Handbuch beschrieben.

Gruss

Michael Maidhof

LouBen3010
Posts: 9
Joined: Tue 18. Sep 2018, 11:14

Re: Raspberry mit USB PCAN

Post by LouBen3010 » Tue 18. Sep 2018, 11:17

Hallo alle zusammen,

ich versuche ebenfalls für den Kernel 4.9.35-rt25-v7+ mit dem Echtzeit-Patch den Peak Treiber zu installieren.
Auf einem Intel NUC klappt der Peak Adapter via Plug & Play, aber beim Pi wird es hakelig.

Folgendes habe ich getan:
1. rpi-source
( Download von Peak 8.1 etc.)
2. make PCI=NO PCIEC=NO PCC=NO DNG=NO PAR=NO ISA=NO
3. sudo make install
4. sudo modprobe pcan

Und dort erscheint ein Fehler "exec format error" und "could not install pcan".

Fällt Ihnen hier zufällig ein Fehler auf?

Liebe Grüße!

M.Maidhof
Support
Support
Posts: 1751
Joined: Wed 22. Sep 2010, 14:00

Re: Raspberry mit USB PCAN

Post by M.Maidhof » Tue 18. Sep 2018, 12:41

Hallo,

bitte den 8.6er Treiber verwenden, und die Ausgabe des make bzw. make install Prozesses hier posten.

Gruss

Michael Maidhof

LouBen3010
Posts: 9
Joined: Tue 18. Sep 2018, 11:14

Re: Raspberry mit USB PCAN

Post by LouBen3010 » Tue 18. Sep 2018, 13:28

Make:

Code: Select all

make[1]: Entering directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver'
make[1]: Nothing to be done for 'depend'.
make[1]: Leaving directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver'
make[1]: Entering directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver'
***
*** Host machine kernel version=4.9.35-rt25-v7+
*** Driver kernel version=4.9.35-v7+ (4.9.35)
*** Path to kernel sources=/lib/modules/4.9.35-rt25-v7+/build
*** use KBUILD=yes
*** cc version=4.9.2
***
make -C /lib/modules/4.9.35-rt25-v7+/build  SUBDIRS=/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver        EXTRA_CFLAGS="-I/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver        -DNO_DEBUG -DMODVERSIONS -DNO -DUSB_SUPPORT -DNO -DNO -DNO -DNO -DNO -DNO_NETDEV_SUPPORT -DNO_RT  -Wno-date-time" V=0 modules
make[2]: Entering directory '/home/pi/kernel/linux-be2540e540f5442d7b372208787fb64100af0c54'
  CC [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_main.o
  CC [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_fops.o
  CC [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_fifo.o
  CC [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_filter.o
  CC [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_parse.o
  CC [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_sja1000.o
  CC [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_common.o
  CC [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_timing.o
  CC [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcanfd_core.o
  CC [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcanfd_ucan.o
  CC [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_usb_core.o
  CC [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_usb.o
  CC [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcan_usbpro.o
  CC [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/src/pcanfd_usb.o
  LD [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/pcan.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/pcan.mod.o
  LD [M]  /home/pi/Prerequisites/peak-linux-driver-8.6.0/driver/pcan.ko
make[2]: Leaving directory '/home/pi/kernel/linux-be2540e540f5442d7b372208787fb64100af0c54'
make[1]: Leaving directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver'
make[1]: Entering directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/lib'
cc -DNO_RT -I. -I../driver -fPIC -Wall -Wcast-align -Wredundant-decls  -DPCANFD_OLD_STYLE_API -c src/libpcan.c -o obj/libpcan.o
cc -shared -Wl,-soname,libpcan.so.0 -o lib/libpcan.so.0.6 obj/libpcan.o 
cd lib/; ln -sf libpcan.so.0.6 libpcan.so
cc -DNO_RT -I. -I../driver -fPIC -Wall -Wcast-align -Wredundant-decls  -DPCANFD_OLD_STYLE_API -c src/libpcanfd.c -o obj/libpcanfd.o
cc -shared -Wl,-soname,libpcanfd.so.0 -o lib/libpcanfd.so.0.1 obj/libpcanfd.o 
cd lib/; ln -sf libpcanfd.so.0.1 libpcanfd.so
ar rcs lib/libpcanfd.a obj/libpcanfd.o
make[1]: Leaving directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/lib'
make[1]: Entering directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/test'
cc -DNO_RT -g -I. -I../lib -I../driver    src/receivetest.c src/common.c -lpcanfd  -L../lib/lib   -o receivetest
cc -DNO_RT -g -I. -I../lib -I../driver    src/transmitest.cpp src/common.c src/parser.cpp -lpcanfd -lstdc++  -L../lib/lib   -o transmitest
cc -DNO_RT -g -I. -I../lib -I../driver    src/bitratetest.c src/common.c -lpcanfd  -L../lib/lib   -o bitratetest
cc -DNO_RT -g -I. -I../lib -I../driver    src/filtertest.cpp src/common.c -lpcanfd -lstdc++  -L../lib/lib   -o filtertest
cc -DNO_RT -g -I. -I../lib -I../driver    src/pcanfdtst.c -lpcanfd  -L../lib/lib   -o pcanfdtst
cc -DNO_RT -g -I. -I../lib -I../driver    src/pcan-settings.c -lpopt  -L../lib/lib   -g -o pcan-settings
make[1]: Leaving directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/test'
Install:

Code: Select all

pi@raspberrypi:~/Prerequisites/peak-linux-driver-8.6.0 $ sudo make install
make[1]: Entering directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver'
Info: /lib/modules/4.9.35-v7+/misc exists.
Info: Left current 'pcan'-entry in /etc/modprobe.d/pcan.conf untouched.
Info: Copied 45-pcan.rules to /etc/udev/rules.d.
Info: mainline drivers removed and blacklisted in
      /etc/modprobe.d/blacklist-peak.conf
make[1]: Leaving directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/driver'
make[1]: Entering directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/lib'
mkdir -p /usr/lib
cp -d lib/* /usr/lib
if [ -d lib32 ]; then \
	mkdir -p /usr/lib32; \
	cp -d lib32/* /usr/lib32; \
fi
mkdir -p /usr/include
chmod 644 libpcan.h libpcanfd.h
cp libpcan.h libpcanfd.h /usr/include
/sbin/ldconfig
make[1]: Leaving directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/lib'
make[1]: Entering directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/test'
cp receivetest transmitest bitratetest filtertest pcanfdtst pcan-settings /usr/local/bin
make[1]: Leaving directory '/home/pi/Prerequisites/peak-linux-driver-8.6.0/test'
Danke für die schnelle Hilfe.
Wofür braucht man in diesem Kontext eigentlich netdev bzw. chardev?
Ich möchte z.B. einfach nur die Bytes der Nachrichten auslesen via SocketCAN.

Liebe Grüße!

M.Maidhof
Support
Support
Posts: 1751
Joined: Wed 22. Sep 2010, 14:00

Re: Raspberry mit USB PCAN

Post by M.Maidhof » Tue 18. Sep 2018, 13:40

Hallo,

Sie haben erfolgreich den chardev Treiber erstellt, wenn Sie mit SocketCAN arbeiten moechten, so muessen Sie den Treiber nochmals als SocketCAN Treiber neu erstellen. Wie schon so oft in diesem Thread erwaehnt, finden sich alle infos zum Chardev und SocketCAN Treiber, und wie man den jeweiligen Treiber erstellt im pdf Handbuch des Treibers.

Gruss

Michael Maidhof

Post Reply