Contents:
Join the Future of 8-bit Computing
Instruction Set Enhancement
Dynamic C
RabbitCore 2000
Rabbit 2000 Bios
Pin Out Specifications
Slave Port
Port B
Port C
Port D
Port E
Development Kit

The Rabbit 2000 Slave Port

The slave port can be used to make a Rabbit system act as a peripheral device to another, master, microprocessor system. The master may or may not be Rabbit-based. The Rabbit slave port allows the master to use a set and forget programming style, just as it would with a typical peripheral device such as a UART.

To the master, the slave port appears as six I/O registers, three write registers and three read registers. The appearance is the same to the slave Rabbit, except that the master's write registers are the slave's read registers and vice-versa. A status register is read only and may be read by either the master or the slave.

When any register is written to, a bit is set in the status register to show that the register is full. When the other side reads the contents of the register, the bit is cleared to show that the register is empty. In addition, the first register pair has the capability to cause an interrupt on the other side when written to. This setup allows a variety of different communications protocols, using interrupts or polling, and allows fast transfers of blocks of data. With the right protocol the master does not have to wait for the slave to respond to new information in the registers. The master can store a request and continue with its business.

A minimal slave system requires only two chips, a Rabbit processor and a RAM memory chip. The program can be downloaded from the master to the RAM on the slave. Clocks can be supplied by the master.

Typical applications for a Rabbit slave system

  • A slave Rabbit can be easily made into a four-channel intelligent UART. Since the slave not only has four serial ports, but is intelligent, a complete protocol can be off- loaded to the slave.
  • An extension of this concept is to off-load a communication protocol from a main processor. The Rabbit slave system is especially suited when the protocol requires fast responses or is compute intensive. The TCP/IP protocol and Ethernet
  • interface is a common example for which Rabbit Semiconductor includes software support.
  • A slave Rabbit can be used for motion control that demands the rapid and intelligent generation of precisely timed pulses. The ability to generate timer synchronized outputs can be combined with the programmability of the slave to drive stepping motors or to control device speed using pulse-width modulation.
  • The Rabbit can be used to perform graphic controller functions such as drawing geometric figures and character generation.
  • Although the Rabbit is not a digital signal processor, it has enough compute speed to handle some jobs that might otherwise require a specialty processor. The slave processor can process data to perform pattern recognition or to extract a specific parameter from a data stream.

This figure shows how a master Rabbit can control two slave Rabbits. The master drives the slave reset line for both slaves and provides the main processor clock from its own clock. The master and slave don't need to share a clock but doing so makes it unnecessary to connect a crystal to the slaves. All three Rabbits must have an external RAM and the master must also have flash memory or other booting method. The slaves don't need nonvolatile memory since the master can cold boot them through the slave port.

The function of the slave port lines shown above are:

  • SD0-SD7  These are bidirectional data lines, and are generally connected to the data bus of the master processor. These lines are shared with parallel port A that uses the same package pins. Multiple slaves can be connected to the data bus. The slave drives the data lines only when -SCS and -SRD are both pulled low.
  • SA1, SA0 (inputs)  These are address lines used to select one of the four data registers of the slave interface. Normally these lines are connected to the low-order address lines of the master. The master always drives these lines which are always inputs to the slave.
  • -SCS (input)  Slave chip select. The slave ignores read or write requests unless the chip select is active. If a Rabbit is used as a master, this line can be connected to one of the master's programmable chip select lines.
  • -SRD (input)  If -SCS and -SRD are both active, the contents of the register selected by the address lines are driven on the data bus. If a Rabbit is used as a master, this line is normally connected to the master's global I/O read strobe -IORD.
  • -SWR (input)  If -SCS and -SWR are both active the data bus is clocked into the register selected by the address lines on the rising edge of -SWR or -SCS, whichever rises first. If a Rabbit is used as a master, this line is normally connected to the master's global I/O write strobe -IOWR.
  • -SLAVEATTN (output)  This line is asserted if the slave writes to the SPD0R register and unasserted when the master writes anything to the slave status register. This line is usually used to interrupt the master.
  • After the Rabbit is reset, all slave interface pins are configured as parallel-port inputs unless (SMODE1, SMODE0) are set to (0,1), in which case the slave port is enabled after reset and the slave starts the cold-boot sequence using the slave port.

Return to top

Copyright © 2001 Rabbit Semiconductor. All Rights Reserved