Rainbow Electronics AT91CAP9S250A User Manual

Page 686

Advertising
background image

686

6264A–CAP–21-May-07

AT91CAP9S500A/AT91CAP9S250A

39.6.2.2

Receive Mailbox

When the CAN module receives a message, it looks for the first available mailbox with the low-
est number and compares the received message ID with the mailbox ID. If such a mailbox is
found, then the message is stored in its data registers. Depending on the configuration, the
mailbox is disabled as long as the message has not been acknowledged by the application
(Receive only), or, if new messages with the same ID are received, then they overwrite the
previous ones (Receive with overwrite).

It is also possible to configure a mailbox in Consumer Mode. In this mode, after each transfer
request, a remote frame is automatically sent. The first answer received is stored in the corre-
sponding mailbox data registers.

Several mailboxes can be chained to receive a buffer. They must be configured with the same
ID in Receive Mode, except for the last one, which can be configured in Receive with Over-
write Mode. The last mailbox can be used to detect a buffer overflow.

39.6.2.3

Transmit Mailbox

When transmitting a message, the message length and data are written to the transmit mail-
box with the correct identifier. For each transmit mailbox, a priority is assigned. The controller
automatically sends the message with the highest priority first (set with the field PRIOR in
CAN_MMRx register).

It is also possible to configure a mailbox in Producer Mode. In this mode, when a remote frame
is received, the mailbox data are sent automatically. By enabling this mode, a producer can be
done using only one mailbox instead of two: one to detect the remote frame and one to send
the answer.

Table 39-2.

Mailbox Object Type

Description

Receive

The first message received is stored in mailbox data registers. Data remain available until the
next transfer request.

Receive with overwrite

The last message received is stored in mailbox data register. The next message always
overwrites the previous one. The application has to check whether a new message has not
overwritten the current one while reading the data registers.

Consumer

A remote frame is sent by the mailbox. The answer received is stored in mailbox data register.
This extends Receive mailbox features. Data remain available until the next transfer request.

Table 39-3.

Mailbox Object Type

Description

Transmit

The message stored in the mailbox data registers will try to win the bus arbitration immediately
or later according to or not the Time Management Unit configuration (see

Section 39.6.3

).

The application is notified that the message has been sent or aborted.

Producer

The message prepared in the mailbox data registers will be sent after receiving the next remote
frame. This extends transmit mailbox features.

Advertising