Hello,
I have got still trouble with setting Filters and Masks when other Nodes are sending messages very fast:
My Shield is using in industrial application and I do not have influence if other nodes are sending and with which frequency. So when there is a node sending messages (with IDs which should be blocked) when MCP is initializing, filtering does not work because I only can call init_Mask and init_Filt after CAN.begin is called. Maybe it is better if there is a possibility to set filters and masks before CAN.begin.
Example: A node is sending on ID 5 very, very fast all time.
When starting sketch I call CAN.begin and init_Mask and init_Filt to receive ID 522 only.
if(CAN_OK == CAN.begin(CAN_500KBPS)) // init can bus : baudrate = 500k
{
Serial.println("CAN BUS Shield init ok!");
CAN.init_Mask(0, 0, 0x3FF);
CAN.init_Mask(1, 0, 0x3FF);
CAN.init_Filt(0, 0, 0x20A);
CAN.init_Filt(1, 0, 0x20A);
CAN.init_Filt(2, 0, 0x20A);
CAN.init_Filt(3, 0, 0x20A);
CAN.init_Filt(4, 0, 0x20A);
CAN.init_Filt(5, 0, 0x20A);
delay(100);
Serial.println("masks and filters set!");
}
The result: No message is filtered. All messages from all IDs arrive the buffer. MCP gets overflow.
_If there is no other Node sending data when resetting MCP, the filtering is working find and only ID 522 comes into buffer._
Hello,
I have got still trouble with setting Filters and Masks when other Nodes are sending messages very fast:
My Shield is using in industrial application and I do not have influence if other nodes are sending and with which frequency. So when there is a node sending messages (with IDs which should be blocked) when MCP is initializing, filtering does not work because I only can call init_Mask and init_Filt after CAN.begin is called. Maybe it is better if there is a possibility to set filters and masks before CAN.begin.
Example: A node is sending on ID 5 very, very fast all time.
When starting sketch I call CAN.begin and init_Mask and init_Filt to receive ID 522 only.
The result: No message is filtered. All messages from all IDs arrive the buffer. MCP gets overflow.
_If there is no other Node sending data when resetting MCP, the filtering is working find and only ID 522 comes into buffer._