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, Rabbit 3000, and the Rabbit 4000. The latest microprocessor is the Rabbit
5000. 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 5000 is a high-performance microprocessor with low electromagnetic interference (EMI), and is designed specifically for embedded control, communications, and network connectivity. 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 5000 is the first Rabbit microprocessor to have a full 16-bit internal bus architecture, providing significant performance improvements when used with external 16-bit
memory devices. It also has the ability to support both 8-bit and 16-bit external memory
devices.
The Rabbit 5000 is also the fastest microprocessor from Rabbit, now a Digi International
brand, running at up to 100 MHz, with compact code and support for up to 16 MB of
memory. Operating with a 1.8 V core and 3.3 V I/O, the Rabbit 5000 boasts eight channels
of DMA, six serial ports with IrDA, 48+ digital I/O, quadrature decoder, PWM outputs,
and pulse capture and measurement capabilities. It also features a battery-backable realtime 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 5000 exceptionally fast math, logic, and I/O performance.
The Rabbit 5000 contains 128 KB of internal high-speed 16-bit SRAM, which can be used
for code and/or data. It is capable of booting off of a standard serial flash, so a microcontroller application with no external parallel memory is possible.
The Rabbit 5000 provides two options for network connectivity — a full 10/100Base-T
Ethernet MAC with a standard MII PHY interface, and a wireless 802.11b/g MAC
compatible with several standard Wi-Fi transceivers. The two network interfaces share both
internal resources and I/O pins, and so only one can be enabled at a time.
Chapter 1 The Rabbit 5000 Processor13
1.2 Features
The Rabbit 5000 has several powerful design features that practically eliminate EMI problems, which is essential for OEMs who need to pass CE and regulatory radio-frequency
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 external 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 external 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 MB 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 5000 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. The Rabbit 5000 also
contains 128 KB of internal high-speed 16-bit SRAM, which can be used in addition to
any external memory devices.
A built-in slave port allows the Rabbit 5000 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, a slave port, or from a standard
external serial flash device.
The Rabbit 5000 features six 8-bit parallel ports, yielding a total of 48 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 5000 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
14Rabbit 5000 Microprocessor User’s Manual
decoder channel provides a direct interface to optical encoder units. Four independent pulsewidth 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.
The Rabbit 5000 has three timer systems. 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 can then be 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 so that up to four PWM (both synchronous and variable-phase) or
quadrature decoder signals can be created.
The Rabbit 5000 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 4 KB can be write-protected against accidental
writes by user code, and stack over/underflows can be trapped by high-priority interrupts.
Security features are also available in the Rabbit 5000. Portions of the new instruction set
were introduced to increase encryption algorithm speeds dramatically, and 32 bytes of
battery-backed RAM can store an encryption key away from prying eyes.
The Rabbit 5000 supports eight channels of DMA access to internal or external memory,
internal I/O addresses, and the external 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 5000 contains an 802.11b/g wireless MAC peripheral, also designed to operate
with the DMA peripheral. It includes support for all standard Wi-Fi features, including infrastructure and ad-hoc modes. The high-speed internal A/D converter and D/A converter
and clocked-serial control port provide a generic interface to several common Wi-Fi
transceivers. A low-speed A/D converter is also available to monitor the transmit signal
strength if desired. The two A/D converters and single D/A converter are available for
customer use when the Wi-Fi peripheral is disabled.
The Rabbit 5000 also contains a full-featured 10/100Base-T Ethernet MAC 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. An industry-standard MII interface is used to
connect to an external PHY device.
Chapter 1 The Rabbit 5000 Processor15
1.3 Block Diagram
/RESET
/IOWR
/IORD
/BUFEN
SMODE0
SMODE1
STATUS
/WDTOUT
CLK
RESOUT
Data
Buffer
Memory
Management/
Control
Address
Buffer
Memory Chip
Interface
Parallel Ports
Port A
Port B
Port C
Port D
Port E
Port H
Global Power
Save & Clock
Distribution
Fast
Clock
Timer A
Timer C
Real-Time
Clock
32.768 kHz
Clock Input
Watchdog
Timer
Periodic
Interrupt
External I/O
Chip Interface
External
Interrupts
DATA BUS
(16 bits)
D[7:0]
(8-bit mode)
or
D[15:0]
(16-bit mode)
A[23:0]
CLKI
CLKIEN
CLK32K
INT0A, INT1A
INT0B, INT1B
/CS2, /CS1, /CS0
/OE1, /OE0
/WE1, /WE0
PA [7:0]
PB[7:0]
PC[7:0]
PD[7:0]
PE[7:0]
TXA, RXA, CLKA,
ATXA, ARXA
TXB, RXB, CLKB,
ATXB, ARXB
TXC, RXC, CLKC
TXD, RXD, CLKD
ADDRESS BUS
(15 bits)
Asynch
Serial
Synch
Serial
Asynch
Bootstrap
Synch
Bootstrap
Serial Port A
Asynch Serial IrDA
Serial Ports
B,C,D
Asynch Serial IrDA
Asynch
Serial
Synch
Serial
Serial Ports
E, F
Asynch Serial IrDA
Asynch
Serial
HDLC
SDLC
HDLC/SDLC IrDA
TXE, RXE
TCLKE, RCLKE
Slave Port
Slave Interface
SD[7:0]
SA[1:0],
/SCS, /SRD, /SWR,
/SLAVEATTN
Bootstrap Interface
TXF, RXF
TCLKF, RCLKF
Spectrum
Spreader
Clock
Doubler
Pulse Width
Modulation
PWM[3:0]
Quadrature
Decoder
QD1A, QD1B
QD2A, QD2B
AQD1A, AQD1B
AQD2A, AQD2B
Input
Capture
PC[7,5,3,1]
PD[7,5,3,1]
PE[7,5,3,1]
IrDA Bootstrap
Timer B
DMA
(8 channels)
25 MHz
DREQ0[B:A]
DREQ1[B:A]
TIMER C[3:0]
Secondary
Watchdog
VBAT RAM
(32 bytes)
battery-
backable
WAIT
ID[7:0]
IA[7:0]
I[7:0]
PH[7:0]
External Interface
CPU
SYSTEM/USER
128K
SRAM
10-bit High-Speed
DAC
20 MHz
10-bit High-Speed
ADC
10-bit slow ADC
802.11a/b/g
Wi-Fi
10/100Base-T
Ethernet
25
shared I/O
{
16Rabbit 5000 Microprocessor User’s Manual
1.4 Basic Specifications
Two versions of the Rabbit 5000 are available—the standard 289-ball BGA and a compact
196-ball BGA for specialty Wi-Fi applications. The larger package is intended for most
Rabbit applications; the smaller package has specific features and limitations, and is not
presently offered for sale. If you need further information, please contact your Rabbit sales
representative.
Table 1-1. Rabbit 5000 Specifications and Features
Package289-ball BGA196-ball BGA
Package Size15 mm × 15 mm × 1.4 mm 12 mm × 12 mm × 1.2 mm
Operating Voltage1.8 V DC core, 3.3 V DC I/O ring
Operating Current
Operating Temp.-40°C to +85°C
Maximum Clock Speed100 MHz
Digital I/O
Network Interfaces
Serial Ports6 CMOS-compatible2 CMOS-compatible
Baud RateClock speed/8 max. asynchronous
Address Bus20/24-bit8-bit
Data Bus8/16-bit8/16-bit
Timers
Real-Time ClockYes, battery-backable
RTC Oscillator CircuitryExternal
Watchdog Timer/SupervisorYes
48+ (arranged in
802.11b/g Wi-Fi
0.57 mA/MHz @ 1.8 V/3.3 V
(Wi-Fi and Ethernet diabled)
six 8-bit ports)
10/100Base-T
Ten 8-bit, one 10-bit with 2 match registers,
and one 16-bit with 8 match registers
19
802.11b/g Wi-Fi
Clock Modes1×, 2×, /2, /3, /4, /6, /8
Power-Down Modes
External I/O Bus8 data, 8 address linesNo
A/D Converters
D/A Converters10-bit, 2 synchronous channels, up to 40 megasamples/s
Chapter 1 The Rabbit 5000 Processor17
Sleepy (32 kHz)
Ultra-Sleepy (16, 8, 2 kHz)
10-bit, 2 synchronous channels, up to 40 megasamples/s
10-bit, single channel, up to 300 ksamples/s
1.5 Comparing Rabbit Microprocessors
The Rabbit 2000, Rabbit 3000, Rabbit 4000, and Rabbit 5000 features are compared
below.
The Rabbit 5000 supports up to three separate clocks at once—the main clock, the 32 kHz
clock, and the 20 MHz Wi-Fi clock. The main clock is used to drive the processor clock
and the peripheral clock inside the processor. The 32 kHz clock is used to drive the asynchronous serial bootstrap, the real-time clock, the periodic interrupt, and the watchdog
timers.
The Rabbit 5000 has a spectrum spreader on the main clock that shortens and lengthens
clock cycles. This has the net effect of reducing the peak energy of clock harmonics by
spreading the spectral energy into nearby frequencies, which reduces EMI and facilitates
government-mandated EMI testing. Gated clocks are used whenever possible to avoid
clocking unused portions of the processor, and separate power-supply pins for the core and
I/O ring further reduce EMI from the Rabbit 5000.
The main clock can be doubled or divided by 2, 4, 6, or 8 to reduce EMI and power
consumption. The 32 kHz clock (which can be divided by 2, 4, 8, or 16) can be used
instead of the main clock to generate processor and peripheral clocks as low as 2 kHz for
significant power savings. Note that dividing the 32 kHz clock only affects the processor
and peripheral clocks; the full 32 kHz signal is still provided to the real-time clock and
watchdog timer peripherals that use it directly. The periodic interrupt is disabled automatically since there is not enough time to process it when running off the 32 kHz clock.
There is also a 25 MHz Ethernet clock that is provided to the external PHY chip if you are
using the Ethernet option, but this Ethernet clock is not applied directly to the Rabbit
5000. The Ethernet clock can be driven by the processor clock, the processor clock
divided by 2, or by the input on PE6. The Ethernet clock needs to be 25 MHz to conform to
the 10/100Base-T specification. See Chapter 22 for more details on the Ethernet clock.
Chapter 2 Clocks21
2.1.1 Block Diagram
Wi-Fi
Clock
GCSR
CPU Clock
Peripheral Clock
GOCR
Divide
by 2
CLK Pin
Divide by
2, 4, 6, 8
Clock
Doubler
Spectrum
Spreader
CLKI
Divide by
2, 4, 8, 16
CLK32K
Clock
Disable
CLKIEN
CLK_IN
GCMxR
GCDRGCSR
GPSCR
Real-Time Clock
Periodic Interrupt
Asynch. Serial Bootstrap
Watchdog Timer
MAIN CLOCK
GCSR
PLL
2.1.2 Registers
Register NameMnemonicI/O AddressR/WReset
Global Control/Status RegisterGCSR0x0000R/W11000000
Global Clock Modulator 0 RegisterGCM0R0x000AW00000000
Global Clock Modulation 1 RegisterGCM1R0x000BW00000000
Global Clock Double RegisterGCDR0x000FR/W00000000
22Rabbit 5000 Microprocessor User’s Manual
2.2 Dependencies
2.2.1 I/O Pins
The main clock input is on the CLKI pin. There is an internal Schmitt trigger on this pin to
mitigate any noise problems associated with slowly transitioning signals.
The main clock disable output is on the CLKIEN pin. Its state is changed by one of the bit
combinations of bits 4:2 in GCSR. The CLKIEN pin will output low to disable an external
main oscillator when the 32 kHz mode with main oscillator disabled is selected, and will
output high for all other clock modes
The 32 kHz clock input is on the CLK32K pin. There is an internal Schmitt trigger on this
pin as well.
The peripheral clock or peripheral clock divided by 2 may be optionally output on the
CLK pin by enabling it via bits 7:6 in GOCR.
The 20 MHz Wi-Fi clock input is located on the CLK_IN pin; a PLL multiplies clocks up
to the 80 MHz required for the Wi-Fi peripheral.
2.2.2 Other Registers
RegisterFunction
GOCRUsed to set up the CLK output pin.
Chapter 2 Clocks23
2.3 Operation
2.3.1 Main Clock
The main clock is input on the CLKI pin, and is optionally sent through the spectrum
spreader and then the clock doubler. Both of these are described in greater detail below.
Different main clock modes may be selected via the GCSR, as shown in Table 2-1. Note
that one GCSR setting slows the processor clock while the peripheral clock operates at full
speed; this allows some power reduction while keeping settings like serial baud rates and
the PWM at their desired values.
Table 2-1. Clock Modes
GCSR SettingProcessor ClockPeripheral Clock
xxx010xxMain clockMain clock
xxx011xxMain clock / 2Main clock / 2
xxx110xxMain clock / 4Main clock / 4
xxx111xxMain clock / 6Main clock / 6
xxx000xxMain clock / 8Main clock / 8 (default on startup)
xxx001xxMain clock / 8Main clock
xxx100xx32 kHz clock (possibly divided)
32 kHz clock (possibly divided);
xxx101xx
main clock disabled via CLKIEN
output signal
32 kHz clock (possibly divided
via GPSCR)
32 kHz clock (possibly divided
via GPSCR)
When the 32 kHz clock is enabled in GCSR, it can be further divided by 2, 4, 6, or 8 to
generate even lower frequencies by enabling those modes in bits 0–2 of GPSCR. See
Table 2-4 for more details.
24Rabbit 5000 Microprocessor User’s Manual
2.3.2 Spectrum Spreader
FREQUENCY (MHz)
AMPLITUDE (dB)
400
405
4104154204254304354
-10
-20
-30
-40
-50
Spectrum Spreader
Disabled
Spectrum Spreader
Enabled (normal setting)
When enabled, the spectrum spreader stretches and compresses the main clock in a complex
pattern that spreads the energy of the clock harmonics over a wider range of frequencies.
There are three settings that correspond to normal and strong spreading in the 0–50 MHz
and >50 MHz main clock range. Each setting will affect the clock cycle differently; the
maximum cycle shortening (at 1.8 V and 25°C) is shown in Table 2-2 below.
0–50 MHz> 50 MHz
NormalStrong0x00
Strong—0x80
Chapter 2 Clocks25
Figure 2-1. Effects of Spectrum Spreader
Table 2-2. Spectrum Spreader Settings
GCM0R
Value
—Normal0x40
Normal spreading of frequencies over
50 MHz
Normal spreading of frequencies up to
50 MHz; strong spreading of
frequencies over 50 MHz
Strong spreading of frequencies up to
50 MHz; normal spreading of
frequencies over 50 MHz
Description
Max. Cycle
Shortening
2.3 ns
3 ns
4.5 ns
The spectrum spreader either stretches or shrinks the low plateau of the clock by a maximum
15
10
5
10050200150250
350
300
Normal Spreading
Strong Spreading
Frequency (MHz)
Harmonics (dB)
of 3 ns for the normal spreading and up to 4.5 ns for the strong spreading. If the clock
doubler is used, this will cause an additional asymmetry between alternate clock cycles.
Both normal and strong modes reduce clock harmonics by approximately 15 dB for frequencies above 100 MHz; for lower frequencies the strong setting has a greater effect in
reducing the peak spectral strength as shown in Figure 2-2.
Figure 2-2. Peak Spectral Amplitude Reduction by Spectrum Spreader
Two registers control the clock spectrum spreader. These registers must be loaded in a specific manner with proper time delays. GCM0R is only read by the spectrum spreader at the
moment when the spectrum spreader is enabled by storing 0x080 in GCM1R. If GCM1R
is cleared (when disabling the spectrum spreader), there is up to a 500-clock delay before
the spectrum spreader is actually disabled. The proper procedure is to clear GCM1R, wait
for 500 clocks, set GCM0R, and then enable the spreader by storing 0x080 in GCM1R.
The spectrum spreader is applied to the main clock before the clock doubler, so if both are
enabled there will be additional asymmetry between alternate clock cycles.If the clock
doubler is used, the spectrum spreader affects every other cycle and reduces the clock high
time. If the doubler is not used, then the spreader affects every clock cycle, and the clock
low time is reduced.
26Rabbit 5000 Microprocessor User’s Manual
2.3.3 Clock Doubler
The clock doubler allows a lower frequency crystal to be used for the main oscillator and
to provide an added range over which the clock frequency can be adjusted. The clock
doubler is controlled via the Global Clock Double Register (GCDR).
The clock doubler uses an on-chip delay circuit that must be programmed by the user at
startup if there is a need to double the clock. Table 2-3 lists the recommended delays in
GCDR for various oscillator or crystal frequencies.
Table 2-3. Recommended Delays Set In GCDR for Clock Doubler
Recommended GCDR ValueFrequency Range
0x0F7.3728 MHz
0x0B7.3728–11.0592 MHz
0x0911.0592–16.5888 MHz
0x0616.5888–20.2752 MHz
0x0320.2752–52.8384 MHz
0x0152.8384–77.4144 MHz
0x00>77.4144 MHz
Chapter 2 Clocks27
When the clock doubler is used and there is no subsequent division of the clock, the output
Oscillator
Oscillator delayed
and inverted
Doubled clock
Delay
time
48%52%
P
0.48P0.52P0.48P0.52P
Data out
Example
Write
Cycle
Write pulse
Early write pulse
option
Address / CS
Address / CS
Output enb
Early output enb
option
Data out from mem
Example
Read
Cycle
clock will be asymmetric, as shown in Figure 2-3.
Figure 2-3. Effect of Clock Doubler
The doubled-clock low time is subject to wide (50%) variation since it depends on process
parameters, temperature, and voltage. The times given above are for a core supply voltage
of 1.8 V and a temperature of 25°C. The values increase or decrease by 1% for each 5°C
increase or decrease in temperature. The doubled clock is created by xor’ing the delayed
and inverted clock with itself. If the original clock does not have a 50-50 duty cycle, then
alternate clocks will have a slightly different length. Since the duty cycle of the built-in
oscillator can be as asymmetric as 52%/48%, the clock generated by the clock doubler will
exhibit up to a 4% variation in period on alternate clocks. The memory access time is not
affected because the memory bus cycle is 2 clocks long and includes both a long and a short
28Rabbit 5000 Microprocessor User’s Manual
clock, resulting in no net change due to asymmetry. However, if an odd number of wait
states is used, then the memory access time will be affected slightly
The maximum allowed clock speed must be reduced slightly if the clock is supplied via the
clock doubler. The only signals clocked on the falling edge of the clock are the memory
and I/O write pulses, and the early option memory output enable. See Chapter 5 for more
information on the early output enable and write enable options.
The power consumption is proportional to the clock frequency, and for this reason power
can be reduced by slowing the clock when less computing activity is taking place. The
clock doubler provides a convenient method of temporarily speeding up or slowing down
the clock as part of a power management scheme.
Chapter 2 Clocks29
2.3.4 32 kHz Clock
C1 values may vary or
C1 may be eliminated
R2
R1
R1 and R2 control the
power consumed by the
unbuffered inverter.
VBAT
R
s
C1
C2
32.768 kHz
CL = 5-12 pF
R
p
C
in
U1A
U2A
SN74AHC1GU04
NC7SP14
The 32.768 kHz clock is used to drive the asynchronous serial bootstrap, the real-time
clock, the periodic interrupt, and the watchdog timers. If these features are not used in a
design, the use of the 32 kHz clock is optional.
A simplified version of the recommended oscillator circuit for the Rabbit 5000 is shown
below. The values of resistors and capacitors may need to be adjusted for various frequencies and crystal load capacitances. Technical Note TN235, “External 32.768 kHz Oscillator Circuits“, is available on the Rabbit Web site and goes into this circuit in detail.
Figure 2-4. Basic 32.768 kHz Oscillator Circuit
The 32.768 kHz circuit consumes microampere-level currents and has a very high impedance, making it susceptible to noise, moisture, and environmental contaminants. It is
strongly recommended to conformally coat this circuit to limit the effects of humidity and
dust on the oscillation frequency. Details about this requirement are available in Technical
Note TN303, “Conformal Coating”, from the Rabbit Web site.
The 32.768 kHz oscillator is slow to start oscillating after power-on. The startup delay
may be as much as 5 seconds. For this reason, a wait loop in the BIOS waits until this
oscillator is oscillating regularly before continuing the startup procedure. If the clock is
battery-backed, there will be no startup delay since the oscillator is already oscillating.
Crystals with low series resistance (R < 35 k) will start faster.
30Rabbit 5000 Microprocessor User’s Manual
Loading...
+ 384 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.