Table of Contents


1 Introduction

1.1 Summary of Design Conventions

2 Rabbit Hardware Design Overview

2.1 Design Conventions
Rabbit Programming Connector
Memory Chips
Oscillator Crystals
2.2 Operating Voltages
2.3 Power Consumption
2.4 Through-hole Technology

3 Core Design and Components

3.1 Clocks
Low-Power Design
Conformal Coating of 32.768 kHz Oscillator Circuit
3.2 Basic Memory Design
Memory Access Time
Precautions for Unprogrammed Flash Memory
3.3 PC Board Layout and Memory Line Permutation
3.4 PC Board Layout and Electromagnetic Interference
EMI Regulations
EMI Measuring Devices
Classes For EMI Testing
Layout and Decoupling for Low EMI
EMI Sources
Clock Signal Pin 1
High Frequency Oscillator Circuit
Processor Decoupling
Elimination of Power Plane

4 How Dynamic C Cold Boots the Target System

4.1 How the Cold Boot Mode Works In Detail
4.2 Program Loading Process Overview
Program Loading Process Details

5 Rabbit Memory Organization

5.1 Physical Memory
Flash Memory
SRAM
Basic Memory Configuration
5.2 Memory Segments
Definitions
The Root Memory Segment
Types of Code Best-Suited for the Root Memory Segment
The Data Segment
The Stack Segment
The Extended Memory Segment
5.3 How The Compiler Compiles to Memory
Placement of Code in Memory
Paged Access in Extended Memory

6 The Rabbit BIOS

6.1 Startup Conditions Set Up By the BIOS
6.2 BIOS Flowchart
6.3 Internally Defined Macros
6.4 Modifying the BIOS
6.5 Origin Statements to the Compiler
Origin Statement Syntax
Origin Statement Semantics
Origin Statement Examples
Origin Directives in Program Code

7 The System ID Block

7.1 Definition of SysIDBlock
7.2 Access
Reading the SystemID Block
Writing the SystemID Block
7.3 Determining the Existence of the SystemID Block

8 BIOS Support for Program Cloning

8.1 Overview of Cloning
Evolution of Cloning Support
8.2 Creating a Clone
Steps to Enable and Set Up Cloning
Steps to Perform Cloning
LED Patterns
8.3 Cloning Questions
MAC Address
Different Flash Sizes
Design Restrictions

9 Low-Power Design and Support

9.1 Software Support for Low-Power Sleepy Modes
9.2 Baud Rates in Sleepy Mode

10 Memory Planning

10.1 Making a RAM-only board.
Hardware Changes
Software Changes

11 Flash Memories

11.1 Supporting Other Flash Devices
11.2 Writing Your Own Flash Driver

12 Troubleshooting Tips for New Rabbit-Based Systems

12.1 Initial Checks
12.2 Diagnostic Test #2
12.3 Diagnostic Test #3

A Supported Rabbit 2000 Baud Rates

B Wait State Bug

Overview of the Bug
Wait States In Data Memory
Wait States in Code Memory
Instructions Affected by the Wait State Bug
Dynamic C version 7.05
Prior versions of Dynamic C
Output Enable Signal and Conditional Jumps
Workaround for Wait State Bug with Conditional Jumps
Output Enable Signal and Mul Instruction
Alternatives to Wait States in Code Memory
Enabling Wait States
Summary

Legal Notice