Datasheet
2002 Microchip Technology Inc. DS21291E-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
Ye s
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