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.
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
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..... ;-)
Pnubbi schrieb: > Muss das dann jeder Teilnehmer senden, oder reicht einer, oder macht es > vielleicht nur einer? Jeder Teilnehmer sendet das. > Das Ack muss der CAN-Controller auf jeden Fall selbstständig machen, genau. Ist in der Hardware drin.
Alle zuhörenden CAN Controller senden gleichzeitig ein Ack, wenn sie das Telegramm fehlerfrei empfangen konnten. Ansonsten senden sie ein Error Frame.
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.