Figure 341. Receive Fifo States - ST STM32F405 Reference Manual

Hide thumbs Also See for STM32F405:
Table of Contents

Advertisement

Controller area network (bxCAN)
FIFO management
Starting from the empty state, the first valid message received is stored in the FIFO which
becomes pending_1. The hardware signals the event setting the FMP[1:0] bits in the
CAN_RFR register to the value 01b. The message is available in the FIFO output mailbox.
The software reads out the mailbox content and releases it by setting the RFOM bit in the
CAN_RFR register. The FIFO becomes empty again. If a new valid message has been
received in the meantime, the FIFO stays in pending_1 state and the new message is
available in the output mailbox.
If the application does not release the mailbox, the next valid message will be stored in the
FIFO which enters pending_2 state (FMP[1:0] = 10b). The storage process is repeated for
the next valid message putting the FIFO into pending_3 state (FMP[1:0] = 11b). At this
point, the software must release the output mailbox by setting the RFOM bit, so that a
mailbox is free to store the next valid message. Otherwise the next valid message received
will cause a loss of message.
Refer also to
Overrun
Once the FIFO is in pending_3 state (i.e. the three mailboxes are full) the next valid
message reception will lead to an overrun and a message will be lost. The hardware
1086/1749

Figure 341. Receive FIFO states

EMPTY
Valid Message
FMP=0x00
FOVR=0
Received
Release
Mailbox
Section 32.7.5
RM0090 Rev 18
PENDING_1
FMP=0x01
FOVR=0
Valid Message
Release
Received
Mailbox
RFOM=1
PENDING_2
FMP=0x10
FOVR=0
Valid Message
Release
Mailbox
Received
RFOM=1
PENDING_3
Valid Message
FMP=0x11
FOVR=0
Release
Mailbox
RFOM=1
Received
OVERRUN
FMP=0x11
FOVR=1
Valid Message
Received
RM0090

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the STM32F405 and is the answer not in the manual?

Table of Contents

Save PDF