English
Language : 

XC2700 Datasheet, PDF (37/62 Pages) Infineon Technologies AG – 16/32-Bit Single-Chip Microcontroller
MultiCAN_TC.037 Clear MSGVAL
XC2700 Derivatives
XC2000 Family / Alpha Line
Detailed Errata Description
Correct behaviour:
When MSGVAL is cleared for a message object in any list, then this should not affect the
other message objects in any way.
Message reception (wrong behaviour):
Assume that a received CAN message is about to be stored in a message object A,
which can be a standard message object, FIFO base, FIFO slave, gateway source or
gateway destination object.
If during of the storage action the user clears MOCTR.MSGVAL of message object B in
any list, then the MultiCAN module may wrongly interpret this temporarily also as a
clearing of MSGVAL of message object A. The result of this is that the message is not
stored in message object A and is lost. Also no status update is performed on message
object A (setting of NEWDAT, MSGLST, RXPND) and no message object receive interrupt
is generated. Clearing of MOCTR.MSGVAL of message object B is performed correctly.
Message transmission (wrong behaviour):
Assume that MultiCAN is about to copy the message content of a message object A into
the internal transmit buffer of the CAN node for transmission.
If during of the copy action the user clears MOCTR.MSGVAL of message object B in any
list, then the MultiCAN module may wrongly interpret this also as a clearing of MSGVAL
of message object A. The result of this is that the copy action for message A is not
performed, bit NEWDAT is not cleared and no transmission takes place (clearing
MOCTR.MSGVAL of message object B is performed correctly). In case of idle CAN bus
and the user does not actively set the transmit request of any message object, this may
lead to not transmitting any further message object, even if they have a valid transmit
request set.
Single data transfer feature:
When the MultiCAN module clears MSGVAL as a result of a single data transfer
(MOFCR.SDT = 1 in the message object), then the problem does not occur. The problem
only occurs if MSGVAL of a message object is cleared via CPU.
Workaround
Do not clear MOCTR.MSGVAL of any message object during CAN operation. Use bits
MOCTR.RXEN, MOCTR.TXEN0 instead to disable/reenable reception and transmission of
message objects.
Errata Sheet
37
V1.7, 2014-10