XC886/888CLM
Controller Area Network (MultiCAN) Controller
User’s Manual
15-26
V1.3, 2010-02
MultiCAN, V1.0
The location of a pending bit is defined by two demultiplexers selecting the number k of
the MSPNDk registers (1-bit demux), and the bit location within the corresponding
MSPNDk register (5-bit demux).
Allocation Case 1
In this allocation case, bit field MCR.MPSEL = 0000
B
. Here, the location selection
consists of two parts:
•
The bit 5 of MOIPRn.MPN (MPN[5]) select the number k [k=1-0] of a Message
Pending Register MSPNDk in which the pending bit will be set.
•
The lower five bits of MOIPRn.MPN (MPN[4:0]) select the bit position (31-0) in
MSPNDk for the pending bit to be set.
Allocation Case 2
In this allocation case, bit field MCR.MPSEL is taken into account for pending bit
allocation. Bit field MCR.MPSEL allows the inclusion of the interrupt request node
pointer for reception (MOIPRn.RXINP) or transmission (MOIPRn.TXINP) for pending bit
allocation in a way that different target locations for the pending bits are used in receive
and transmit cases. If MPSEL = 1111
B
, the location selection operates in the following
way:
•
At a transmit event, the bit 1 of TXINP define the number k of a Pending Register
MSPNDk in which the pending bit will be set. At a receive event, the bit 1 of RXINP
define the number k.
•
The bit position (31-0) in MSPNDk for the pending bit to be set is selected by the
lowest bit of TXINP or RXINP and the four least significant bits of MPN.
General Hints
The Message Pending Registers MSPNDk can be written by software. Bits that are
written with 1 are left unchanged and bits which are written with 0 are cleared. This
allows individual MSPNDk bits to be cleared with a single register write access.
Therefore, access conflicts are avoided when the MultiCAN module (hardware) sets
another pending bit at the same time when software writes to the register.
Each Message Pending Register MSPNDk is associated with a Message Index Register
MSIDk which indicates the lowest bit position of all set (1) bits in Message Pending
Register k. The MSIDk register is a read-only register which is updated immediately
when a value in the corresponding Message Pending Register k is changed.
*