Page
Rabbit 3000 Microprocessor
Rabbit Semiconductor
Trademarks
Table of Contents
Rabbit Internal I/O Registers
Parallel Ports 129
Rabbit 3000 Clocks 209
Appendix B. Rabbit 3000 Revisions 273
Rabbit 3000 Microprocessor
Introduction
Features and Specifications Rabbit
User’s Manual
1shows a block diagram of the Rabbit
CPU
Summary of Rabbit 3000 Advantages
Differences Rabbit 3000 vs. Rabbit
Feature Rabbit
Serial ports with support for SDLC/HDLC IrDA
Rabbit 3000 Design Features
Rabbit 8-bit Processor vs. Other Processors
Serial Ports
Overview of On-Chip Peripherals and Features
1 5 V Tolerant Inputs
4 32.768 kHz Oscillator Input
System Clock
Cascaded Output Registers for Parallel Ports D and E
Parallel I/O
Rabbit
Slave Port
Auxiliary I/O Bus
Timers
PWM
Input Capture Channels
Pulse Width Modulation Outputs
Quadrature Encoder Inputs
Design Standards
Separate Core and I/O Power Pins
Spread Spectrum Clock
Programming Port
Dynamic C Support for the Rabbit
Standard Bios
Rabbit 3000 Microprocessor
Processor Registers
Details on Rabbit Microprocessor Features
Rabbit 3000 Microprocessor
Addressing Memory Components
Memory Mapping
Example of Memory Mapping Operation
4shows a memory interface unit
Extended Code Space
Use of XPC Segment
Separate I and D Space Extending Data Memory
Xpc window stack
Using the Stack Segment for Data Storage
Data RAM Root Code
Practical Memory Considerations
User’s Manual
Instruction Set Outline
Load or Store Data from or to a Constant Address
Load Immediate Data to a Register
Other 8-bit loads and stores are the following
Load or Store Data Using an Index Register
Register Exchanges
Register-to-Register Move
7 16-bit Arithmetic and Logical Ops
Push and Pop Instructions
Bool
SBC instruction can also be used to perform a sign extension
Input/Output Instructions
Zero HL in 4 Clocks
How to Do It in Assembly Language-Tips and Tricks
Exchanges Not Directly Implemented
Manipulation of Boolean Variables
Comparisons of Integers
HLB
Atomic Moves from Memory to I/O Space
Interrupt Priority
Interrupt Structure
Processor Priority Effect on Interrupts
Effect of Processor Priorities on Interrupts
Privileged Instructions, Critical Sections and Semaphores
Multiple External Interrupting Devices
Critical Sections
Semaphores Using Bit B,HL
Computed Long Calls and Jumps
Precisely Timed Output Pulses
Rabbit Capabilities
Pulse Width Modulation to Reduce Relay Power
Open-Drain Outputs Used for Key Scan
Using Open-Drain Outputs for Key Scan
Cold Boot
Slave Port
Slave Rabbit As a Protocol Uart
PIN Assignments and Functions
Pinout
Lqfp Package
Same pin dimensions apply along the x axis and the y axis
Mechanical Dimensions and Land Pattern
PC Board Land Pattern for Rabbit 3000 128-pin Lqfp
Ball Grid Array Package
C D E F G H J K L M
Design Considerations All dimensions in mm
Ball and Land Size Dimensions
Key Feature Recommendation
Nominal Ball Tolerance Ball Pitch Nominal Land
BGA Package Outline
Rabbit Pin Descriptions
Rabbit Pin Descriptions
Pin Pin Group Pin Name Direction Function Numbers
Lqfp Tfbga
Vddcore
Bus Timing Read and Write
Bus Timing
Pins With Alternate Functions
Description of Pins with Alternate Functions
PF7 PWM3 AQD2A
Parallel Port x Alternate Functions Control Bits
Parallel Port x Alternate Functions
3 Volt DC Characteristics
DC Characteristics
Symbol Parameter Maximum Rating
Symbol Parameter Test Conditions Min Typ Max Units
I/O Buffer Sourcing and Sinking Limit
Rabbit 3000 Microprocessor
Rabbit Internal I/O Registers
On-Chip Peripheral ISR Starting Address
Rabbit 3000 Peripherals and Interrupt Service Vectors
Rabbit Internal I/O Registers
Default Values for all the Peripheral Control Registers
Register Name Mnemonic Address Reset
Grev
PEB7R
PWM0R
Tbcsr
Sdar
Global RAM Configuration Register
Global ROM Configuration Register
Miscellaneous Functions
Processor Identification
Global CPU Register
Rabbit Oscillators and Clocks
Global Revision Register
Gcpu
Rabbit
Clock Select Field of Gcsr
Global Control/Status Register
Global Control/Status Register
Gcsr
Clock Doubler
Recommended Delays Set In Gcdr for Clock Doubler
Global Clock Double Register
Gcdr
Effect of Clock Doubler
User’s Manual
Reduction in Peak Spectral Strength from Spectrum Spreader
Clock Spectrum Spreader
Chip Select Options for Low Power
Address = 0x0D
Global Power Save Control Register
Short Chip Select Memory Read
Global Output Control Register Gocr = 0x0E
Output Pins CLK, STATUS, /WDTOUT, /BUFEN
Time/Date Clock Real-Time Clock
11. Real-Time Clock Control Register Rtccr adr =
10. Real-Time Clock RTCxR Data Registers
12. Watchdog Timer Control Register Wdtcr adr =
Watchdog Timer
13. Watchdog Timer Test Register Wdttr adr =
System Reset
Pin Name Direction Reset Low Post-Reset† Recognized by CPU
14. Rabbit 3000 Reset Sequence and State of I/O Pins
Rabbit Interrupt Structure
15. Interrupts-Priority and Action to Clear Requests
External Interrupt Line Logic
External Interrupts
Reg Name Reg Address Bits 7,6 Bits 5,4 Bits 3,2 Bits 1,0
Interrupt Vectors INT0 EIR,0x00/INT1 EIR,0x08
16. Control Registers for External Interrupts
Bootstrap Operation
102 Rabbit 3000 Microprocessor
Pulse Width LSBs 1st 2nd 3rd 4th
Pulse Width Modulator
18. PWM MSB x Register
17. PWM LSB x Register
Input Capture
106 Rabbit 3000 Microprocessor
Iccsr
19. Input Capture Control/Status Register
Input Capture Control/Status Register
21. Input Capture Trigger x Register
20. Input Capture Control Register
Iccr
ICT1R
24. Input Capture MSB x Register
22. Input Capture Source x Register
23. Input Capture LSB x Register
Quadrature Decoder
Rejected
Qdcsr
25. Quadrature Decoder Control/Status Register
Quad Decode Control/Status Register
27. Quadrature Decoder Count Register
26. Quadrature Decoder Control Register
Qdcr
QDC1R
114 Rabbit 3000 Microprocessor
Interface for Static Memory Chips
Memory Interface and Mapping
RAM
Rabbit
Data Lines Static Address Lines Memory Flash
Processor Memory Mapping Unit Interface Memory Chips
Memory Mapping Overview
Memory-Mapping Unit
Segment Registers
64K
Segment Size Register
Segment Register Function
Memory Interface Unit
Memory Bank Control Register x MBxCR = 0x014 +
Memory Bank Control Registers
MMU Instruction/Data Register Mmidr =
Optional A16, A19 Inversions by Segment /CS1 Enable
MMU Instruction/Data Register
Mmidr
MMU Expanded Code Register
Memory Timing Control Register MTCR, adr =
Mecr
Memory Timing Control Register
Breakpoint/Debug Control Register BDCR, adr = 0x01C
Allocation of Extended Code and Data
Breakpoint/Debug Control Register
Bdcr
Instruction and Data Space Support
RAM
Use of Physical Memory Separate I & D Space Model
How the Compiler Compiles to Memory
128 Rabbit 3000 Microprocessor
Parallel Ports
Parallel Port a Data Register Bit Functions
Parallel Port a
Parallel Port a Registers
Parallel Port B Register Bit Functions
Parallel Port B
Parallel Port B Registers
Parallel Port C Register Bit Functions
Parallel Port C
Parallel Port C Registers
Parallel Port D Registers
Parallel Port D
PD7
Bits 7 Bits 5 Bits 3 Bits 1
Parallel Port D Register functions
Parallel Port D Control Register adr =
136 Rabbit 3000 Microprocessor
PE0
Parallel Port E
10. Parallel Port E Registers
12. Parallel Port E Control Register adr =
11. Parallel Port E Register functions
14. Parallel Port F Register Functions
Parallel Port F
13. Parallel Port F Registers
15. Parallel Port F Control Register adr = 0x03C
Using Parallel Port a and Parallel Port F
Summary Parallel Port a Parallel Port F
17. Parallel Port G Data Register Functions
Parallel Port G
16. Parallel Port G Registers
Parallel Port G Control Register adr= 0x04C
Write data Write strobe T1 Tw T2
10. I/O Bank Control Registers
Read data Read strobe Chip select strobe
External I/O Timing with 1 wait state
I/O Bank x Control Register
Control Register Port E Address Pin A1513 Range
External I/O Register Address Range and Pin Mapping
148 Rabbit 3000 Microprocessor
Timers
Reload Register Operation
Timer a
Timer a I/O Registers
Timer a I/O Registers
Tacsr
Timer a Capabilities
Timer a Control and Status Register
User’s Manual 153
Timer a Prescale Register
Timer a Control Register
Tacr
Tapr
Practical Use of Timer a
Register Name Mnemonic Reset Address
Timer B
Timer B Registers
Timer B Control Register
Timer B Control and Status Register
Tbcsr
Tbcr
10. Timer B Count LSB x Registers
Timer B Count MSB x Registers
11. Timer B Count MSB Register
12. Timer B Count LSB Register
Using Timer B
160 Rabbit 3000 Microprocessor
Rabbit Serial Ports
Serial Port Signals
Serial Port Signal Name Function
Clka
User’s Manual 163
Serial Port Register Layout
Signals Shown at Microprocessor Tx Pin
User’s Manual 165
Serial Port a Registers
Serial Port Registers
Serial Port B Registers
Serial Port C Registers
Serial Port F Registers
Serial Port D Registers
Serial Port E Registers
Address Register All Ports
Data Register All Ports
10. Long Stop Register All Ports
11. Status Register Asynchronous Mode Only All Ports
12. Status Register Clocked Serial Ports A-D only
Bits Value Description Clocked serial mode only
Bits Value Description Hdlc mode only
13. Status Register Hdlc Mode Ports E and F only
Sbcr
14. Serial Port Control Register Ports a and B
Sacr
Sccr
15. Serial Port Control Register Ports C and D
Address = 0xE4
Sdcr
Secr
16. Serial Port Control Register Ports E and F
Address = 0xCC
Sfcr
17. Extended Register Asynchronous Mode All Ports
18. Extended Register Clocked Serial Mode Ports A-D only
19. Extended Register Hdlc Mode Ports E and F only
Transmitter IRQ
Serial Port Interrupt
Transmit Serial Data Timing
Serial Port Synchronization
Receive Serial Data Timing
Clocked Serial Ports
Clock Polarities Supported in Clocked Serial Mode
User’s Manual 183
184 Rabbit 3000 Microprocessor
Clocked Serial Timing with External Clock
Clocked Serial Timing
Clocked Serial Timing With Internal Clock
Valid
Synchronous Communications on Ports E and F
Last Byte Bit Pattern Valid Data Hits
User’s Manual 189
190 Rabbit 3000 Microprocessor
User’s Manual 191
Push AF IOI LD A,SCSR
Serial Port Software Suggestions
Transmitting Dummy Characters
Controlling an RS-485 Driver and Receiver
Transmitting and Detecting a Break
Using a Serial Port to Generate a Periodic Interrupt
Parity, Extra Stop Bits with 8-Data-Bit Characters
Parity, Extra Stop Bits with 7-Data-Bit Characters
Stop bit Start bit Data bits 9th bit low
Stop bit
Data Framing/Modbus
Supporting 9th Bit Communication Protocols
Rabbit-Only Master/Slave Protocol
User’s Manual 197
198 Rabbit 3000 Microprocessor
SRD SCS
Rabbit Slave Port
Slave Port Read Cycle
Following table explains the parameters used in Figure
Symbol Parameter Minimum Maximum
Slaveattn PB7
Typical Connection Slave Rabbit to Master Rabbit
Slave Port Registers
Hardware Design of Slave Port Interconnection
Slave Port Registers
Register Mnemonic Internal Address External Address
Bit Bits 6,5 Bit 3,2 Bits 1,0 Write Only Read Only
Slave Port Control Register Spcr adr =
Slave Port Status Register Spsr adr =
Applications and Communications Protocols for Slaves
Slave Applications
Master-Slave Messaging Protocol
208 Rabbit 3000 Microprocessor
Rabbit 3000 Main Oscillator Circuit
Rabbit 3000 Clocks
Low-Power Design
EMI Control
Using the Clock Spectrum Spreader
Power Supply Connections and Board Layout
Spread Spectrum Mode Select
Spread Spectrum Enable/Disable Register
GCM0R
GCM1R
214 Rabbit 3000 Microprocessor
Memory Access Time
AC Timing Specifications
Access Enable Access MHz
Memory Requirements at 3.3 V, -40C to +85C, Adr Bus 60 pF
Normal Strong 30 pF 60 pF 90 pF No dbl/dbl
Data and Clock Delays VDD ±10%, Temp, -40C-+85C maximum
VDD
CSx
Time Delay Output Capacitance 30 pF 60 pF 90 pF
Memory Read Time Delays
Memory Write Time Delays
CLK A190 CSx WEx D70
Example
Clock Doubler Max-Min Clock Low Times
222 Rabbit 3000 Microprocessor
Bufen
16.2 I/O Access Time
I/O Write Time Delays
I/O Read Time Delays
Further Discussion of Bus and Clock Timing
Clock Doubler and Memory Timing
Maximum Clock Speeds at 3.3 V Preliminary
Maximum Clock Speeds
Conditions Commercial Ratings Industrial Ratings
Period Frequency
External Oscillator Buffer
User’s Manual 229
Power and Current Consumption
Rabbit 3000 System Current vs. Frequency at 3.3
11. Sleepy Mode Current Consumption
Current Consumption Mechanisms
Sleepy Mode Current Consumption
Memory Current Consumption
Current is negligible for V 1.14
Battery-Backed Clock Current Consumption
Voltage Current incl built-in buffer
Reduced-Power External Main Oscillator
Bios Services
Rabbit Bios and Virtual Driver
Bios
Watchdog Timer Support
Bios Assumptions
Virtual Driver
Periodic Interrupt
User’s Manual 239
240 Rabbit 3000 Microprocessor
Other Rabbit Software
Power Management Support
Reading and Writing I/O Registers
Using Assembly Language
Using Library Functions
Updating Shadow Registers
Shadow Registers
Interrupt While Updating Registers
Atomic Instruction
Non-atomic Instructions
Timer and Clock Usage
Write-only Registers Without Shadow Registers
Format of the structure used is the following
246 Rabbit 3000 Microprocessor
Summary
Rabbit Instructions
Flag Description
Spreadsheet Conventions
Rabbit Z180 Meaning
Symbols
Load & Store to Immediate Address
Load Immediate Data
19.3 8-bit Indexed Load and Store
19.4 16-bit Indexed Loads and Stores
Register to Register Moves
19.5 16-bit Load and Store 20-bit Address
19.9 16-bit Arithmetic and Logical Ops
Exchange Instructions
Stack Manipulation Instructions
ADD A,HL
19.10 8-bit Arithmetic and Logical Ops
19.12 8-bit Increment and Decrement
19.11 8-bit Bit Set, Reset and Test
19.14 8-bit Shifts and Rotates
19.13 8-bit Fast a Register Operations
Block Move Instructions
Instruction Prefixes
Miscellaneous Instructions
Control Instructions Jumps and Calls
Following instructions are privileged
Privileged Instructions
Differences Rabbit VS. Z80/Z180 Instructions
Z80/Z180 Instructions Dropped Rabbit Instructions to Use
Flag Register Key
IOI and IOE I Column Symbol Key
Rabbit Z180 Meaning
Z V C
EX AF,AF
LD A,BC
LDP HL,IX
RRA
268 Rabbit 3000 Microprocessor
Programming Port PIN Assignments
Appendix A. the Rabbit Programming Port
Alternate Programming Port
Use of the Programming Port as a Diagnostic/Setup Port
Suggested Rabbit Crystal Frequencies
Non-Stock Crystals
Appendix B. Rabbit 3000 Revisions
274 Rabbit 3000 Microprocessor
User’s Manual 275
Table B-1. Summary of Rabbit 3000 Improvements and Fixes
Discussion of Fixes and Improvements
Rabbit Description 3000 3000A
IL1T/IZ1T IL2T/IZ2T
Rabbit Internal I/O Registers
Table B-2. Reset State of New Rabbit 3000A I/O Registers
Iuer
Rabbit Register Name Mnemonic 3000 3000A Address Reset
On-Chip Peripheral Address Range ISR Starting Address
Peripheral and ISR Address
User’s Manual 281
Table B-5. Rabbit 3000 Revision Identification Information
Revision-Level ID Register
Processor Revision Package
Gcpu Grev
System/User Mode
Table B-6. Write Protect Control Register
Memory Protection
Write Protect Control Register
Wpcr
Wplr
Table B-7. Write Protect Low Register
Write Protect Low Register
Table B-9. Write Protect Segment x Register
Table B-8. Write Protect High Register
Wphr
Wpsar
Write Protect Segment x Low Register
Table B-10. Write Protect Segment x Low Register
Wpsalr
Wpsblr
Write Protect Segment x High Register
Table B-11. Write Protect Segment x High Register
Wpsahr
Wpsbhr
Figure B-2. Simple Stack Protection Layout
Stack Protection
Table B-14. Stack High Limit Register
Table B-12. Stack Limit Control Register
Table B-13. Stack Low Limit Register
Table B-15. RAM Segment Register
RAM Segment Relocation
RAM Segment Register
Ramsr
Table B-16. Watchdog Timer Control Register-Updated
Secondary Watchdog Timer
Table B-17. Secondary Watchdog Timer Register
Wdtcr
Table B-18. New Rabbit 3000 Opcodes
New Opcodes
Instruction Bytes Clks Operation
New UMA/UMS Opcodes
New Block Copy Opcodes
Table B-19. Rabbit 3000 Revision Block Copy Opcode Effects
Source Destination
IOI/IOE
Table B-20. MMU Instruction/Data Register
Expanded I/O Memory Addressing
Table B-21 Bank x Control Register
External I/O Improvements
Address = 0x000D
Table B-22. Global Power Save Control Register
Short Chip Select Timing for Writes
Table B-24. Clock Select Field of Gcsr
Clock Select and Power Save Modes
Table B-23. Global Control/Status Register
Figure B-3. Short Chip Select Timing CLK/8, Read Operation
Short Chip Select Timing
Figure B-4. Short Chip Select Timing CLK/6, Read Operation
Figure B-6. Short Chip Select Timing CLK/2, Read Operation
Figure B-7. Short Chip Select Timing 2 kHz, Read Operation
Figure B-9. Short Chip Select Timing 8 kHz, Read Operation
Figure B-11. Short Chip Select Timing 32 kHz, Read Operation
Figure B-12. Short Chip Select Timing CLK/8, Write Operation
Figure B-13. Short Chip Select Timing CLK/6, Write Operation
Figure B-15. Short Chip Select Timing CLK/2, Write Operation
Figure B-16. Short Chip Select Timing 2 kHz, Write Operation
Figure B-18. Short Chip Select Timing 8 kHz, Write Operation
310 Rabbit 3000 Microprocessor
Figure B-21. PWM Interrupt and Output Timing
Pulse Width Modulator Improvements
Table B-26. PWM LSB 1 Register
Table B-25. PWM LSB 0 Register
PWM LSB 0 Register
PWM LSB 1 Register
Address = 0x008E
Table B-27. PWM LSB 2 and 3 Registers
Address = 0x008C
Table B-28. Quadrature Decoder Control Register
Quadrature Decoder Improvements
Table B-29. Quadrature Decoder Count High Register
QDC1HR
User’s Manual 315
Serial Ports E/F
Pins with Alternate Functions
Table C-1. Differences Between System and User Modes
Appendix C. SYSTEM/USER Mode
System Mode User Mode
Instruction Bytes Clk Operation Priv
System/User Mode Opcodes
Table C-2. New System/User Mode Opcodes
Table C-3. System/User Mode I/O Registers
System/User Mode Registers
Register Name Mnemonic Address
Table C-4. I/O Addresses Inaccessible in User Mode
Interrupts
Figure C-1. Interrupt Handing in System/User Mode
Peripheral Interrupt Prioritization
Table C-5. Interrupts-Priority and Action to Clear Requests
Memory Protection Only
Using the System/User Mode
Figure C-3. System/User Mode Setup for Mixed Operation
Mixed System/User Mode Operation
Complete Operating System
Figure C-4. System/User Mode Setup for Operating System
Table D-1 Rabbit 3000A Internal I/O Registers
Appendix D. Rabbit 3000A Internal I/O Registers
Table D-1. Rabbit 3000A Internal I/O Registers
0x03C0 00000000 Serial Port E User Enable Register
0x006A Xxxxxxxx Port D Bit 3 Register
0x0082 00000000 Bank 3 Control Register
0x0098 Xx000000 Interrupt 1 Control Register
0x00D1 Xxxxxxxx Serial Port B Long Stop Register
334 Rabbit 3000 Microprocessor
User’s Manual 335
Page
Numerics
Index
Memory A16, A19 inversions /CS1
PWL2R, PWL3R
200