Hallo Zusammen, ich arbeite derzeit mit einem SJA1000 CAN Controller, den ich im BasiCAN betreibe. Leider habe ich immer das Problem, dass nach dem Initialisieren das erste CAN-Telegramm das der SJA1000 empfängt, falsch ankommt. Später gibt es eigenartiger Weise, keine Probleme mehr. Ich habe mein Programm bereits mit mehreren identischen Boards getestet und jedes Mal das selbe Problem mit dem ersten Message gehabt. Hat vielleicht jemand eine Idee, woran das liegen könnte oder wie ich das Problem umgehen kann?
Ich tippe auf ein nicht eingehaltenes Initialisierungs-Timing Aber das ist wirklich nur Spekulation...
Wenn aber die Initialisierung schief geht und in jenen Registern falsche Werte liegen, dürften doch alle CAN-Telegramme falsch ankommen. Bei mir ist es wie gesagt, nur das allererste Telegramm, das nicht stimmt.
Hallo Sting Ray, hast du bedacht, dass am CAN-Bus immer zwei Teilnehmer vorhanden sein müssen? Wenn deine Teilnehmer unterschiedliche Zeiten für den Reset benötigen, ist der Bus für eine gewisse Zeit undefiniert. Das CAN-Telegramm bekommt kein Acknowledge und wird deshalb beim Sender als fehlerhaft gekennzeichnet. Eine Idee ist, versuchsweise ein oder zwei Boards zusätzlich als dauerhafte Teilnehmer mit an den CAN-Bus zu klemmen. Ansonsten hilft auch ein Canalyzer :-) Good luck. Joachim
Hallo Joachim, vielen Dank für Deine Antwort. Sorry, ich hätte zuvor erwähnen sollen, dass ich als zweiten Teilnehmer den CanAlyzer bereits verwende. Ausserdem habe ich den Self Test Mode (STM) eingeschaltet, erwarte also kein Acknowledge. Daran sollte es also eigentlich nicht liegen. Vor ner Stunde etwa habe ich das Problem umgangen. Jetzt lese ich nach der Initialisierung ein Dummy CAN message aus (obwohl eigentlich noch keins empfangen wurde) und verwerfe die Daten. ... UND SIEHE DA: Die 1. CAN Message kommt richtig an!!! Habe es eben auf der Hardware getestet. Wenn das ganze trotzdem noch stabil läuft, werde ich es erst Mal so lassen. Vielen Dank Allen für Ihre Ideen und Posts!
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.