Hallo zusammen, wie der Betreff schon sagt, geht es um die Nutzung des CAN Bus auf dem BeagleBone Black. Die Receiver-Schaltung befindet sich im Anhang. (Es wird der ISO1050 verwendet). An sich funktioniert der CAN Bus ganz gut. Probleme treten nur dann auf, wenn zwischen den einzelnen CAN Frames sehr geringe Verzögerungen eingehalten werden. Aktiviert wurde des CAN Device nach folgender Anleitung: http://www.embedded-things.com/bbb/enable-canbus-on-the-beaglebone-black/ Der Versuchsaufbau ist folgender: Auf der einen Seite befindet sich ein AT90CAN128 Board, welches mit Hilfe der CAN-Library von Fabian Greif (http://www.kreatives-chaos.com/artikel/universelle-can-bibliothek) ununterbrochen CAN Frames versendet. Es werden immer 8 Frames in den Write-Buffer geschrieben, 1ms gewartet und dann wieder 8 Frames... Bitrates bei der dieses Problem festgestellt werden konnte, waren 50000KBit/s oder mehr. Auf der anderen Seite befindet sich das BeagleBone Black welches die Daten entgegennehmen soll. Auf dem Beaglebone läuft ein Ubuntu Precise 12.04 (http://www.armhf.com/index.php/boards/beaglebone-black/#precise). Sowohl am AT90 als auch beim BBB befinden sich Abschlusswiderstände mit 120 Ohm. Ausgelesen werden die Frames mit dem Tool 'candump' vom project can-utils (https://gitorious.org/linux-can/can-utils/source/9c82d462f4251bf0f8292a969d6063e782c42d43:) Das eigentliche Problem ist nun, dass sich das BeagleBone Black nach einer gewissen Zeit einfach aufhängt und dann nurnoch die Möglichkeit bleibt, es per ResetButton wieder neu zu starten. Auffällig ist, dass es sich nur aufhängt, wenn auch mit einer Software wie candump die Daten gelesen werden. Reproduzierbar ist der Fehler nicht wirklich, da es vorkommen kann, dass es 15min zu keinem Zwischenfall kommt und ein anderes Mal bereits nach 5 Sekunden. Falls irgendjemand eine Vermutung hätte, woran ein solches Verhalten liegen könnte, oder eine Idee, wie man weiter vorgehen kann um den Fehler genauer einzugrenzen, wäre ich sehr dankbar :) Viele Grüße L31N
:
Bearbeitet durch User
Ich habe mein Problem inzwischen gelöst. Es hat nicht am CAN oder an den Sockets gelegen, sondern hatte den Ursprung darin, dass der Ausgabestream durch die Ausgabe aller empfangenen Frames schlichtweg überlastet wurde und sich das Linux deshalb hin und wieder einfach aufgehängt hat. Vielen Dank dabei an dr_coolgood, aus dem Forum hier ! Grüße L31N @moderator -- kann als gelöst markiert werden.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.