Yes, your filter setup should pass messages with id = 0x1A1. What was not mentioned is that filter will pass only standard 11-bits message with id=0x1A1, and only if it is non-RTR message.
You should look for a while at datasheet figures 12-23 Extended Identifier Mapping and 12-24 Standard Identifier Mapping. Filter IDAR and IDAM registers, also receive and transmit buffer identifier registers IDR0-IDR3 have the same bits mapping. IDE bit in xxxIDR1 register determines identifier mapping scheme. IDE=1 means 29-bits identifier, IDE=0 - 11-bits identifier.
If you get that logic, 16-bits filter setup for standard only id=0x1A1, but both RTR and non RTR should be this:
CANIDAR0 = 0x34;
CANIDAR1 = 0x20;
CANIDMR0 =0x00;
CANIDMR1 = 0x17;
32-bits filter setup for extended only identifier 0x1A1, both RTR and non RTR should be this:
CANIDAR0 = 0;
CANIDAR1 = 0x18;
CANIDAR2 =0x3;
CANIDAR3 = 0x42;
CANIDMR0 = 0;
CANIDMR1 = 0;
CANIDMR2 = 0;
CANIDMR3 = 1;
To ease setup a bit, for standard id you may you use something like this:
CANIDAR0 = id >> 3;
CANIDAR1 = id << 5;
extended id:
CANIDAR0 = id >> 21;
CANIDAR1 = ((id >> (18-5)) & 0xE0) | 0x18|((id >> 15) & 7);
CANIDAR2 = id >> 7;
CANIDAR3 = id << 1;