Datasheet
© 2007 Microchip Technology Inc. DS21291F-page 23
MCP2510
FIGURE 4-2: MESSAGE RECEPTION FLOWCHART
Set RXBF0
Start
Detect
Start of
Message
?
Valid
Message
Received
?
Generate
Error
Message
Identifier meets
a filter criteria
?
Is
CANINTF.RX0IF=0
?
Go to Start
Move message into RXB0
Set RXB0CTRL.FILHIT <2:0>
Is
CANINTF.RX1IF = 0
?
Move message into RXB1
Set CANINTF.RX1IF=1
Yes, meets criteria
for RXBO
No
Generate
Interrupt on INT
Yes
Yes
No
No
Yes
Yes
No
No
Yes
Yes
Frame
The CANINTF.RXnIF bit
determines if the receive
register is empty and able
to accept a new message
No
Yes
No
Begin Loading Message into
Message Assembly Buffer (MAB)
according to which filter criteria
was met
Set RXB0CTRL.FILHIT <0>
according to which filter criteria
Set CANSTAT <3:0> accord-
ing to which receive buffer
the message was loaded into
Is
RXB0CTRL.BUKT=1
?
The RXB0CTRL.BUKT
bit determines if RXB0
can roll over into RXB1
if it is full
Generate Overflow Error:
Set EFLG.RX1OVR
Is
CANINTE.ERRIE=1
?
No
Go to Start
Yes
No
ARE
BFPCTRL.B0BFM=1
?
BF1CTRL.B0BFE=1
AND
Pin = 0
No
Set RXBF1
Pin = 0
No
Yes
Yes
CANINTE.RX0IE=1? CANINTE.RX1IE=1?
RXB1
RXB0
Yes, meets criteria
for RXB1
Set EFLG.RX0OVR
Generate Overflow Error:
Set CANINTF.RX0IF=1
ARE
BFPCTRL.B1BFM=1
?
BF1CTRL.B1BFE=1
AND