www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SJA1000 CAN-Controller


Autor: Sting Ray (embedded-world)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Phantomix Ximotnahp (phantomix) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich tippe auf ein nicht eingehaltenes Initialisierungs-Timing

Aber das ist wirklich nur Spekulation...

Autor: Sting Ray (embedded-world)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Joachim P. (yes_i_can)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sting Ray (embedded-world)
Datum:

Bewertung
0 lesenswert
nicht 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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.