MCP2515 und Filter

#1638295
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
#1638523
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren