Forum: Mikrocontroller und Digitale Elektronik PIC18F ECAN antwortet auf alle IDs


von dilo83 (Gast)


Angehängte Dateien:

Lesenswert?

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

von stefanus (Gast)


Lesenswert?

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).

von stefanus (Gast)


Lesenswert?

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.

von dilo83 (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.