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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren