CAN-Bus Fehlererkennung

Gast #3772361
Lesenswert?
• ▲
▼
Guten morgen,

für die CAN-Kommunikation verwende ich einen AVR mit MCP2515 und 
Bustreiber.
Am Bustreiber meiner Platine sind 120 Ohm zwischen High und Low, am 
angeschossenen CAN<->USB Gateway (für die Diagnose und Anzeige von 
Telegrammen am PC) ist ebenfalls ein Abschlusswiderstand vorhanden.

Insgesamt funktioniert meine Schaltung und ich kann aus dem AVR Daten 
senden, die am PC sichtbar sind. Wenn ich jetzt aber das USB-Gerät nicht 
mehr mit Spannung versorge (es gibt also nur noch meine Platine auf dem 
Bus), meldet der AVR ein Sende-Timeout.

Es sind weiterhin Abschusswiderstände an beiden Enden, nur mit dem 
Unterschied, dass es nur noch meine Schaltung als Busteilnehmer gibt 
(Ich weiß, in der Praxis würde das ja keinen Sinn machen).

Wodurch wird ein Sendefehler erkannt? Was funktioniert daran nicht?

Wo liegt für meine Schaltung der Unterschied, ob sie alleine zwischen 
zwei Abschlusswiderständen liegt, oder ob es noch einen (rein 
passiven!!!!!) zuhörer gibt?

Wäre über Hilfe sehr dankbar.
#3772380
Lesenswert?
• ▲
▼
Pnubbi schrieb:

> Wo liegt für meine Schaltung der Unterschied, ob sie alleine zwischen
> zwei Abschlusswiderständen liegt, oder ob es noch einen (rein
> passiven!!!!!) zuhörer gibt?

Der Zuhörer ist nicht rein passiv. Das ist der Trick. Es muss mindestens 
einen Teilnehmer geben, der den Empfang des Paketes quittiert.

Wenn der Zuhörer wirklich rein passiv wäre (auch das gibts), dann 
hättest Du die gleichen Probleme wie bei abgeschaltetem Zuhörer.

fchk
Gast #3772431
Lesenswert?
• ▲
▼
Super! Danke für die schnelle Info!!!

Ich habe im CAN-Monitor mal die Funktion für den passiven Controller 
ausprobiert und siehe da - es gibt den gleichen Fehler. Das wusste ich 
noch gar nicht mit dem Ack.

Muss das dann jeder Teilnehmer senden, oder reicht einer, oder macht es 
vielleicht nur einer?

Das Ack muss der CAN-Controller auf jeden Fall selbstständig machen, 
denn wenn ich vom PC aus sende, gibt es bei angeschlossener Platine auch 
keinen Fehler - und ich habe nichts mit Ack programmiert..... ;-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.