Rabbit 4000 Microprocessor
User's Manual
PREV INDEX NEXT


1. The Rabbit 4000 Processor

1.1 Introduction

Rabbit Semiconductor was formed expressly to design a a better microprocessor for use in small- and medium-scale single-board computers. The first microprocessors were the Rabbit 2000 and the Rabbit 3000. The latest microprocessor is the Rabbit 4000. Rabbit microprocessor designers have had years of experience using Z80, Z180, and HD64180 microprocessors in small single-board computers. The Rabbit microprocessors share a similar architecture and a high degree of compatibility with these microprocessors, but represent a vast improvement.

The Rabbit 4000 is a high-performance microprocessor with low electromagnetic interference (EMI), and is designed specifically for embedded control, communications, and Ethernet connectivity. The 8-bit Rabbit 4000 outperforms most 16–bit processors without losing the efficiency of an 8–bit architecture. Extensive integrated features and glueless architecture facilitate rapid hardware design, while a C-friendly instruction set promotes efficient development of even the most complex applications.

The Rabbit 4000 is fast, running at up to 60 MHz, with compact code and support for up to 16 MB of memory. Operating with a 1.8 V core and 3.3 or 1.8 V I/O, the Rabbit 4000 boasts an internal 10Base-T Ethernet interface, eight channels of DMA, six serial ports with IrDA, 40+ digital I/O, quadrature decoder, PWM outputs, and pulse capture and measurement capabilities. It also features a battery-backable real-time clock, glueless memory and I/O interfacing, and ultra-low power modes. Four levels of interrupt priority allow fast response to real-time events. Its compact instruction set and high clock speeds give the Rabbit 4000 exceptionally fast math, logic, and I/O performance.

1.2 Features

The Rabbit 4000 has several powerful design features that practically eliminate EMI problems, which is essential for OEMs that need to pass CE and regulatory radiofrequency emissions tests. The amplitude of any electromagnetic radiation is reduced by the internal spectrum spreader, by gated clocks (which prevent unnecessary clocking of unused registers), and by separate power planes for the processor core and I/O pins (which reduce noise crosstalk). An auxiliary I/O bus can be used by designers to enable separate buses for I/O and memory or to limit loading the memory bus to reduce EMI and ground bounce problems when interfacing external peripherals to the processor. The auxiliary I/O bus accomplishes this by duplicating the Rabbit's data bus on Parallel Port A, and uses Parallel Port B to provide the processor's six or eight least significant address lines for interfacing with external peripherals.

The high-performance instruction set offers both greater efficiency and execution speed of compiler-generated C code. Instructions include numerous single-byte opcodes that execute in two clock cycles, 16-bit and 32-bit loads and stores, 16-bit and 32-bit logical and arithmetic operations, 16 × 16 multiply (executes in 12 clocks), long jumps and returns for accessing a full 16 megabytes of memory, and one-byte prefixes to turn memory-access instructions into internal and external I/O instructions. Hardware-supported breakpoints ease debugging by trapping on code execution or data reads and writes.

The Rabbit 4000 requires no external memory driver or interface-logic. Its 24-bit address bus, 8-bit or 16-bit data bus, three chip-select lines, two output-enable lines, and two write-enable lines can be interfaced directly with up to six memory devices. Up to 1 MB of memory can be accessed directly via the Dynamic C development software, and up to 16 MB can be interfaced with additional software development. A built-in slave port allows the Rabbit 4000 to be used as master or slave in multi-processor systems, permitting separate tasks to be assigned to dedicated processors. An 8-line data port and five control signals simplify the exchange of data between devices. A remote cold boot enables startup and programming via a serial port or the slave port.

The Rabbit 4000 features five 8-bit parallel ports, yielding a total of 40 digital I/O. Six CMOS-compatible serial ports are available. All six are configurable as asynchronous (including output pulses in IrDA format), while four are configurable as clocked serial (SPI) and two are configurable as SDLC/HDLC. The various internal peripherals share the parallel port's I/O pins.

The Rabbit 4000 also offers many specialized peripherals. Two input-capture channels each have a 16-bit counter, clocked by the output of an internal timer, that can be used to capture and measure pulses. These measurements can be extended to a variety of functions such as measuring pulse widths or for baud-rate autodetection. Two quadrature decoder channels each have two inputs, as well as an 8 or 10-bit up/down counter. Each quadrature decoder channel provides a direct interface to optical encoder units. Four independent pulse-width modulator (PWM) outputs, each based on a 1024-pulse frame, are driven by the output of a programmable internal timer. The PWM outputs can be filtered to create a 10-bit D/A converter or they can be used directly to drive devices such as motors or solenoids. Two external interrupt vectors can multiplex inputs from up to six external pins.

There are numerous timers available for use in the Rabbit 4000. Timer A consists of ten 8-bit counters, each of which has a programmed time constant. Six of them can be cascaded from the primary Timer A counter. Timer B contains a 10-bit counter, two match registers, and two step registers. An interrupt can be generated or the output pin can be updated when the counter reaches a match value, and the match value is then incremented automatically by the step value. Timer C is a 16-bit counter that counts up to a programmable limit. It contains eight match registers, four to set the output of a parallel-port pin and four to reset it. This allows for the creation of PWM signals (both synchronous and variable-phase) and quadrature signals.

The Rabbit 4000 also provides support for protected operating systems. Support for two levels of operation, known as system and user modes, allow application-critical code to operate in safety while user code is prevented from inadvertently disturbing the setup of the processor. Memory blocks as small as 4KB can be write-protected against accidental writes by user code, and stack over/underflows can be trapped by high-priority interrupts.

Security features were also introduced in the Rabbit 4000. Portions of the new instruction set were introduced to dramatically increase encryption algorithm speeds, and 32 bytes of battery-backed onchip-encryption RAM store an encryption key away from prying eyes.

The Rabbit 4000 has new peripherals — DMA access and on-chip Ethernet.

The Rabbit 4000 supports eight channels of DMA access to external memory, internal I/O addresses, and the auxiliary I/O bus. Directing a DMA channel to or from an internal peripheral such as a serial port or the Ethernet port automatically connects DMA enable signals. Burst size, priority, and guaranteed cycles for the processor are all under program control.

The Rabbit 4000 contains a fully featured 10Base-T Ethernet peripheral. Designed to operate with the DMA peripheral, the Ethernet peripheral is fully compliant with the 802.3 Ethernet standard, including support for auto-negotiation, link detection, multicast filtering, and broadcast addresses. All digital components of the 10Base-T MAC and PHY are present inside the Rabbit 4000; all that is needed to interface to an Ethernet network is some simple analog filtering and wave-shaping components.

1.3 Block Diagram


1.4 Basic Specifications

Table 1-1. Rabbit 4000 Specifications and Features

Package

128-pin LQFP

128-ball TFBGA

Package Size
16 mm × 16 mm × 1.5 mm
10 mm × 10 mm × 1.2 mm
Operating Voltage
1.8 V DC core, 3.3 V DC I/O ring
Operating Current
0.35 mA/MHz @ 1.8 V/3.3 V
Operating Temp.
-40°C to +85°C
Maximum Clock Speed
60 MHz
Digital I/O
40+ (arranged in five 8-bit ports)
Serial Ports
6 CMOS-compatible
Ethernet Port
10Base-T
Baud Rate
Clock speed/8 max. asynchronous
Address Bus
20/24-bit
Data Bus
8/16-bit
Timers
Ten 8-bit, one 10-bit with 2 match registers,
and one 16-bit with 8 match registers
Real-Time Clock
Yes, battery backable
RTC Oscillator Circuitry
External
Watchdog Timer/Supervisor
Yes
Clock Modes
1× , 2× , /2, /3, /4, /6, /8
Power-Down Modes
Sleepy (32 kHz)
Ultra-Sleepy (16, 8, 2 kHz)
Auxiliary I/O Bus
8 data, 8 address lines


1.5 Comparing Rabbit Microprocessors

The Rabbit 2000, Rabbit 3000, and Rabbit 4000 features are compared below.

Feature

Rabbit 4000

Rabbit 3000

Rabbit 2000

Maximum Clock Speed, industrial
Maximum Clock Speed, commercial
60 MHz
60 MHz
55.5 MHz
58.8 MHz
30 MHz
30 MHz
Maximum Crystal Frequency Main Oscillator (may be doubled internally up to maximum clock speed)
60 MHz
30 MHz
30 MHz
32.768 kHz Crystal Oscillator
External
External
Internal
Operating Voltage, core
Operation Voltage, I/O
1.8 V ± 10%
3.3 V or 1.8 V
± 10%
3.3 V ± 10%
5.0 V ± 10%
Maximum I/O Input Voltage
3.6 V
5.5 V
5.5 V
Current Consumption
0.35 mA/MHz
@ 3.3 V
2 mA/MHz @ 3.3 V
4 mA/MHz @ 5 V
Number of Package Pins
128
128
100
Size of Package, LQFP/PQFP
Spacing Between Package Pins
16 × 16 × 1.5 mm
0.4 mm (16 mils)
16 × 16 × 1.5 mm
0.4 mm (16 mils)
24 × 18 × 3 mm
0.65 mm (26 mils)
Size of Package, TFBGA
Spacing Between Package Pins
10 × 10 × 1.2 mm
0.8 mm
10 × 10 × 1.2 mm
0.8 mm
Not available
Separate Power and Ground for I/O Buffers (EMI reduction)
Yes
Yes
No
Clock Spectrum Spreader
Yes
Yes
Rabbit 2000B/C
Clock Modes
1× , 2× , /2, /3,
/4, /6, /8
1x, 2x, /2, /3
/4, /6, /8
1x, 2x, /4, /8
Powerdown Modes, sleepy
Powerdown Modes, ultra sleepy
32 kHz
16, 8, 2 kHz
32 kHz
16, 8, 2 kHz
32 kHz
Low-Power Memory Control
Short and
Self-Timed Chip Selects
Short and
Self-Timed Chip Selects
None
Extended Memory Timing for High-Frequency Operation
Yes
Yes
Rabbit 2000C
Number of 8-bit I/O Ports
5
7
5
Auxiliary I/O Data/Address Bus
Yes
Yes
None
Number of Serial Ports
6
6
4
Serial Ports Capable of SPI/Clocked Serial
4 (A, B, C, D)
4 (A, B, C, D)
2 (A, B)
Serial Ports Capable of SDLC/HDLC
2 (E, F)
2 (E, F)
None
Asynch Serial Ports With Support for IrDA Communication
6
6
None
Serial Ports with Support for SDLC/HDLC IrDA Communication
2
2
None
Maximum Asynchronous Baud Rate
Clock Speed/8
Clock Speed/8
Clock Speed/32
Ethernet Port
10Base-T
None
None
Input Capture Units
2
2
None



Rabbit Semiconductor
www.rabbit.com
PREV INDEX NEXT