EasyManua.ls Logo

ST ST10F276E - Handling of Received Messages; Configuration of a FIFO Buffer

ST ST10F276E
564 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
DocID13284 Rev 2 449/564
UM0404 CAN modules
The Arbitration Registers (ID(28:0) and Xtd bit) are given by the application. They define the
identifier and type of accepted received messages. If an 11-bit Identifier (“Standard Frame”)
is used, it is programmed to ID(28:18), while ID(17:0) can then be disregarded. When a
Data Frame with an 11-bit Identifier is received, ID(17:0) will be reset to ‘0’.
If the RxIE bit is set, the IntPnd bit will be set when a received Data Frame is accepted and
stored in the Message Object.
The Data Length Code (DLC(3:0)) is given by the application. When the Message Handler
stores a Data Frame in the Message Object, it will store the received Data Length Code and
eight data bytes. If the Data Length Code is less than 8, the remaining bytes of the Message
Object will be overwritten by non specified values.
The Mask Registers (Msk(28:0), UMask, MXtd and MDir bits) may be used (UMask =‘1)
to allow groups of Data Frames with similar identifiers to be accepted. For details see
Reception of data frame on page 447. The Dir bit should not be masked in typical
applications.
21.9.6 Handling of received messages
The CPU may read a received message any time via the IFx Interface registers, the data
consistency is guaranteed by the Message Handler state machine.
Typically the CPU will write first 0x007Fh to the Command Mask Register and then the
number of the Message Object to the Command Request Register. That combination will
transfer the whole received message from the Message RAM into the Message Buffer
Register. Additionally, the bits NewDat and IntPnd are cleared in the Message RAM (not in
the Message Buffer).
If the Message Object uses masks for acceptance filtering, the arbitration bits show which of
the matching messages has been received.
The actual value of NewDat shows whether a new message has been received since last
time this Message Object was read. The actual value of MsgLst shows whether more than
one message has been received since last time this Message Object was read. MsgLst will
not be automatically reset.
By means of a Remote Frame, the CPU may request another CAN node to provide new
data for a receive object. Setting the TxRqst bit of a receive object will cause the
transmission of a Remote Frame with the receive object’s identifier. This Remote Frame
triggers the other CAN node to start the transmission of the matching Data Frame. If the
matching Data Frame is received before the Remote Frame could be transmitted, the
TxRqst bit is automatically reset.
21.9.7 Configuration of a FIFO buffer
With the exception of the EoB bit, the configuration of Receive Objects belonging to a FIFO
Buffer is the same as the configuration of a (single) Receive Object, see Section 21.9.5 on
page 448.
To concatenate two or more Message Objects into a FIFO Buffer, the identifiers and masks
(if used) of these Message Objects have to be programmed to matching values. Due to the
MsgVal Arb Data Mask EoB Dir NewDat MsgLst RxIE TxIE IntPnd RmtEn TxRqst
1 appl appl appl 1 0 0 0 appl 0 0 0 0

Table of Contents

Related product manuals