Forum: Mikrocontroller und Digitale Elektronik STM32F4 CAN Filter für bestimmten ID-Bereich?


von Christoph B. (nuke)


Lesenswert?

Hallo,

es gibt zwar schon einige STM32 CAN-Filter-Threads hier im Forum, ich 
hab aber mein (mehr oder weniger spezifisches) Problem noch nicht finden 
können.

Ich würde gern über CAN1 alle Nachrichten empfangen, aber einen 
bestimmten ID-Bereich anders behandeln (als Teil einer Art CAN-Gateway).

Beispiel:
---------

IDs 0x01 - 0x04:
In Abhängigkeit von andern (Eingangs-)Parametern blockieren oder wieder 
auf CAN2 ausgeben.

alle IDs ab 0x05:
Einfach unverändert auf CAN2 ausgeben.

Die Filtereinstellung für die ersten 4 IDs klappt schon prima, habe die 
Filterbank im IdList-Modus. Wie kann ich aber einen anderen Filter so 
konfigurieren, dass er alle IDs ab 0x05 durchlässt?

Wenn ich das Reference Manual richtig verstanden habe, könnte ich 
einfach einen Mask-Filter hinten dranhängen, der alle IDs durchlässt 
(auch die ersten 4), da der List-Filter ja Priorität gegenüber dem 
Mask-Filter hat. Wäre das eine Lösung?

Achso: Habe einen STM32F407, namentlich das zugehörige Discovery hier...

Danke an alle Antwortenden!

Viele Grüße,
Christoph

von Christoph B. (nuke)


Lesenswert?

Für alle Interessierten: Habs eben probiert mit dem Mask-Filter, der 
alles durchlässt, und siehe da, es funktioniert, welch Wunder!
Die Frage, ob man aber z.B. definieren kann, nur die IDs 0x05 bis 0x0B 
durchzulassen (bewusst so gewählt, da beide IDs keine Bits gemeinsam 
haben, außer die oberen Nullen), bleibt allerdings bestehen, also falls 
jemand hierfür eine knackige Lösung parat hat, immer her damit!

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.