mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MCP2515 und Filter


Autor: Lars K. (larsk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe ein kleines Problem mit meinem CAN-Bus. Vielleicht kann mir ja 
jemand den nötigen Denkanstoss geben.
Also, der Bus läuft soweit und die Nachrichten werden auch übermittelt. 
Nun will ich aber nur bestimmte Nachrichten empfangen und die Filter des 
MCP2515 setzen.

Dazu habe ich folgendes gemacht:

    // Buffer 0 : Nur 29 Bit Identifier zulassen und filtern
    mcp2515_write_register( RXB0CTRL, (1<<RXM1));

    // Buffer 1 : Nur 29 Bit Identifier zulassen und filtern
    mcp2515_write_register( RXB1CTRL, (1<<RXM1));

    //Filter
    mcp2515_write_register( RXF0SIDH, 0b11110111);
    mcp2515_write_register( RXF0SIDL, 0b00000000);
    mcp2515_write_register( RXF0EID8, 0b00000000);
    mcp2515_write_register( RXF0EID0, 0b00000000);

    //Maske
    mcp2515_write_register( RXM0SIDH, 0b11111111);
    mcp2515_write_register( RXM0SIDL, 0b00000000);
    mcp2515_write_register( RXM0EID8, 0b00000000);
    mcp2515_write_register( RXM0EID0, 0b00000000);

Wenn ich das Datenblatt richtig verstanden habe, dann müsste doch nun 
alles akzeptiert werden, wo die obersten 8bit 11110111 sind und der Rest 
ist egal.
Leider akzeptiert der aber irgendwie nix mehr.

Gruß

Lars

Autor: Thomas Forster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>    mcp2515_write_register( RXF0SIDL, 0b00000000);

Musst du hier nicht das Bit EXIDE setzen, wenn du 29-Bit ID verwendest?

Thomas

Autor: Lars K. (larsk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

da könntest Du natürlich recht haben, ich wusste das ich wahrscheinlich 
irgendeine Kleinigkeit übersehen habe. Das werde ich gleich heute Abend 
mal ausprobieren.

Ich bin eigentlich davon ausgegangen, dass er das EXIDE bit ignoriert, 
da das Maskenbit an der stelle auf 0 steht. Wenn der MCP2515 dennoch an 
dem EXIDE Bit festlegt, ob es ein 11 oder 29bit Filter ist, dann wird er 
das sicherlich brauchen.

Danke schonmal, werde berichten, obs daran lag.

Gruß

Lars

Autor: Lars K. (larsk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich kann berichten, es funktioniert. Für manche Feinheiten ist es 
manchmal zu spät Abends, da übersieht man solche Sachen.

Danke nochmal

Gruß

Lars

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.