Forum: Mikrocontroller und Digitale Elektronik SJA1000 CAN-Controller


von Sting R. (embedded-world)


Lesenswert?

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?

von Phantomix X. (phantomix)


Lesenswert?

Ich tippe auf ein nicht eingehaltenes Initialisierungs-Timing

Aber das ist wirklich nur Spekulation...

von Sting R. (embedded-world)


Lesenswert?

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.

von Joachim P. (yes_i_can)


Lesenswert?

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

von Sting R. (embedded-world)


Lesenswert?

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
Noch kein Account? Hier anmelden.