cancel
Showing results for 
Search instead for 
Did you mean: 

CAN filter in FMI field

jpeacock2399
Associate II
Posted on January 15, 2014 at 01:00

I set up CAN1 for mask filters as follows:

CAN 1, Btr 0129000a, Esr 00000000, Mcr 00000040, Msr 00000c00 
Tsr 1c000000, Rf0r 00000000, Rf1r 00000000, Ier 0003875b 
filter Fmr 2a1c0e00, Fm1r 00000000, Fs1r 00000000, Fa1r 0380ce03, Ffa1r 0fffedfc 
Fir0 fff80000, fe180e00 
Fir1 f0181000, f0181010 
Fir9 f018e000, fff8e030 
Fir10 f018f000, fff8f010 
Fir11 fff81000, fff81010

Flter Fir9 is for a CANopen NMT-EC incoming heartbeat message, COB-ID 0x7nn, where nn is the node ID, no RTR, standard 11-bit IDE. The other half of the filter passes CANopen Node Guard messages (RTR set). I would expect the FMI field for the incoming message to be 9, for filter 9, but instead it reports it as filter 4, which is inactive. The contents of Fir4 are:

Fir4 fff86020, fff85030

set up for CANopen PDO1 function group. All filters are dual 16 bit, mask mode only. All messages are 11-bit standard IDE. No RTR used. For other mesasges the filter FMI field is correct, but with a COB-ID of 0x70f it always returns filter 4 in the FMI field. Every filter is set up to exactly match the CANopen function group in the high 4 bits so there should be no overlap on filtering with group 0xe, the NMT-EC messages. Has anyone used CAN filters in 16 bit mask mode, with multiple filters and looking at the FMI field to route incoming messages? Jack Peacock #can
0 REPLIES 0