
XC161 Derivatives
Peripheral Units (Vol. 2 of 2)
Serial Data Link Module SDLM
User’s Manual
22-14
V2.2, 2004-01
SDLM_X, V2.0
In order to monitor the status of the bus during transmission, the SDLM always reads on
the bus, even while transmitting. As a result, the user can check whether the message
sent is equal to the message on the bus (test for arbitration).
The receive buffer in Block Mode can be accessed via register RxD00 on CPU side as
FIFO base address (relative address 40
H
). The elements of the FIFO can always be
accessed via their addresses, too. The first eight bytes are located at the relative
addresses 40
H
to 47
H
, the second eight bytes at the relative addresses 50
H
to 57
H
.
Figure 22-9
Data Reception in Block Mode
In Block Mode, the interrupt request flags MSGREC (reception) and MSGTRA
(transmission) are automatically reset by hardware upon a read action from RxD00, or a
write action to TxD0 respectively. RBB (= RBC) is set upon a pointer match after
reception of a byte (receive buffer full) and reset by a read action from this buffer.
MSGLST is set if RBB has been set before and a new data byte is received. MSGLST is
not automatically reset by hardware. All error flags remain pending (once set) and have
to be cleared by software. In case of a detected error during transmission, the transmit
request bit TxRQ is reset by hardware in order to abort the transmission (no automatic
retry).
4
3
2
1
0
4
3
2
1
0
4
3
2
1
0
15
...
4
3
2
1
0
RxCPU=0
RxCNT=0
RxBuffer before
Block Data reception
Rx circular buffer
RxCNT=0
16 bytes received,
RxBuffer full
Rx
CNT
=5
Block Mode
receive finished
MSGREC
time
time
RxCPU=0
Rx
CN
T=1
RxCPU=0
interrupt generation after
reception of each byte
RxC
PU
=5
...
...
...
15
15
15
...
...
...
...