Forum: Mikrocontroller und Digitale Elektronik MCP2515 und Filter


von Lars K. (larsk)


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

von Thomas Forster (Gast)


Lesenswert?

>    mcp2515_write_register( RXF0SIDL, 0b00000000);

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

Thomas

von Lars K. (larsk)


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

von Lars K. (larsk)


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

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.