ADuC7019/20/21/22/24/25/26/27/28
Rev. B | Page 66 of 92
Table 57. COMIID1 MMR Bit Descriptions
Bit 3:1
Status
Bits
Bit 0
NINT
Priority
Definition
Clearing
Operation
000
1
–
No Interrupt.
–
110
0
2
Matching
Network Address.
Read COMRX.
101
0
3
Address
Transmitted,
Buffer Empty.
Write data to
COMTX or
read COMIID0.
011
0
1
Receive Line
Status Interrupt.
Read
COMSTA0.
010
0
2
Receive Buffer Full
Interrupt.
Read COMRX.
001
0
3
Transmit Buffer
Empty Interrupt.
Write data to
COMTX or
read COMIID0.
000
0
4
Modem Status
Interrupt.
Read
COMSTA1.
Note that to receive a network address interrupt, the slave must
ensure that Bit 0 of COMIEN0 (enable receive buffer full interrupt)
is set to 1.
COMADR Register
Name
Address
Default Value
Access
COMADR
0xFFFF0728
0xAA
R/W
COMADR is an 8-bit, read/write network address register that
holds the address checked for by the network addressable
UART. Upon receiving this address, the device interrupts the
processor and/or sets the appropriate status bit in COMIID1.
SERIAL PERIPHERAL INTERFACE
The ADuC7019/20/21/22/24/25/26/27/28 integrate a complete
hardware serial peripheral interface (SPI) on-chip. SPI is an indus-
try standard, synchronous serial interface that allows eight bits
of data to be synchronously transmitted and simultaneously
received, that is, full duplex up to a maximum bit rate of 3.48 Mb
as shown in
Table 58. The SPI interface is not operational with core
clock divider (CD) bits. POWCON[2:0] = 6 or 7 in master mode.
The SPI port can be configured for master or slave operation
and typically consists of four pins: MISO, MOSI, SCL, and CS.
MISO (Master In, Slave Out) Pin
The MISO pin is configured as an input line in master mode
and an output line in slave mode. The MISO line on the master
(data in) should be connected to the MISO line in the slave
device (data out). The data is transferred as byte wide (8-bit)
serial data, MSB first.
MOSI (Master Out, Slave In) Pin
The MOSI pin is configured as an output line in master mode
and an input line in slave mode. The MOSI line on the master
(data out) should be connected to the MOSI line in the slave
device (data in). The data is transferred as byte wide (8-bit)
serial data, MSB first.
SCL (Serial Clock I/O) Pin
The master serial clock (SCL) is used to synchronize the data
being transmitted and received through the MOSI SCL period.
Therefore, a byte is transmitted/received after eight SCL periods.
The SCL pin is configured as an output in master mode and as
an input in slave mode.
In master mode, polarity and phase of the clock are controlled
by the SPICON register, and the bit rate is defined in the
SPIDIV register as follows:
)
1
(
2
SPIDIV
f
UCLK
CLOCK
SERIAL
+
×
=
The maximum speed of the SPI clock is dependent on the clock
divider bits and is summarized in
Table 58.
Table 58. SPI Speed vs. Clock Divider Bits in Master Mode
CD Bits
0
1
2
3
4
5
SPIDIV in hex
0x05
0x0B
0x17
0x2F
0x5F
0xBF
SPI speed
in MHz
3.482
1.741
0.870
0.435
0.218
0.109
In slave mode, the SPICON register must be configured with
the phase and polarity of the expected input clock. The slave
accepts data from an external master up to 10.4 Mb at CD = 0.
The formula to determine the maximum speed is as follows:
4
HCLK
CLOCK
SERIAL
f
=
In both master and slave modes, data is transmitted on one edge
of the SCL signal and sampled on the other. Therefore, it is
important that the polarity and phase are configured the same
for the master and slave devices.
Chip Select (CS Input) Pin
In SPI slave mode, a transfer is initiated by the assertion of CS,
which is an active low input signal. The SPI port then transmits
and receives 8-bit data until the transfer is concluded by
deassertion of CS. In slave mode, CS is always an input.
SPI Registers
The following MMR registers are used to control the SPI
interface: SPISTA, SPIRX, SPITX, SPIDIV, and SPICON.
SPISTA Register
Name
Address
Default Value
Access
SPISTA
0xFFFF0A00
0x00
R/W
SPISTA is an 8-bit read-only status register. Only Bit 1 or Bit 4
of this register generates an interrupt. Bit 6 of the SPICON
register determines which bit generates the interrupt.