A status register can be read by either the slave or the master. The status register has full/ empty bits for each of the six registers. A data register is considered full when it is written to by whichever side is capable of writing to it. If the same register is then read by either side it is considered to be empty. The flag for that register is thus set to a "1" when the reg- ister is written to, and the flag is set to a "0" when the register is read.

The registers appear to be internal I/O registers to the slave. To the master, at least for a Rabbit master, the registers appear to be external I/O registers. The figure below shows the sequence of events when the master reads/writes the slave port registers.

Slave Port Read Cycle

/SCS

Tsu(SCS) Th(SCS)

SA1, SA0

Tsu(SA)

Th(SA)

/SRD

SD[7:0]

Tw(SRD)

Ten(SRD)

Tdis(SRD)

Ta(SRD)

/SWR

Tsu(SWR – SRD)

Slave Port Write Cycle

/SCS

Tsu(SCS) Th(SCS)

SA1, SA0

Tsu(SA)

Th(SA)

/SWR

SD[7:0]

/SRD

Tw(SWR)

Th(SD)

Tsu(SD)

Tsu(SRD – SWR)

Figure 13-2. Slave Port R/W Sequencing

200

Rabbit 3000 Microprocessor

Page 209
Image 209
Jameco Electronics 2000, 3000 manual Slave Port Read Cycle