Peak USB Probleme beim Senden

This forum covers PCAN-Linux and Linux development issues concerning our products
Post Reply
maggo84
Posts: 2
Joined: Tue 15. Nov 2016, 14:56

Peak USB Probleme beim Senden

Post by maggo84 » Tue 15. Nov 2016, 15:10

Hallo Peak Team,

folgender Aufbau. Auf einem Win 7 Rechner nutze ich eine VirtualBox, auf der Xubuntu läuft, mit der folgenden Kernerlversion.
cat /proc/version_signature
Ubuntu 3.11.0-20.35-generic 3.11.10.6
Nun habe ich eine Applikation unter Qt geschrieben, in der der SocketCAN verwendet wird. Nach dem Start der Applikation setze ich die Bitrate
ip link set can0 type can bitrate 250000
und starte den CAN
ifconfig can0 up
Jetzt kann ich Daten in meiner Applikation senden und empfangen. Nach einer unregelmäßigen Zeit werden keine Daten mehr aus der Applikation gesendet, empfangen werden Daten aber weiterhin.

Folgende Infos kann ich auslesen.
ip -details -statistics link show can0
3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UNKNOWN mode DEFAULT qlen 1000
link/can promiscuity 0
can state ERROR-ACTIVE restart-ms 0
bitrate 250000 sample-point 0.875
tq 250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1
pcan_usb: tseg1 1..16 tseg2 1..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
3262848 407856 0 32096 0 0
TX: bytes packets errors dropped carrier collsns
72528 9066 0 0 0 0
Mich wundert, dass das Empfangen weiterhin funktioniert, das Senden aber nicht. Nun habe ich mal die Gegenstelle auf "stumm" geschaltet, es werden also nur noch Daten aus meiner Applikation gesendet. Dann sendet die Applikation auch ständig Daten. Sobald ich aber die Gegenstelle wieder dazuschalte wird das Senden irgendwann abgebrochen.
Daraufhin habe ich mal den Sendebuffer von 10 auf 1000 erhöht, aber das brachte auch keine Verbesserung. Mir ist klar, dass das Durchschleifen des UBS Ports in die virtuelle Maschine nicht optimal ist. Aber warum gibt es dieses Problem immer nur beim Senden?

Für einen Rat wäre ich dankbar.
Danke im Voraus!

Gruß Marco

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

Re: Peak USB Probleme beim Senden

Post by M.Maidhof » Tue 15. Nov 2016, 15:24

Hi,

bitte mal das ganze auf einem "echten Linux" nachstellen und nicht in einer VM betreiben. Tritt es dort immer noch auf koennen wir gezielt den Fehler suchen. Bitte auch mal das Xubuntu aktualisieren, wenn der SocketCAN Treiber vom Kernel verwendet wird. Optional koennte man auch unseren 8.x Treiber installieren mit der SocketCAN Option. Dieser kann auch mit Debuginformationen compiliert werden, um weitere Infos ueber dmesg zu erhalten. Aber bitte erstmal die VM ausschliessen!

Mit freundlichen Gruessen

Michael Maidhof

maggo84
Posts: 2
Joined: Tue 15. Nov 2016, 14:56

Re: Peak USB Probleme beim Senden

Post by maggo84 » Wed 23. Nov 2016, 13:33

Hallo,

mit der Antwort hatte ich schon gerechnet ;-)
Ich habe nun mal ein "echtes" Linux aufgestezt und kann schon die Bitrate nicht mehr setzen.
sudo ip link set can0 type can bitrate 250000
bringt das Ergebnis
Cannot find device "can0"
Da meine Kenntnisse in Sachen Linux nicht so gut sind, haben sie vielleicht einen Tipp, wie ich den can0 anlegen muss.
Würden Sie es generell vorziehen, dass man den Peak Treiber anstelle des Treibers im Kernel nutzt?

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

Re: Peak USB Probleme beim Senden

Post by M.Maidhof » Wed 23. Nov 2016, 17:45

Hallo,

nun, Sie muessen eine CAN Hardware von PEAK angeschlossen haben und entweder einen aktuellen Kernel mit dem SocketCAN Treiber geladen haben, oder unseren peak-linux-driver-8.x installieren fuer SocketCAN. Wenn Sie die gleiche Distribution wie in Ihrer VM gewaehlt haben, sollte eigentlich alles gleich sein!

Hier mal eine kurze Anleitung fuer ein Debian basiertes Linux:
Um unseren peak-linux Treiber nutzen zu koennen, laden Sie sich diesen bitte von unserer Webseite, entpacken, erstellen und laden Ihn danach: (Voraussetzung: passende Kernel Headers sind installiert!)

sudo apt-get install libpopt-dev
sudo apt-get install g++
wget http://www.peak-system.com/fileadmin/me ... 8.2.tar.gz
tar -xzf peak-linux-driver-8.2.tar.gz
cd peak-linux-driver-8.2
make clean
make NET=NETDEV_SUPPORT
sudo make install
sudo modprobe pcan

Voilà: Sie sollten canX devices mit ifconfig -a oder auch in cat /proc/pcan sehen.

Das ganze steht auch in unserem Treiberhandbuch im pdf Format:
http://www.peak-system.com/fileadmin/me ... an_eng.pdf

Post Reply