
247
24. EXTERNAL I/O CONTROL
24.1 Overview
The Rabbit 4000’s external I/O space consists of 64KB that is accessed by prefixing a read
or write instruction with the IOE instruction. These accesses can go onto the memory bus or
onto the external I/O bus (described below). There are three dedicated signal pins (/IORD,
/IOWR, /BUFEN) that toggle for all external I/O accesses, and eight I/O strobes that can
be associated with this external I/O space and directed out of Parallel Ports C, D, or E.
In addition, a handshaking signal input can be enabled on a Parallel Port E pin, and used to
pause an external I/O transaction until the external device is ready to complete the transac-
tion. A timeout period can be defined to ensure that the processor is not held indefinitely
by a misbehaving external device.
24.1.1 Auxiliary I/O Bus
The Rabbit 4000 can enable a separate auxiliary I/O bus for external devices to keep bus
loading on the memory bus at an acceptable level. This bus consists of eight data lines on
Parallel Port A and up to eight address lines on Parallel Port B. This functionality is mutu-
ally exclusive with the slave port and regular parallel I/O on Parallel Ports A and B.
When enabled, the address lines of the auxiliary I/O bus hold their value until a new value
is written to them. The data lines return to a tristate mode after each transaction.