19 multiprocessor communications – NXP Semiconductors P89LPC9321 UM10310 User Manual

Page 68

Advertising
background image

UM10310

All information provided in this document is subject to legal disclaimers.

© NXP B.V. 2010. All rights reserved.

User manual

Rev. 2 — 1 November 2010

68 of 139

NXP Semiconductors

UM10310

P89LPC9321 User manual

If double buffering is enabled, TB8 MUST be updated before SBUF is written, as TB8 will
be double-buffered together with SBUF data. The operation described in the

Section

10.17 “Transmit interrupts with double buffering enabled (Modes 1, 2, and 3)”

becomes as

follows:

1. The double buffer is empty initially.

2. The CPU writes to TB8.

3. The CPU writes to SBUF.

4. The SBUF/TB8 data is loaded to the shift register and a Tx interrupt is generated

immediately.

5. If there is more data, go to 7, else continue on 6.

6. If there is no more data, then:

If DBISEL is logic 0, no more interrupt will occur.

If DBISEL is logic 1 and INTLO is logic 0, a Tx interrupt will occur at the beginning

of the STOP bit of the data currently in the shifter (which is also the last data).

If DBISEL is logic 1 and INTLO is logic 1, a Tx interrupt will occur at the end of the

STOP bit of the data currently in the shifter (which is also the last data).

7. If there is more data, the CPU writes to TB8 again.

8. The CPU writes to SBUF again. Then:

If INTLO is logic 0, the new data will be loaded and a Tx interrupt will occur at the

beginning of the STOP bit of the data currently in the shifter.

If INTLO is logic 1, the new data will be loaded and a Tx interrupt will occur at the

end of the STOP bit of the data currently in the shifter.

9. Go to 4.

10. Note that if DBISEL is logic 1 and the CPU is writing to SBUF when the STOP bit of

the last data is shifted out, there can be an uncertainty of whether a Tx interrupt is
generated already with the UART not knowing whether there is any more data
following.

10.19 Multiprocessor

communications

UART modes 2 and 3 have a special provision for multiprocessor communications. In
these modes, 9 data bits are received or transmitted. When data is received, the 9th bit is
stored in RB8. The UART can be programmed such that when the stop bit is received, the
serial port interrupt will be activated only if RB8 = 1. This feature is enabled by setting bit
SM2 in SCON. One way to use this feature in multiprocessor systems is as follows:

When the master processor wants to transmit a block of data to one of several slaves, it
first sends out an address byte which identifies the target slave. An address byte differs
from a data byte in that the 9th bit is 1 in an address byte and 0 in a data byte. With
SM2 = 1, no slave will be interrupted by a data byte. An address byte, however, will
interrupt all slaves, so that each slave can examine the received byte and see if it is being
addressed. The addressed slave will clear its SM2 bit and prepare to receive the data
bytes that follow. The slaves that weren’t being addressed leave their SM2 bits set and go
on about their business, ignoring the subsequent data bytes.

Note that SM2 has no effect in Mode 0, and must be logic 0 in Mode 1.

Advertising