Hallo, ich habe: - einen PIC18LF25K80 mit MPLAB X und XC8-Compiler - den Controller im Mode 1 konfiguriert und - Auto-RTR für den Buffer 0 eingestellt - RX-Filter 1 mit Buffer 0 assoziiert Der Controller antwortet auf die Remote-Request, wenn die Adresse/ID stimmt - soweit alles OK. Allerdings bekomme ich auf jede andere Anfrage (RTR) oder Message die ich auf den Bus schicke immer ein ACK vom Controller - auch wenn die ID vom Filter anders eingestellt ist. Ich vermute, dass dies mit den beiden Buffern RXB0 und RXB1 zu tun hat - weiß aber nicht, wie ich die "ausschalten" kann. Kann mir jemand sagen, wie ich dieses ACK unterbinden kann bzw. was ich falsch oder noch nicht eingestellt habe? MfG, Dirk
Ich dachte bislang, dass ALLE Busteilnehmer ALLE Nachrichten bestätigen sollen, auch die, die für andere adressiert sind. Das ACK kannst du IMHO nur grbauchen, um einen defekten Bus zu erkennen, aber nicht, um die Existenz eines Empfängers festzustelle (wie bei I²C).
Auszug aus Wikipedia: Der Acknowledge-Slot wird verwendet, um den Empfang eines korrekten CAN-Frames zu quittieren. Jeder Empfänger, der keinen Fehler feststellen konnte, setzt einen dominanten Pegel an der Stelle des ACK-Slots und überschreibt somit den rezessiven Pegel des Senders. Im Falle einer negativen Quittung (rezessiver Pegel) muss der fehlererkennende Knoten nach dem ACK-Delimiter ein Error-Flag auflegen, damit erstens der Sender vom Übertragungsfehler in Kenntnis gesetzt wird und zweitens um netzweite Datenkonsistenz sicherzustellen. Wird der rezessive Pegel von einem Empfänger durch einen dominanten überschrieben, kann der Absender jedoch nicht davon ausgehen, dass das Telegramm von allen anderen Empfängern erhalten wurde.
Mhhh, dann hab ich das wohl falsch interpretiert. Dachte, damit quittiert der adressierte Empfänger den korrekten Empfang. So kann man ja nur feststellen, ob überhaupt jemand zuhört. Vielen Dank für die Aufklärung.
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.