Download ZWorld Exp-A/D12 User`s manual

Transcript
RabbitCore 2000
C-Programmable Core Module
User’s Manual
001004 - C
RabbitCore 2000 User’s Manual
Part Number 019-0077 • 001004 - C • Printed in U.S.A.
Copyright
© 2000 Z-World, Inc. • All rights reserved.
Z-World reserves the right to make changes and improvements to its products without providing notice.
Trademarks
• Dynamic C® is a registered trademark of Z-World, Inc.
• Windows® is a registered trademark of Microsoft Corporation
• Rabbit 2000™ is a trademark of Rabbit Semiconductor
Notice to Users
When a system failure may cause serious consequences, protecting life and property
against such consequences with a backup system or safety device is essential. The buyer
agrees that protection against consequences resulting from system failure is the buyer’s
responsibility.
This device is not approved for life-support or medical systems.
All Z-World products are 100 percent functionally tested. Additional testing may include
visual quality control inspections or mechanical defects analyzer inspections. Specifications are based on characterization of tested sample units rather than testing over temperature and voltage of each unit. Z-World may qualify components to operate within a range
of parameters that is different from the manufacturer’s recommended range. This strategy
is believed to be more economical and effective. Additional testing or burn-in of an individual unit is available by special arrangement.
Company Address
Z-World, Inc.
Rabbit Semiconductor
2900 Spafford Street
Davis, California 95616-6800
USA
Telephone: (530) 757-3737
Facsimile: (530) 753-5141
Web site: http://www.zworld.com
E-mail: [email protected]
2932 Spafford Street
Davis, California 95616-6800
USA
Telephone: (530) 757-8400
Facsimile: (530) 757-8402
Web site: http://www.rabbitsemiconductor.com
E-mail: [email protected]
RabbitCore 2000
Table of Contents
About This Manual
1. Introduction1
1.1 Features .......................................................................................................................................2
1.2 Advantages of Using the RabbitCore 2000.................................................................................3
1.3 Development and Evaluation Tools ............................................................................................3
1.3.1 Development Kit........................................................................................................3
1.3.2 Documentation...........................................................................................................4
2. Subsystems......................................................................................................................5
2.1 Switching Between Program Mode and Run Mode....................................................................6
2.1.1 Detailed Instructions: Changing from Program Mode to Run Mode ........................6
2.1.2 Detailed Instructions: Changing from Run Mode to Program Mode ........................6
2.2 RabbitCore 2000 Digital Inputs and Outputs..............................................................................7
2.2.1 Dedicated Inputs ......................................................................................................10
2.2.2 Dedicated Outputs....................................................................................................10
2.3 Memory I/O Interface................................................................................................................11
2.3.1 Additional I/0 ...........................................................................................................11
2.4 Serial Communication...............................................................................................................12
2.4.1 Serial Ports ...............................................................................................................12
2.4.2 Programming Port....................................................................................................12
2.5 Clock Doubler ...........................................................................................................................13
2.6 Memory .....................................................................................................................................14
2.6.1 SRAM ......................................................................................................................14
2.6.2 Flash EPROM ..........................................................................................................14
2.6.3 Dynamic C BIOS Source Files ................................................................................14
3. Software Reference.......................................................................................................15
3.1 More About Dynamic C............................................................................................................16
3.1.1 Operating System Framework .................................................................................16
3.1.2 Using Dynamic C.....................................................................................................17
3.2 I/O..............................................................................................................................................17
3.3 Serial Communication Drivers..................................................................................................18
3.3.1 Open and Close Functions .......................................................................................19
3.3.2 Non-Cofunction Blocking Input Functions .............................................................20
3.3.3 Non-Cofunction Blocking Output Functions...........................................................21
3.3.4 Single-User Cofunction Input Functions .................................................................22
3.3.5 Single-User Cofunction Output Functions ..............................................................23
3.3.6 Circular Buffer Functions ........................................................................................24
Appendix A. Specifications ..............................................................................................27
A.1 Electrical and Mechanical Specifications.................................................................................28
A.1.1 Headers ...................................................................................................................30
A.2 Bus Loading .............................................................................................................................31
A.3 Rabbit 2000 DC Characteristics ...............................................................................................33
A.4 I/O Buffer Sourcing and Sinking Limit....................................................................................34
User’s Manual
Appendix B. Prototyping Board .......................................................................................35
B.1 Mechanical Dimensions and Layout........................................................................................ 36
B.2 Power Supply ........................................................................................................................... 37
B.3 Using the Prototyping Board ................................................................................................... 37
B.3.1 Adding Other Components..................................................................................... 40
Appendix C. Power Management .....................................................................................41
C.1 Power Supplies......................................................................................................................... 42
C.1.1 Batteries and External Battery Connections........................................................... 42
C.1.2 Battery Backup Circuit ........................................................................................... 43
C.1.3 Power to VRAM Switch......................................................................................... 44
C.1.4 Reset Generator ...................................................................................................... 45
C.2 Chip Select Circuit................................................................................................................... 45
Appendix D. Sample Circuits ...........................................................................................47
D.1
D.2
D.3
D.4
D.5
RS-232/RS-485 Serial Communication................................................................................... 48
Keypad and LCD Connections ................................................................................................ 49
LCD Connections .................................................................................................................... 50
External Memory ..................................................................................................................... 51
D/A Converter.......................................................................................................................... 52
Schematics
RabbitCore 2000
About This Manual
This manual provides instructions for installing, testing, configuring, and interconnecting
the RabbitCore 2000 (RCM 2000) and the RCM 2000 Prototyping Board.
Assumptions
Assumptions are made regarding the user’s knowledge and experience in the following
areas:
• Ability to design and engineer the target system that a RabbitCore 2000 will control.
• Understanding of the basics of operating a software program and editing files under
Windows on a PC.
• Knowledge of basic assembly language and architecture for controllers.
&
For a full treatment of C, refer to the following texts:
The C Programming Language by Kernighan and Ritchie (published by PrenticeHall).
and/or
C: A Reference Manual by Harbison and Steel (published by Prentice-Hall).
• Knowledge of basic assembly language and Rabbit microprocessor architecture.
&
For more information on the Rabbit 2000 microprocessor, refer to the Rabbit 2000
Microprocessor user’s Guide.
Acronyms
Table 1 lists and defines the acronyms that may be used in this manual.
Table 1. Acronyms
Acronym
User’s Manual
Meaning
EPROM
Erasable Programmable Read-Only Memory
EEPROM
Electronically Erasable Programmable Read-Only
Memory
NMI
Nonmaskable interrupt
PIO
Parallel Input/Output
(Individually programmable input/output)
PRT
Programmable Reload Timer
RAM
Random Access Memory
RTC
Real-Time Clock
SRAM
Static Random Access Memory
UART
Universal Asynchronous Receiver Transmitter
Conventions
Table 2 lists and defines the typographic conventions that may be used in this manual.
Table 2. Typographic Conventions
Example
Description
while
Bold Courier font indicates a program, a fragment of a
program, or a Dynamic C keyword or phrase.
// IN-01…
Program comments are in normal Courier font.
Italics
Courier italics indicate that something should be typed
instead of the italicized words (e.g., type a file name
where filename is shown).
Edit
Bold sans serif font indicates a menu or menu selection.
…
An ellipsis indicates that (1) irrelevant program text is
omitted for brevity, or that (2) the preceding program
text may be repeated indefinitely.
[ ]
Square brackets in a C function’s definition or program
segment indicate that the enclosed directive is optional.
< >
Angle brackets are used to enclose classes of terms.
a | b | c
A vertical bar indicates that a choice should be made
from among the items listed.
Pin Number 1
A black square indicates pin 1 of all headers.
Pin 1
J1
Measurements
All diagram and graphic measurements are in inches followed by millimeters enclosed in
parenthesis.
Application Notes
The CD contains application notes and technical notes that will enhance your use of Rabbit-based products and provide information about the latest product enhancements. These
notes are also available on the Web sites.
www.zworld.com
or
www.rabbitsemiconductor.com
RabbitCore 2000
1. INTRODUCTION
User’s Manual
1
The RabbitCore 2000 is a microprocessor core module designed to be the heart of your
own controller built around the plug-in module. Data processing is done by a Rabbit 2000
microprocessor operating at 25.8 MHz (RCM2000 and RCM2010).
The RabbitCore 2000 has a Rabbit 2000 microprocessor, a static RAM, a flash memory,
two quartz crystals (main oscillator and timekeeping), and the circuitry necessary for reset
and management of battery backup of the Rabbit 2000’s internal real-time clock and the
static RAM. Two 40-pin headers bring out the Rabbit 2000 I/O bus, address lines, data
lines, parallel ports, and serial ports.
The RabbitCore 2000 receives its +5 V power from the user board on which it is mounted.
The RabbitCore 2000 can interface will all kinds of digital devices through the user board.
The RabbitCore 2000 Development Kit comes with a Prototyping Board that can be used
to demonstrate the operation of the RabbitCore 2000 and to prototype new circuits.
1.1 Features
• Small size: 1.90" × 2.30" (48.3 mm × 58.4 mm)
• Microprocessor: Rabbit 2000 running at 25.8 MHz (RCM2000 and RCM2010)
• 40 CMOS-compatible parallel I/O lines grouped in five 8-bit ports (shared with serial
ports)
• 8 data lines (D0–D7)
• 13 address lines (A0–A12)
• I/0 read, write, buffer enable
• Status, watchdog and clock outputs
• Two startup mode inputs for master/slave configuration
• External reset input
• Reset output
• Five 8-bit timers, two 10-bit timers; five timers are cascadable in pairs
• 256K flash EPROM, 512K SRAM
• Real-time clock
• Watchdog supervisor
• Provision for customer-supplied backup battery via connections on header J2
• Four CMOS-compatible serial ports: maximum asynchronous baud rate of 806,400 bps,
maximum synchronous baud rate of 6.45 Mbps. Two ports are configurable as clocked
ports.
Appendix A, “Specifications,” provides detailed specifications for the RabbitCore 2000.
Three versions of the RabbitCore 2000 are available. Their standard features are summarized in Table 1.
2
RabbitCore 2000
Table 1. RabbitCore 2000 Features
Model
Features
RCM2000
Full-featured controller.
RCM2010
RCM2000 with 128K SRAM
RCM2020
RCM2000 with 18.432 MHz clock and 128K SRAM
1.2 Advantages of Using the RabbitCore 2000
• Fast design time since the basic core has already been designed and built.
• Competitive pricing compared with purchasing and assembling the individual components.
• Easy programming, including production installation of a program.
• Generous memory size allows large C programs with tens of thousands of lines of code,
and substantial data storage.
1.3 Development and Evaluation Tools
1.3.1 Development Kit
The Development Kit has the essentials that you need to design your own a microprocessor-based system, and includes a complete software development system (Dynamic C).
The items in the Development Kit and their use are as follows:
• CD-ROM with Dynamic C® software, RabbitCore 2000, and Rabbit™ 2000 microprocessor documentation. You may install this software by inserting the disk into your
CD-ROM drive. If it doesn’t start automatically, click on “setup.exe.” This software
runs under Windows ‘95, Windows ‘98, and Windows NT. We suggest taking the
option to load the documentation to your hard disk. The documentation is in both
HTML and Adobe PDF format, and may be viewed with a browser.
• RabbitCore 2000 (RCM2020 model). This is a complete controller board that includes
a Rabbit 2000 processor, 256K of flash memory, 128K of SRAM.
• Prototyping Board. The RabbitCore 2000 can be plugged into this board. The Prototyping Board includes a 5 V supply for powering the RabbitCore 2000, and various
accessories such as pushbutton switches, and LEDs. In addition, you can add your own
circuitry using through-hole or surface mount parts in the prototyping space provided.
• Programming cable. The programming cable is used to connect your PC serial port
directly to the RabbitCore 2000 to write and debug C programs that run on the Rabbit
2000.
• AC adapter. The AC adapter is used to power the Prototyping Board and the RabbitCore 2000. The wall transformer is supplied only for Development Kits sold for the
North American market. The Prototyping Board can also be powered from any DC
voltage source between 7.5 V and 25 V. The linear regulator becomes rather hot for
voltages above 15 V.
User’s Manual
3
1.3.2 Documentation
• Our documentation is provided in paperless form on the CD-ROM included in the
Development Kit. (A paper copy of the “Getting Started” page is included.) Most documents, including this comprehensive RabbitCore 2000 User’s Manual, are provided
in two formats: HTML and PDF. HTML documents can be viewed with an Internet
browser, either Netscape Navigator or Internet Explorer. HTML documents are very
convenient because all the documents are hyperlinked together, and it is easy to navigate from one place to another. PDF documents can be viewed using the Adobe Acrobat reader, which is automatically invoked from the browser. The PDF format is best
suited for documents requiring high resolution, such as schematics, or if you want to
print the document. Don’t print a hard copy from the HTML version because the
HTML version has no page numbers and the cross-references and table of contents
links only work if viewed on line. The PDF versions contain page number references
to allow navigation when reading a paper version of the manual. To view the online
documentation with a browser, open the file default.htm in the docs folder.
4
RabbitCore 2000
2. SUBSYSTEMS
Chapter 2 describes the principal subsystems for the RabbitCore 2000.
• Switching Between Program Mode and Run Mode
• Rabbit 2000 Core Module Digital Inputs and Outputs
• Serial Communication
• Memory
User’s Manual
5
2.1 Switching Between Program Mode and Run Mode
The RabbitCore 2000 is automatically in Program Mode when the programming cable is
attached, and is automatically in Run Mode when no programming cable is attached. See
Figure 1.
Run Mode
RESET
S2
S3
S3
J6
RS-232
C5
RXB
TXB
A3
A1
STAT
PC1
PC3
PC5
PC7
PD1
PD3
PD5
PD7
A0
PC0
PC2
PC4
PC6
PD0
PD2
PD4
PD6
GND
A5
A2
/RSTI
A7
SM1
A9
A4
VCC
A11
A6
C6
VRAM
C4
GND
RXC TXC
C2
U2
A8
J4
DS3
/RSTO
VCC
PA1
PB3
A10
/IOR
PE0
PE2
PE4
GND
DS1
DS2
PB2
C3
/WDO
/BEN
PE1
PE6
D0
D2
D4
D6
GND
/RESO
S1
JP1DS2
PA0
J3
/IOW
PE3
PE5
PE7
D1
D3
D5
/RSTI
PWR
D2
VCC
C5
RN1
A12
A10
A8
A6
A4
A2
A0
PC0
PC2 U1
PC4
PC6
+
PD0 C1
PD2
PD4
PD6
GND
VBAT
SM0
SM0
SRAM
J5
J2
A9
A7
A5
A3
A1
STAT
PC1
PC3
PC5
PC7
PD1
PD3
PD5
PD7
VCC
VRAM
SM1
JP1
U2
R4
PB7
J3A11
TP3
A12
C2
R2
TP2
S2 DS3
C3
D7
Y2
PB5
PB1
PA5
PA7
PA6
PA4
PB2
PB0
PA1
VCC
PA3
PA2
PA0
GND
/RSTI
SM1
VRAM
VCC
GND
VCC
SM0
GND
VBAT
J2
PB3
R3
PB6
/WDO
Y1
C1
GND
PA0
PA2
R1
PA4
U1
PA6
PB0
PB2
PB4
PB6
PCLK
D7
D5
D3
D1
PE7
PE5
PE3
PE1C4
/IOW
/BEN
PCLK
J1
PA1
PA3
PA5
PA7
PB1
PB3
PB5
PB7
GND
D6
D4
D2
D0
PE6
PE4
PE2
PE0
/IOR
PB4
TXB
RCM2000 PROTOTYPING BOARD
RESET
S2
RXC TXC
RXB
/RSTO
PD5
PD3
PD7
PD6
PD1
PC7
Pins 38–40
To PC COM port
GND
VCC
J1
C6
PD4
PC5
PC3
PC1
C5
PD2
C4
PC4
STAT
J6
RS-232
PC2
A1
A3
S3
S3
C2
U2
PC0
A5
DS3
S2 DS3
PA1
PB3
A0
A7
A9
DS1
DS2
PB2
A2
A4
A6
A11
J4
A10
/IOR
PE0
VCC
S1
JP1DS2
PA0
C3
/WDO
/BEN
PE2
PE4
PE6
D0
D2
D4
D6
GND
/RESO
GND
D2
J3
/IOW
PE1
PE3
PE5
PE7
D1
D3
Colored side
lines up with
pin 1
/RSTI
PWR
PD0
C5
TP1
RN1
A12
A10
A8
A6
A4
A2
A0
PC0
PC2 U1
PC4
PC6
+
PD0 C1
PD2
PD4
PD6
GND
VBAT
SM0
PC6
SRAM
J5
J2
A9
A7
A5
A3
A1
STAT
PC1
PC3
PC5
PC7
PD1
PD3
PD5
PD7
VCC
VRAM
SM1
JP1
R4
PB7
J3A11
TP3
A12
TP2
U2
D5
PB5
C2
R2
D7
PB3
Y2
PB6
PB1
PA7
PA6
PB2
PB0
PA3
PA1
PA5
PA4
PA2
GND
J2
PA0
VCC
R3
C3
PCLK
/WDO
Y1
C1
GND
PA0
PA2
R1
PA4
U1
PA6
PB0
PB2
PB4
PB6
PCLK
D7
D5
D3
D1
PE7
PE5
PE3
PE1C4
/IOW
/BEN
PB4
RCM2000 PROTOTYPING BOARD
J1
PA1
PA3
PA5
PA7
PB1
PB3
PB5
PB7
GND
D6
D4
D2
D0
PE6
PE4
PE2
PE0
/IOR
A8
TP1
VCC
J1
Power
Rabbit 2000
Core Module
GND
Power
Rabbit 2000
Core Module
VBAT
Program Mode
RESET Core Module when changing mode:
Short out pins 38–40 on header J2, OR
Press RESET button (if using Prototyping Board), OR
Remove, then reapply power
after removing or attaching programming cable.
Figure 1. RabbitCore 2000 Program Mode and Run Mode Setup
2.1.1 Detailed Instructions: Changing from Program Mode to Run Mode
1. Disconnect the programming cable from header J3 of the RabbitCore 2000.
D2
3. Attach the programming cable to header J3
on the RabbitCore 2000.
DS1
DS2
PA1
S2
JP1DS2
PA0
PB2
2.1.2 Detailed Instructions: Changing from
Run Mode to Program Mode
S1
RESET
PWR
DS3
S3
The RabbitCore 2000 is now ready to operate
in the Run Mode.
J5
RN1
S2 DS3
2. Reset the RabbitCore 2000. You may do
this as explained in Figure 1. Figure 2
shows the location of the RESET button on
the Prototyping Board.
PB3
Figure 2. Location of Prototyping Board
Reset Button
4. Reset the RabbitCore 2000. You may do this as explained in Figure 1. Figure 2 shows
the location of the RESET button on the Prototyping Board.
The RabbitCore 2000 is now ready to operate in the Program Mode.
6
RabbitCore 2000
2.2 RabbitCore 2000 Digital Inputs and Outputs
Figure 3 shows the subsystems designed into the RabbitCore 2000.
PA0–PA7
4x CMOS
synchronous/
asynchronous
PCLK
RESET
WDO
PB0–
PB5
PB6
PB7
PD0–PD7
Port A
Port B
Port D
Serial Ports
(Port C)
RABBIT 2000
CORE
MODULE
Port E
PE0–PE7
Address Lines
A0–A12
I/O Control
IORD
IOWR
BUFEN
Programming
Port
Misc. Outputs
Real-Time Clock
Watchdog
7 Timers
Slave Port
Clock Doubler
RAM
Backup Battery
Support
Data Lines
DA0–DA7
Flash
Figure 3. RabbitCore 2000 Subsystems
The RabbitCore 2000 has 40 parallel I/O lines grouped in five 8-bit ports available on
headers J1 and J2. The 24 bidirectional I/O lines are located on pins PA0–PA7, PD0-PD7,
and PE0-PE7. The pinouts for headers J1 and J2 are shown in Figure 4.
J2
A12
A10
A8
A6
A4
A2
A0
PC0
PC2
PC4
PC6
PD0
PD2
PD4
PD6
GND
VBAT
SMODE0
/RES_OUT
VCC
J1
A11
A9
A7
A5
A3
A1
STATUS
PC1
PC3
PC5
PC7
PD1
PD3
PD5
PD7
VCC
VRAM
SMODE1
/RES_IN
GND
GND
PA0
PA2
PA4
PA6
PB0
PB2
PB4
PB6
PCLK
D7
D5
D3
D1
PE7
PE5
PE3
PE1
/IOWR
/BUFEN
VCC
PA1
PA3
PA5
PA7
PB1
PB3
PB5
PB7
GND
D6
D4
D2
D0
PE6
PE4
PE2
PE0
/IORD
/WDO
Note: These are the pinouts as seen on the
Bottom Side of the Core Module.
Figure 4. RabbitCore 2000 I/O Pins
User’s Manual
7
The ports on the Rabbit 2000 microprocessor used in the RabbitCore 2000 are configurable, and so the factory defaults can be reconfigured. Table 2 lists the Rabbit 2000 factory defaults and the alternate configurations.
Table 2. RabbitCore 2000 Pinout Configurations
Pin
Pin Name
1, 20
GND
2
VCC
Default Use
Alternate Use
PA[0:7]
Parallel I/O
Slave port data bus
SD0–SD7
11
PB0
Input
Serial port clock CLKB
12
PB1
Input
Serial port clock CLKA
13
PB2
Input
Slave port write /SWR
14
PB3
Input
Slave port read /SRD
15
PB4
Input
SA0
16
PB5
Input
SA1
17
PB6
Output
18
PB7
Output
Slave port attention line
/SLAVEATTN
19
PCLK
Output (Internal Clock)
Output
21–28
D[7:0]
Input/Output
3–10
Notes
CLKA is connected to
programming port (header
J3, pin 3)
Header J1
Slave port address lines
8
Rabbit 2000 data bus
29
PE7
I7 output or slave port chip
select /SCS
30
PE6
I6 output
31
PE5
I5 output or INT1B input
32
PE4
33
PE3
I3 output
34
PE2
I2 output
35
PE1
I1 output or INT1A input
36
PE0
I0 output or INT0A input
37
/IOWR
Output (I/O write strobe)
38
/IORD
Output (I/O read strobe)
39
/BUFEN
Output (I/O buffer enable)
40
/WDO
Output (Watchdog output)
Bitwise or parallel
programmable I/O
Disable by removing R27
I4 output or INT0B input
May also be used to output
a 30 µs pulse
Outputs a pulse when
the internal watchdog
times out
RabbitCore 2000
Table 2. RabbitCore 2000 Pinout Configurations (continued)
Header J2
Pin
Pin Name
Default Use
Alternate Use
Output
Notes
Rabbit 2000 address bus
1–13
A[12:0]
14
STAT
Output (Status)
Output
15
PC0
Output
TXD
16
PC1
Input
RXD
17
PC2
Output
TXC
18
PC3
Input
RXC
19
PC4
Output
TXB
20
PC5
Input
RXB
21
PC6
Output
TXA
22
PC7
Input
RXA
21
PC6
Output
TXA
22
PC7
Input
RXA
23–26
PD[0:3]
27
PD4
28
PD5
29
PD6
ATXA output
30
PD7
ARXA input
31, 40
GND
32, 39
VCC
33
VBATR
3 V battery input
34
VRAM
2.1 V output
100 kΩ minimum load
(0,0)—start executing at
address zero
No programming cable
attached
35–36
SMODE0,
SMODE1
37
/RES_OUT
38
/RES_IN
User’s Manual
Connected to programming port
16 mA sourcing and
sinking current at full
AC switching speed
Bitwise or parallel
programmable I/O, can
be driven or open-drain
output
ATXB output
ARXB input
SMODE0 =1, SMODE1 = 1
(0,1)—cold boot from
Cold boot from asynslave port
chronous serial port A at
(1,0)—cold boot from
2400 bps (programming
clocked serial port A
cable connected)
With programming
cable attached
Reset Output
Reset Input
9
As shown in Table 2, pins PA0–PA7 can be used to allow the Rabbit 2000 to be a slave to
another processor. PE0, PE1, PE4, and PE5 can be used as external interrupts INT0A,
INT1A, INT0B, and INT1B. Pins PB0 and PB1 can be used to access the clock on Serial
Port B and Serial Port A of the Rabbit microprocessor. Pins PD4 and PD6 can be programmed to be optional serial outputs for Serial Ports B and A. PD5 and PD7 can be used
as alternate serial inputs by Serial Ports B and A.
2.2.1 Dedicated Inputs
PB0 and PB1 are designated as inputs because the Rabbit 2000 is operating in an asynchronous mode. Four of the input-only pins are located on PB2–PB5. These pins are used
for the slave port. PB2 and PB3 are slave write and slave read strobes, while PB4 and PB5
serve as slave address lines SA0 and SA1, and are used to access the slave registers (SD0–
SD7), which is the alternate assignment for parallel port A. When Port C is used as a parallel port, PC1, PC3, PC5, and PC7 are inputs only. These pins can alternately be selectively enabled to serve as the serial data inputs for Serial Ports D, C, B, and A.
2.2.2 Dedicated Outputs
Two of the output-only pins are located on PB6–PB7. PB7 can also be used with the slave
port as the /SLAVEATTN output. This configuration signifies that the slave is requesting
attention from the master. When Port C is used as a parallel port, PC0, PC2, PC4 and PC6
are outputs only. These pins can alternately serve as the serial data outputs for Serial Ports
D, C, B, and A.
10
RabbitCore 2000
2.3 Memory I/O Interface
Thirteen of the Rabbit 2000 address lines (A0–A12) and all the data lines (D0–D7) are
available as outputs on the RabbitCore 2000. I/0 write (/IOWR), I/0 read (/IORD), buffer
enable (/BUFEN), and Watchdog Output (/WDO) are also available for interfacing to
external devices.
The STATUS output has three different programmable functions:
1. It can be driven low on the first op code fetch cycle.
2. It can be driven low during an interrupt acknowledge cycle.
3. It can also serve as a general-purpose output.
The output clock is available on the PCLK pin. The primary function of PCLK is as a
peripheral clock or a peripheral clock ÷ 2, but PCLK can instead be used as a digital output. PCLK can also be disabled by removing R27 if there is a need to reduce radiated
emissions. Removing R27 will disable the PCLK output on pin 19 of header J1.
Bottom Side
R10
Q10
Q11
D10
D11
D12
R11
R12
R13
A1 R30
A0
STAT
PC0
PC1
Q13
R28
R31
R32
PC3
PC4
PC5
PC6
PC7
C14
PC2
GND
VCC
VBAT
VRAM
/RSTI
VCC
GND
R36
C18
SM1
C17
SM0
/RESO
C16
R42
R41
R40
PD7
J1
VCC
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PCLK
GND
D7
D6
D5
D4
D3
R38
PD6
Flash
EPROM
R39
PD5
R27
C13
R37
PD4
U10
PD3
C15
PD1
PD2
R34 R35
PD0
R33
C12
U11
R26
A3 R29
A2
R17 R18
JP2
R25
A5
A4
R16
C11
A6
GND
R15
R24
A7
R23
R22
R21
A9
A8
C10
A11
A10
Q14 Q15 D13
A12
R27
R14
R19 R20 Q12
D2
D1
D0
PE7
PE6
PE5
PE4
PE3
PE2
PE1
PE0
/IOW
/IOR
/BEN
/WDO
Figure 5. Location of R27
2.3.1 Additional I/0
Two status mode pins, SMODE0 and SMODE1, are available as inputs. The logic state
of these two pins determines the startup procedure after a reset. /RES_IN is an external
input used to reset the Rabbit 2000 microprocessor and RabbitCore 2000 memory.
/RES_OUT is an output from the reset circuitry that can be used to reset other peripheral
devices.
User’s Manual
11
2.4 Serial Communication
The RabbitCore 2000 does not have an RS-232 or an RS-485 transceiver directly on the
RabbitCore 2000 board. However, the Prototyping Board does support a industry standard RS-232 transceiver chip. See Appendix B, “Prototyping Board,” for more information.
2.4.1 Serial Ports
There are four serial ports designated as Serial Ports A, B, C, and D. All four serial ports
can operate in an asynchronous mode up to the baud rate of the system clock divided by
32. An asynchronous port can handle 7 or 8 data bits. A 9th bit address scheme, where an
additional bit is sent to mark the first byte of a message, is also supported. Serial ports A
and B can be operated alternately in the clocked serial mode. In this mode, a clock line
synchronously clocks the data in or out. Either of the two communicating devices can
supply the clock. When the Rabbit provides the clock, the baud rate can be up to 1/4 of the
system clock frequency, or more than 6.45 Mbps for a 25.8 MHz clock speed.
2.4.2 Programming Port
Serial Port A has special features that allow it to cold-boot the system after reset. Serial
Port A is also the port that is used for software development under Dynamic C.
The RabbitCore 2000 has a 10-pin program header labeled J3. The Rabbit 2000 startupmode pins (SMODE0, SMODE1) are presented to the programming port so that an externally connected device can force the RabbitCore 2000 to start up in an external bootstrap
mode. The Rabbit 2000 Microprocessor User’s Manual provides more information
related to the bootstrap mode.
The programming port is used to start the RabbitCore 2000 in a mode where it will download a program from the port and then execute the program. The programming port transmits information to and from a PC while a program is being debugged.
The RabbitCore 2000 can be reset from the programming port via the /RESET_IN line.
The Rabbit 2000 status pin is also presented to the programming port. The status pin is an
output that can be used to send a general digital signal.
The clock line for Serial Port A is presented to the programming port, which makes fast
serial communication possible.
12
RabbitCore 2000
2.5 Clock Doubler
The RabbitCore 2000 takes advantage of the Rabbit 2000 microprocessor’s internal clock
doubler. A built-in clock doubler allows half-frequency crystals to be used to reduce radiated emissions. The 25.8 MHz (RCM 2000 and RCM2010) and 18.4 MHz (RCM 2020)
frequencies are generated using 12.9 MHz and 9.2 MHz crystals. The clock doubler is
disabled automatically in the BIOS for crystals with a frequency above 12.9 MHz.
The clock doubler can be disabled if 25.8 MHz or 18.4 MHz clock speeds are not required.
Disabling the Rabbit 2000 microprocessor’s internal clock will reduce power consumption
and further reduce radiated emissions. The clock doubler is disabled with a simple change
to the BIOS as described below.
1. Open the BIOS source code file, RABBITBIOS.C in the BIOS directory.
2. Change the line
#define CLOCK_DOUBLED 1
// set to 1 to double the clock if XTAL<=12.9MHz,
to read as follows.
#define CLOCK_DOUBLED 0
// set to 1 to double the clock if XTAL<=12.9MHz,
3. Change the serial baud rate to 57,600 bps when the RabbitCore 2000 is operated at 12.9
MHz or 9.2 MHz.
4. Save the change using File > Save.
User’s Manual
13
2.6 Memory
2.6.1 SRAM
The RabbitCore 2000 is designed to accept 32K to 512K of SRAM packaged in an SOIC
case.
The existing standard models of the RabbitCore 2000 come with 128K or 512K of SRAM.
Figure 6 shows the locations and the jumper settings for the jumpers at JP1 used to set the
SRAM size. The “jumpers” are 0 Ω surface-mounted resistors.
SRAM
128K
JP1
Flash EPROM
512K
JP1
3 2 1
TP1
C1
3 2 1
C2
JP1
R12
R13
A7
A6
A5
A4
A3 R29
A2
A1 R30
A0
STAT
PC0
PC1
R16
R28
R31
PC2
R32
PC3
PC4
PC5
PC6
PC7
PD1
PD2
PD3
PD4
PD5
PD6
PD7
GND
VCC
VBAT
VRAM
/RSTI
VCC
GND
R27
C13
R36
R14
J1
VCC
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4
Flash
EPROM
PB5
PB6
PB7
PCLK
GND
D7
D6
D5
D4
D3
C18
SM1
C12
U11
C17
SM0
/RESO
JP2
C16
R42
R41
R40
PD0
R33
R17 R18
R26
A8
R15
R25
A9
C11
A10
GND
R24
A11
R38
VCC
R11
R39
GND
R4
D12
R37
/RESO
A12
U10
/RSTI
D11
R19 R20 Q12
C15
C5
D10
R23
R22
R21
SRAM
A12
A10
A8
A6
A4
A2
A0
PC0
PC2
PC4
PC6
PD0
PD2
PD4
PD6
GND
VBAT
SM0
Q11
Q14 Q15 D13
U2
TP3
A11
A9
A7
A5
A3
A1
STAT
PC1
PC3
PC5
PC7
PD1
PD3
PD5
PD7
VCC
VRAM
SM1
Q10
3 2 1
C10
R2
TP2
J2
Q13
Y2
C3
512K
JP2
R10
Y1
GND
PA0
PA2
R1
PA4
U1
PA6
PB0
PB2
PB4
PB6
PCLK
D7
D5
D3
D1
PE7
PE5
PE3
PE1C4
/IOW
/BEN
R3
3 2 1
R34 R35
/WDO
JP2
C14
VCC
PA1
PA3
PA5
PA7
PB1
PB3
PB5
PB7
GND
D6
D4
D2
D0
PE6
PE4
PE2
PE0
/IOR
J1
128K/256K
D2
D1
D0
PE7
PE6
PE5
PE4
PE3
PE2
PE1
PE0
/IOW
/IOR
/BEN
/WDO
J3
Top Side
Bottom Side
Figure 6. RabbitCore 2000 Jumper Settings
for SRAM and Flash EPROM Size
2.6.2 Flash EPROM
The RabbitCore 2000 is also designed to accept 128K to 512K of flash EPROM packaged
in a TSOP case.
The existing standard models of the RabbitCore 2000 come with 256K of flash EPROM.
Figure 6 shows the locations and the jumper settings for the jumpers at JP2 used to set the
flash EPROM size. The “jumpers” are 0 Ω surface-mounted resistors.
!
Z-World recommends that any customer applications should not be constrained by the
sector size of the flash EPROM since it may be necessary to change the sector size in
the future.
2.6.3 Dynamic C BIOS Source Files
The Dynamic C BIOS source files handle different standard RAM and flash EPROM sizes automatically.
14
RabbitCore 2000
3. SOFTWARE REFERENCE
User’s Manual
15
3.1 More About Dynamic C
Dynamic C has been in use worldwide since 1989. Dynamic C is specially designed for
programming embedded systems. Dynamic C features quick compile and interactive
debugging in the real environment. A complete reference to Dynamic C is contained in
the Dynamic C Reference Manual.
Dynamic C for Rabbit™ processors uses the standard Rabbit programming interface. This
is a 10-pin connector that connects to the Rabbit serial port A. It is possible to reset and
cold-boot a Rabbit processor via the programming port. No software needs to be present
in the target system. More details are available in the Rabbit 2000 Microprocessor User’s
Manual.
Dynamic C cold-boots the target system and compiles the BIOS. The BIOS is a basic program of a few thousand bytes in length that provides the debugging and communication
facilities that Dynamic C needs. Once the BIOS has been compiled, the user can compile
his own program and test it. If the BIOS fails because the program stops running, a new
cold boot and BIOS compile can be done at any time.
The BIOS can be customized by using #define options.
Dynamic C does not use include files, rather it has libraries that are used for the same
purpose, that is, to supply function prototypes to programs before they are compiled.
Libraries are much easier to use compared to include files.
Dynamic C supports assembly language, either as separate functions or as fragments
embedded in C programs. Interrupt routines may be written in Dynamic C or in assembly
language.
3.1.1 Operating System Framework
Dynamic C does not include an operating system in the usual sense of a complex software
system that is resident in memory. The user has complete control of what is loaded as a
part of his program, other than those routines that support loading and debugging (which
are inactive at embedded run time). However, certain routines are very basic and normally
should always be present and active.
• Periodic interrupt routine. This interrupt routine is driven by the Rabbit periodic interrupt facility, and when enabled creates an interrupt every 16 ticks of the 32.768 kHz
oscillator, or every 488 µs. This routine drives three long global variables that keep
track of the time: SEC_TIMER, MS_TIMER, and TICK_TIMER that respectively count
seconds, milliseconds, and 488 µs ticks. These variables are needed by virtually all
functions that measure time. The SEC_TIMER is set to seconds elapsed since 1 Jan
1980, and thus also keeps track of the time and date. The periodic interrupt routine
must be disabled when the microprocessor enters sleepy mode and the processor clock
is operating at 32.768 kHz. The interrupt routine cannot complete at this slow speed
before the next tick of the periodic interrupt. In this situation, the hardware real-time
clock can be read directly to provide the time.
16
RabbitCore 2000
• Watchdog support routines. Although the Rabbit watchdog can be disabled, this is not
recommended since the watchdog is an essential facility for recovering when a program
stops running. Very few systems are crash-free in real life.
3.1.2 Using Dynamic C
You have a choice of doing your software development in the flash memory or in the static
RAM. There are 256K bytes of flash and 128K SRAM memory. The advantage of working in RAM is to save wear on the flash, which is limited to about 100,000 writes.
!
Note that an application can be developed in RAM, but cannot run standalone from
RAM after the programming cable is disconnected. All applications can only run from
flash.
Do not depend on the flash sector size for debugging. Due to the volatility of the flash
market, the RabbitCore 2000 and Dynamic C were designed to accommodate flash
devices with various sector sizes.
When using flash EPROM, the compile to a file is followed by a download to the flash
EPROM. The disadvantage of using flash EPROM is that interrupts must be disabled for
approximately 5 ms whenever a break point is set in the program. This can crash fast
interrupt routines that are running while you stop at a break point or single-step the program. Flash EPROM or RAM is selected with the Dynamic C Options > Compiler
menu.
3.2 I/O
The RabbitCore 2000 was designed to interface with other systems, and so there are no
drivers written specifically for this purpose. The general Dynamic C read and write functions allow you to customize the parallel I/O to meet your specific needs. For example,
use
WrPortI(PEDDR, &PEDDRShadow, 0x00);
to set all the port E bits as inputs, or use
WrPortI(PEDDR, &PEDDRShadow, 0xFF);
to set all the port E bits as outputs.
The sample programs in the Dynamic C SAMPLES directory provide further examples.
User’s Manual
17
3.3 Serial Communication Drivers
The Prototyping Board has room for an RS-232 chip for which the Rabbit serial library,
RSERIAL.LIB, provides users with a set of functions that send and receive entire blocks
of data without yielding to other tasks, a set of single-user cofunctions that send and
receive data but yield to other tasks, and a set of circular buffer functions.
The naming convention is serXfn:
ser - serial
X - the port being used: A, B, C, or D
fn - the function being implemented
For example, serBgetc() is the serial port B function getc(), which returns a character.
The Rabbit serial functions are listed in the following groups.
Open and Close Functions
Non-Cofunction Blocking Input Functions
Non-Cofunction Blocking Output Functions
Single-User Cofunction Input Functions
Single-User Cofunction Output Functions
Circular Buffer Functions
18
RabbitCore 2000
3.3.1 Open and Close Functions
The open and close functions enable and disable serial communication over the specified
port.
int serXopen (long baud);
Currently only 8N1 transmission (8 data bits, no parity, 1 stop bit) is supported. The open function sets
up the interrupt service routine vector.
Parameters
baud—desired baud rate in bits per second
Return Value
1—The baud rate set on the Rabbit is the same as the input baud rate.
0—The baud rate set on the rabbit does not match the input baud rate.
int serXclose ( );
Disables the serial port interrupt service routine.
Parameters
None.
Return Value
1
User’s Manual
19
3.3.2 Non-Cofunction Blocking Input Functions
These are simple functions that do not use Dynamic C costatements. If no input data are
available when called, they return immediately with appropriate status information in their
return value. Once they begin to receive characters, they do not yield to other tasks until
they complete their operation or until a character-to-character time-out period elapses.
int serXgetc ( );
Gets a single character. Always returns immediately, either with the next available input byte, or with –1
if none is available.
Parameters
None
Return Value
An integer with return character in the low byte. No character is represented by a return of –1.
int serXread (void *data, int length, unsigned long tmout);
Reads a block of characters. Returns the number of bytes read from an input serial stream. The stream is
considered to be ended when all length bytes have been read or when the timeout period elapses waiting for data to appear in the input buffer.
Parameters
data—Destination data structure. The user must ensure data is allocated for at least length bytes.
length—The number of bytes to read.
tmout—The number of milliseconds to wait for receipt of each byte before timing out.
Return Value
The number of bytes read into data until timed out or until all length bytes have been read.
20
RabbitCore 2000
3.3.3 Non-Cofunction Blocking Output Functions
These are simple functions that do not use Dynamic C costatements. They immediately
begin to perform their task, not yielding to other tasks until all characters have been written.
int serXputc (char c);
Writes a character to the serial port.
Parameters
c—Character to write
Return Value
1 for success, 0 if the character could not be written to the port.
int serXputs (char *s);
Calls serXwrite (s, strlen (s)).
Parameters
s—Null-terminated character string source to write to the serial port.
Return Value
The number of characters written.
int serXwrite (void *data, int length);
Writes a block of length bytes to the serial port.
Parameters
data—Destination data structure. The user must ensure data is allocated for at least length bytes.
length—The number of bytes to read.
Return Value
The number of bytes written to the serial port.
User’s Manual
21
3.3.4 Single-User Cofunction Input Functions
These are Dynamic C cofunctions. If the input buffer they use is locked or becomes full
during the course of their operation, they yield to other tasks, but do not return to execute
the next statement within their own costatement block until they have completed their operation.
scofunc int cof_serXgetc ( );
Reads a single character from the serial port, yielding when not successful, and only returning when a
character is successfully read.
Parameters
None
Return Value
An integer with the character read in the low byte.
scofunc int cof_serXgets(char *s, int length,
unsigned long tmout);
Reads a null-terminated string, completes its execution when a carriage return is read, length number
of characters are read, or the character to character time-out period elapses after the first character is
read. It yields to other tasks while the input buffer is locked or becomes empty during its execution, and
only returns control to the following statement in its own costatement block when it completes.
Parameters
data—Destination data structure. The user must ensure data is allocated for at least length bytes.
length—The number of bytes to read.
tmout—The number of milliseconds to wait for each character after the first character is read.
Return Value
1—CR or length bytes read into s.
0—Function times out before reading CR or length bytes.
scofunc int cof_serXread(void *data, int length,
unsigned long tmout);
Reads a block of characters, completes its execution when length number of characters are read, or
the character-to-character time-out period elapses after the first character is read. It yields to other tasks
while the input buffer is locked or becomes empty during its execution and only returns control to the
following statement in its own costatement block when it completes.
Parameters
data—Destination data structure. The user must ensure data is allocated for at least length bytes.
length—The number of bytes to read.
tmout—The number of milliseconds to wait for each character after the first.
Return Value
The number of bytes read.
22
RabbitCore 2000
3.3.5 Single-User Cofunction Output Functions
These are Dynamic C cofunctions. If the output buffer they use is locked or becomes
empty during the course of their operation, they yield to other tasks, but do not return to
execute the next statement within their own costatement block until they have completed
their operation.
scofunc void cof_serXputc (char c);
Writes a single character to the serial port, yielding to other tasks when unsuccessful, and returning only
when the character is successfully written.
Parameters
c—Character to write to the serial port.
Return Value
None
scofunc void cof_serXputs(char *s);
Writes a null-terminated character string to the serial port, yielding to other tasks when unsuccessful or
whenever the buffer is full, returning only when the string is successfully written.
Parameters
s—Null-terminated character string written to the serial port.
Return Value
None
scofunc void cof_serXwrite (void *data, int length);
Writes a block of characters to the serial port, yielding to other tasks when unsuccessful or whenever the
buffer is full, returning only when all the data is successfully written.
Parameters
data—Source data structure to write to the serial port.
length—Number of characters in data to write.
Return Value
None
User’s Manual
23
3.3.6 Circular Buffer Functions
These functions act on or report status of the circular transmit/receive buffers.
Macro definitions are used to establish the buffer sizes:
xINBUFSIZE—read buffer size, where x is A, B, C, or D
xOUTBUFSIZE—write buffer size where x is A, B, C, or D
The user must define each buffer size for each port being used to be a power of 2 minus 1
with a macro. The size of 2^n - 1 enables masking for fast rollover calculations. If no
value or an illegal value is defined, a default size of 31 will be used and a compiler warning will be given. When using cofunctions, smaller buffer sizes can yield more frequently
to other tasks, but have the risk of a large input data stream overrunning the buffer and losing data if the other task executes for too long relative to the baud rate.
int serXpeek ( );
Returns the first character in the receive buffer, if any are available, without removing it from the buffer.
Parameters
None
Return Value
An integer with return character in the low byte. No character is represented by a return of –1.
void serXrdFlush ( );
Flushes the serial port receive buffer.
Parameters
None
Return Value
None
void serXwrFlush ( );
Flushes the serial port transmit buffer.
Parameters
None
Return Value
None
24
RabbitCore 2000
int serXrdFree ( );
Calculates the free space in the serial port receive buffer.
Parameters
None
Return Value
The number of characters the serial port receive buffer can accept before becoming full.
int serXwrFree ( );
Calculates the free space in the serial port transmit buffer.
Parameters
None
Return Value
The number of characters the serial port transmit buffer can accept before becoming full.
int serXrdUsed ( );
Calculates the number of characters ready to read from the serial port receive buffer.
Parameters
None
Return Value
The number of characters currently in the serial port receive buffer.
User’s Manual
25
26
RabbitCore 2000
APPENDIX A. SPECIFICATIONS
User’s Manual
27
A.1 Electrical and Mechanical Specifications
Figure A-1 shows the mechanical dimensions for the RabbitCore 2000.
2.30
(58.4)
1.31
(33.3)
JP1
SRAM
C5
R4
/RESO
GND
VCC
J3
0.50
0.50
(14)
(13)
0.31
(5.0)
(3.2)
(6.9)
0.125 dia
0.31
(9.42)
Y2
/RSTI
1.90
U2
A12
A10
A8
A6
A4
A2
A0
PC0
PC2
PC4
PC6
PD0
PD2
PD4
PD6
GND
VBAT
SM0
(48.3)
C2
R2
J2
A11
A9
A7
A5
A3
A1
STAT
PC1
PC3
PC5
PC7
PD1
PD3
PD5
PD7
VCC
VRAM
SM1
0.27
R1
TP3
0.27
U1
R3
(0,0) for Pin 1
coordinates
C3
TP2
0.371
/WDO
Y1
C1
GND
PA0
PA2
PA4
PA6
PB0
PB2
PB4
PB6
PCLK
D7
D5
D3
D1
PE7
PE5
PE3
PE1C4
/IOW
/BEN
0.20
J1
0.20
TP1
VCC
PA1
PA3
PA5
PA7
PB1
PB3
PB5
PB7
GND
D6
D4
D2
D0
PE6
PE4
PE2
PE0
/IOR
2.30
(13)
(14)
(6.9)
(5.0)
(58.4)
1.90
(48.3)
Figure A-1. RabbitCore 2000 Dimensions
Table A-1 provides the pin 1 locations for the RabbitCore 2000 headers viewed from the
top side (as in Figure A-1).
Table A-1. Jackrabbit Header Pin 1 Locations
28
Header
Description
Pin 1 (x,y)
Coordinates
(Inches)
J1
RabbitCore 2000 subsystems
(0.221, 1.675)
J2
RabbitCore 2000 subsystems
(2.181, 1.675)
J3
Programming port
(1.600, 0.214)
RabbitCore 2000
Table A-2 lists the electrical, mechanical, and environmental specifications for the RabbitCore 2000.
Table A-2. RCM2000 Specifications
Parameter
Specification
Board Size
1.90" × 2.30" × 0.50"
(48.3 mm × 58.4 mm × 12.7 mm)
Operating Temperature
–40°C to +85°C
Storage Temperature
–55°C to +125°C
Humidity
5% to 95%, noncondensing
Input Voltage
4.75 V to 5.25 V DC
Current
58 mA at 9.216 MHz, 5 V DC
74 mA at 12.9024 MHz, 5 V DC
98 mA at 18.432 MHz, 5 V DC
130 mA at 25.8048 MHz, 5 V DC
Standby Current
16 µA (typical), 50 µA (maximum)
General-Purpose I/O
40 parallel I/0 lines grouped in five 8-bit ports:
24 bidirectional, 10 inputs only, 6 outputs only
Memory, I/O Interface
13 address lines, 8 data lines, I/O read/write, buffer
enable, status, clock
Additional Digital Inputs
2 startup mode (for master/slave), reset in
Additional Digital Outputs
Watchdog output, reset out
Microprocessor
Rabbit 2000
Clock
25.8048 MHz (18.432 MHz option)
SRAM
512K (supports 32K–512K)
Flash EPROM
256K (supports 128K–512K)
Timers
Five 8-bit timers cascadable in pairs, one 10-bit timer
with 2 match registers that each have an interrupt
Serial Ports
Four CMOS-compatible ports. Two ports are
configurable as clocked ports, one is configurable as
RS-232 programming port.
Serial Rate
CMOS
maximum asynchronous 806,400 bps
maximum synchronous 6.45 Mbps
Watchdog/Supervisor
Yes
Time/Date Clock
Yes
User’s Manual
29
Table A-2. RCM2000 Specifications (continued)
Parameter
Specification
Socket Strip (for connection
Pinrex 2x20, 2 mm pitch (PS2S-2X20GOB)
to headers J1 and J2)
Recommended Standoff
(to attach RabbitCore 2000 9/32” (7.14) with 4-40 screw
to user board)
Provision for user-supplied backup battery (2.85 V to
3.15 V) via connections on header J2
Backup Battery
A.1.1 Headers
The RabbitCore 2000 uses headers at J1, J2, and J3 for physical connection to other
boards. J1 and J2 are 2 × 20 SMT headers with a 2 mm pin spacing. J3 is a 2 × 5 header
with a 2 mm pin spacing.
Figure A-2 shows the layout of another board for the RabbitCore 2000 to be plugged in to.
These values are relative to the header connectors.
1.960
J1
(49.78)
1.094
J2
(27.79)
0.020 sq typ
(0.5)
0.079
(2.0)
1.30
(33.0)
0.079
(2.0)
0.125 dia
(3.2)
Figure A-2. J1 and J2 Header Layout (Top View)
30
RabbitCore 2000
A.2 Bus Loading
When designing an interface to the RabbitCore 2000, careful attention must be paid to bus
loading. This section provides bus loading of external devices.
Table A-3 lists the capacitance for the various RabbitCore 2000 I/O ports.
Table A-3. Capacitance of Rabbit 2000 I/O Ports
Input
Capacitance
(pF)
Output
Capacitance
(pF)
Parallel Ports A to E
12
14
Data Lines D0–D7
30
32
Address Lines A0–A12
30
32
I/O Ports
Table A-4 lists the external capacitive bus loading for the various Rabbit 2000 output
ports. Be sure to add the loads for the devices you are using in your custom system and
verify that they do not exceed the values in Table A-4.
Table A-4. External Capacitive Bus Loading -40°C to +85°C
Clock Speed
(MHz)
Maximum External
Capacitive Loading (pF)
A[12:1]
D[7:1]
25.8
50
A[12:1]
D[7:1]
18.4
55 for 90 ns flash
100 for 55 ns flash*
A0
D0
25.8, 18.4
100
PD[3:0]
25.8, 18.4,
100
PA[7:0]
PB[7,6,1,0]
PC[6,4,2,0]
PD[7:4]
PE[7:0]
25.8, 18.4
90
All data, address, and
I/O lines with clock
doubler disabled
12.9, 9.2
100
Output Port
* The RCM2020 operating at 18.4 MHz will typically come with a
flash EPROM whose access time is 55 ns. Because of the volatility of the memory market, a 90 ns flash EPROM could be used on
the RCM2020.
User’s Manual
31
The values from the table above are derived using 55 ns (25.8 MHz version) and 90 ns
(18.4 MHz version) memory access times. External capacitive loading can be improved
by 10 pF for commercial temperature ranges, but do not exceed 100 pF. See the AC timing specifications in the Rabbit 2000 Users Manual for more information.
Figure A-3 shows a typical timing diagram for the Rabbit 2000 microprocessor memory
read and write cycles.
Memory Read (no wait states)
T2
T1
CLK
A[19:0]
valid
Tadr
Tsetup
D[7:0]
valid
Thold
/CSx
valid
/OEx
Memory Write (no extra wait states)
Tw
T1
T2
CLK
A[19:0]
valid
Tadr
D[7:0]
/CSx
valid
/WE
valid
Thold
/WEx
Figure A-3. Memory Read and Write Cycles
Tadr is the time required for the address output to reach 0.8 V. This time depends on the
bus loading. A0 has a stronger driver and can handle larger capacitive loads than the other
address lines. Tsetup is the data setup time relative to the clock. Tsetup is specified from
30%/70% of the VDD voltage level. Add 1.5 ns to Tadr for each 10 pF of additional bus
loading above 70 pF.
32
RabbitCore 2000
A.3 Rabbit 2000 DC Characteristics
Table A-5 outlines the DC characteristics for the Rabbit 2000 at 5.0 V over the recommended operating temperature range from Ta = –40°C to +85°C, VDD = 4.5 V to 5.5 V.
Table A-5. 5.0 Volt DC Characteristics
Symbol
Parameter
Test Conditions
Min
IIH
Input Leakage High
VIN = VDD, VDD = 5.5 V
IIL
Input Leakage Low
(no pull-up)
VIN = VSS, VDD = 5.5 V
-10
IOZ
Output Leakage (no pull-up)
VIN = VDD or VSS,
VDD = 5.5 V
-10
VIL
CMOS Input Low Voltage
VIH
CMOS Input High Voltage
VT
CMOS Switching Threshold VDD = 5.0 V, 25°C
VOL
CMOS Output Low Voltage
VOH
IOH = See Table A-6
CMOS Output High Voltage (sourcing)
VDD = 4.5 V
User’s Manual
Typ
Max
Units
10
µA
µA
10
µA
0.3 x VDD
V
0.7 x VDD
V
2.4
IOL = See Table A-6
(sinking)
VDD = 4.5 V
0.2
0.7 x VDD
4.2
V
0.4
V
V
33
A.4 I/O Buffer Sourcing and Sinking Limit
Unless otherwise specified, the Rabbit I/O buffers are capable of sourcing and sinking 8
mA of current per pin at full AC switching speed. Full AC switching assumes a 25.8 MHz
CPU clock and capacitive loading on address and data lines of less than 100 pF per pin.
Address pin A0 and data pin D0 are rated at 16 mA each. Pins A1–A12 and D1–D7 are
each rated at 8 mA. The absolute maximum operating voltage on all I/O is VDD + 0.5 V,
or 5.5 V.
Table A-6 shows the AC and DC output drive limits of the parallel I/O buffers when the
Rabbit 2000 is used in the RabbitCore 2000.
Table A-6. I/O Buffer Sourcing and Sinking Capability
Output Drive
Pin Name
Sourcing*/Sinking† Limits
(mA)
Full AC Switching
SRC/SNK
Maximum‡ DC Output
Drive
SRC/SNK
PA [7:0]
8/8
12/12
PB [7, 1, 0]
8/8
12/12
PC [6, 4, 2, 0]
8/8
12/12
PD [7:4]
8/8
12/12
16/16
12/25
8/8
12/12
Output Port Name
PD [3:0]**
PE [7:0]
* The maximum DC sourcing current for I/O buffers between VDD pins is
112 mA.
† The maximum DC sinking current for I/O buffers between VSS pins is
150 mA.
‡ The maximum DC output drive on I/O buffers must be adjusted to take
into consideration the current demands made my AC switching outputs,
capacitive loading on switching outputs, and switching voltage.
The current drawn by all switching and nonswitching I/O must not
exceed the limits specified in the first two footnotes.
** The combined sourcing from Port D [7:0] may need to be adjusted so as
not to exceed the 112 mA sourcing limit requirement specified in the first
footnote.
Some of the values listed are different from those listed in the Rabbit 2000 Microprocessor User’s Manual to take into account external loading of the Rabbit 2000 while it is part
of the RabbitCore 2000. Loads that exceed the values listed above need to be buffered.
34
RabbitCore 2000
APPENDIX B. PROTOTYPING BOARD
Appendix B describes the features and accessories of the Prototyping Board, and explains
the use of the Prototyping Board to demonstrate the RabbitCore 2000 and to build prototypes of your own circuits.
User’s Manual
35
B.1 Mechanical Dimensions and Layout
Figure B-1 shows the mechanical dimensions and layout for the RabbitCore 2000 Prototyping
Board.
J5
DS1
DS2
PB2
PA1
S2
PB3
J6
RXB
TXB
PD1
PD3
PD5
PD0
PD2
PD4
GND
PC7
PC6
VCC
PC5
PC4
/RSTI
PC3
PC2
SM1
PC1
PC0
VRAM
STAT
A0
SM0
A1
A2
/RSTO
A3
A4
VCC
A5
A6
PD6
A7
A8
GND
A9
A10
VBAT
A11
A12
C6
4.00
C5
PD7
C4
GND
RXC TXC
RS-232
(102)
S3
C3
/WDO
PE0
PE2
PE4
PE6
D0
D2
D4
D6
GND
PB7
PB5
PB3
PB1
PA7
PA5
/IOR
/IOW
/BEN
PE1
PE3
PE5
PE7
D1
D3
D5
D7
PCLK
PB6
PB4
PB2
PA6
PA4
PB0
PA3
PA1
DS3
S3
PA0
+
C1
S2 DS3
U1
U2
J4
S1
JP1DS2
C2
PA2
GND
J2
D2
PA0
VCC
RCM2000 PROTOTYPING BOARD
PWR
RESET
RN1
J3
J1
VCC
GND
GND
4.30
(110)
Figure B-1. RabbitCore 2000 Prototyping Board Dimensions
Table B-1 lists the electrical, mechanical, and environmental specifications for the Prototyping Board..
Table B-1. Prototyping Board Specifications
Parameter
Board Size
4.00" × 4.30" × 1.19" (102 mm × 110 mm × 30 mm)
Operating Temperature
–40°C to +70°C
Humidity
5% to 95%, noncondensing
Input Voltage
7.5 V to 25 V DC
Maximum Current Draw
(including user-added circuits)
36
Specification
1 A at 12 V and 25°C, 0.7 A at 12 V and 70ºC
Prototyping Area
2" × 3" (51 mm × 76 mm) throughhole, 0.1" spacing
Standoffs/Spacers
4, accept 6-32 x 3/8 screws
RabbitCore 2000
B.2 Power Supply
The RabbitCore 2000 requires a regulated 5 V ± 0.25 V dc power source to operate.
Depending on the amount of current required by the application, different regulators can
be used to supply this voltage.
The Prototyping Board has an onboard LM340-T5 or equivalent. The LM340-T5 is an
inexpensive linear regulator that is easy to use. Its major drawback is its inefficiency,
which is directly proportional to the voltage drop across it. The voltage drop creates heat
and wastes power.
A switching power supply may be used in applications where better efficiency is desirable. The LM2575 is an example of an easy-to-use switcher. This part greatly reduces the
heat dissipation of the regulator. The drawback in using a switcher is the increased cost.
The Prototyping Board itself is protected against reverse polarity by a Shottky diode at D2
as shown in Figure B-2.
LINEAR POWER SUPPLY
+RAW DCIN
POWER
IN
J1
1
2
3
Vcc
D2
1N5819
1
C1
10 µF
7805
U1
3
2
C2
100 nF
Figure B-2. Prototyping Board Power Supply
Capacitor C1 provides surge current protection for the voltage regulator, and allows the
external power supply to be located some distance away.
B.3 Using the Prototyping Board
The Prototyping Board is actually both a demonstration board and a prototyping board.
As a demonstration board, it can be used to demonstrate the functionality of the RabbitCore 2000 right out of the box without any modifications to either board. There are no
jumpers or dip switches to configure or misconfigure on the Prototyping Board so that the
initial setup is very straightforward.
The Prototyping Board comes with the basic components necessary to demonstrate the
operation of the RabbitCore 2000. Two LEDs (DS2 and DS3) are connected to PA0 and
PA1, and two switches (S2 and S3) are connected to PB2 and PB3 to demonstrate the
interface to the Rabbit 2000 microprocessor. Reset switch S1 is the hardware reset for the
RabbitCore 2000.
To maximize the availability of RabbitCore 2000 resources, the demonstration hardware
(LEDs and switches) on the Prototyping Board may be disconnected. This is done by cutting the traces below the silk-screen outline of header JP1 on the bottom side of the ProtoUser’s Manual
37
typing Board. Figure B-3 shows the four places where cuts should be made. An exacto
knife would work nicely to cut the traces. Alternatively, a small standard screwdriver may
be carefully and forcefully used to wipe through the PCB traces.
Bottom Side
JP1
DS2
DS3 S2
S3
PA0
PA1
PB2
PB3
Cut
Figure B-3. Where to Cut Traces to Permanently Disable
Demonstration Hardware on Prototyping Board
The power LED (PWR) and the RESET switch remain connected. Jumpers across the
appropriate pins on header JP1 can be used to reconnect specific demonstration hardware
later if needed.
Table B-1. Prototyping Board Jumper Settings
Header JP2
Pins
Description
1–2
PA0 to LED DS2
3–4
PA1 to LED DS3
5–6
PB2 to Switch S2
7–8
PB3 to Switch S3
Note that the pinout at location JP1 on the bottom side of the Prototyping Board (shown in
Figure B-3) is a mirror image of the top side pinout.
The Prototyping Board provides the user with RabbitCore 2000 connection points brought
out conveniently to labeled points at headers J2 and J4 on the Prototyping Board. Small to
medium circuits can be prototyped using point-to-point wiring with 20 to 30 AWG wire
between the prototyping area and the holes at locations J2 and J4. The holes are spaced at
0.1" (2.5 mm), and 40-pin headers or sockets may be installed at J2 and J4. The pinouts for
locations J1 and J3, which correspond to J2 and J4, are shown in Figure B-4.
38
RabbitCore 2000
J3
J1
VCC
PA1
PA3
PA5
PA7
PB1
PB3
PB5
PB7
GND
D6
D4
D2
D0
PE6
PE4
PE2
PE0
/IORD
/WDO
GND
PA0
PA2
PA4
PA6
PB0
PB2
PB4
PB6
PCLK
D7
D5
D3
D1
PE7
PE5
PE3
PE1
/IOWR
/BUFEN
A11
A9
A7
A5
A3
A1
STATUS
PC1
PC3
PC5
PC7
PD1
PD3
PD5
PD7
VCC
VRAM
SMODE1
/RES_IN
GND
A12
A10
A8
A6
A4
A2
A0
PC0
PC2
PC4
PC6
PD0
PD2
PD4
PD6
GND
VBAT
SMODE0
/RES_OUT
VCC
Figure B-4. RabbitCore 2000 Prototyping Board Pinout
(Top View)
A pair of small holes capable of holding 30 AWG wire appears to the side of each hole
pair at locations J2 and J4 for convenience of point-to-point wiring when headers are
installed. The signals are those of the adjacent pairs of holes at J2 and J4. These small
holes are also provided for the components that may be installed below location J4.
There is an additional 2" × 3" of through-hole prototyping space available on the Prototyping Board. VCC and GND traces run along the edge of the Prototyping Board for easy
access. A GND pad is also provided at the lower right for alligator clips or probes.
VCC trace
VCC
GND
GND trace
GND pad
Figure B-5. VCC and GND Traces Along Edge of Prototyping Board
User’s Manual
39
B.3.1 Adding Other Components
There is room on the Prototyping Board for a user-supplied RS-232 transceiver chip at
location U2 and a 10-pin header for serial interfacing to external devices at location J6. A
Maxim MAX232 transceiver is recommended. When adding the MAX232 transceiver at
position U2, you must also add 100 nF charge storage capacitors at positions C3–C6 as
shown in Figure B-6.
PWR
D2
S1
DS1
DS2
PA1
PB2
DS3
32
2
MAX
S3
S2 DS3
PA0
S2
JP1DS2
U1
C1+
RESET
J5
RN1
PB3
U2
C3
RS-232
C4
C5
J6
RXC TXC
S3
C2
C6
GND
RXB
TXB
100 nF
storage
capacitors
Figure B-6. Location for User-Supplied RS-232 Transceiver
and Charge Storage Capacitors
There are two sets of pads that can be used for surface mount prototyping SOIC devices.
The silk screen layout separates the rows into six 16-pin devices (three on each side).
However, there are pads between the silk screen layouts giving the user two 52-pin (2x26)
SOIC layouts with 50 mil pin spacing. There are six sets of pads that can be used for 3to 6-pin SOT23 packages. There are also 60 sets of pads that can be used for SMT resistors and capacitors in an 0805 SMT package. Each component has every one of its pin
pads connected to a hole in which a 30 AWG wire can be soldered (standard wire wrap
wire can be soldered in for point-to-point wiring on the Prototyping Board). Because the
traces are very thin, carefully determine which set of holes is connected to which surface
mount pad.
40
RabbitCore 2000
APPENDIX C. POWER MANAGEMENT
User’s Manual
41
C.1 Power Supplies
The RabbitCore 2000 requires a regulated 5 V ± 0.25 V DC power source.
A RabbitCore 2000 with no loading at the outputs operating at 18.432 MHz typically
draws 98 mA, and a RabbitCore 2000 operating at 25.8048 MHz typically draws 130 mA.
The RabbitCore 2000 will consume 13 mA to 15 mA of additional current when the programming cable is used to connect J3 to a PC.
C.1.1 Batteries and External Battery Connections
The RabbitCore 2000 does not have a battery, but there is provision for a customer-supplied battery to back up SRAM and keep the internal Rabbit 2000 real-time clock running.
Header J2, shown in Figure C-1, allows access to the external battery. This header makes
it possible to connect an external 3 V power supply. This allows the SRAM and the internal Rabbit 2000 real-time clock to retain data with the RabbitCore 2000 powered down.
GND
31
32
VCC
VBAT
33
34
VRAM
External
Battery
Figure C-1. External Battery Connections at Header J2
A lithium battery with a nominal voltage of 3 V and a minimum capacity of 165 mA·h is
recommended. A lithium battery is strongly recommended because of its nearly constant
nominal voltage over most of its life.
The drain on the battery by the RabbitCore 2000 is typically 16 µA when no other power is
supplied. If a 950 mA·h battery is used, the battery can last more than 6 years:
950 mA·h
------------------------ = 6.8 years.
16 µA
The actual life in your application will depend on the current drawn by components not on
the RabbitCore 2000 and the storage capacity of the battery. Note that the shelf life of a
lithium battery is ultimately 10 years.
42
RabbitCore 2000
C.1.2 Battery Backup Circuit
The battery-backup circuit serves two purposes:
• It reduces the battery voltage to the real-time clock, thereby reducing the current consumed by the real-time clock and lengthening the battery life.
• It ensures that current can flow only out of the battery to prevent charging the battery.
Figure C-2 shows the RabbitCore 2000 battery backup circuitry.
VRAM
R12
0Ω
MMBT5088LT1
Q12
R13
VBAT
4.3 MΩ
R14
R11
1.3 kΩ
220 kΩ
D12
D11
D10
R20
2 MΩ
R19
0Ω
R18
0Ω
R17
0Ω
Figure C-2. RabbitCore 2000 Battery Backup Circuit
Resistor R12, shown in Figure C-2, is typically not stuffed on the RabbitCore 2000.
VRAM and Vcc are nearly equal (<100 mV, typically 10 mV) when power is supplied to
the RabbitCore 2000. R14 prevents any catastrophic failure of Q12 by limiting current
from the customer-supplied battery.
Resistors R11 and R20 make up a voltage divider between the battery voltage and the temperature-compensation voltage at the anode of diode D12. This voltage divider biases the
base of Q12 to about 0.9 × VBAT. VBE on Q12 is about 0.55 V. Therefore, VRAM is about
0.9 × VBAT - 0.55 V, or about 2.15 V for a 3 V battery.
User’s Manual
43
These voltages vary with temperature. VRAM varies the least because temperature-compensation diodes D10–D12 will offset the variation with temperature of Q12’s VBE. R17–
R19 may be stuffed instead of the corresponding D10–D12 to provide the optimum temperature compensation.
Resistor R13 provides a minimum load to the regulator circuit.
VRAM is also available on pin 34 of header J2 to facilitate battery backup of the external
circuit. Note that the recommended minimum resistive load at VRAM is 100 kΩ, and new
battery life calculations should be done to take external loading into account.
C.1.3 Power to VRAM Switch
The VRAM switch, shown in Figure C-3, allows a customer-supplied external battery to
provide power when the external power goes off. The switch provides an isolation
between Vcc and the battery when Vcc goes low. This prevents the Vcc line from draining the battery.
VCC
R10
VRAM
0Ω
Q11
FDV302P
R16
10 kΩ
/RES_OUT
R15
22 kΩ
Q10
MMBT3904
Figure C-3. VRAM Switch
Transistor Q11 is needed to provide a very small voltage drop between Vcc and VRAM
(<100 mV, typically 10 mV) so that the processor lines powered by Vcc will not have a
significantly different voltage than VRAM.
When the RabbitCore 2000 is not resetting (pin 2 on U10 is high), the /RES_OUT line will
be high. This turns on Q10, causing its collector to go low. This turns on Q11, allowing
VRAM to nearly equal Vcc.
When the RabbitCore 2000 is resetting, the /RES_OUT line will go low. This turns off
Q10 and Q11, providing an isolation between Vcc and VRAM.
The battery backup circuit keeps VRAM from dropping below 2 V.
44
RabbitCore 2000
C.1.4 Reset Generator
The RabbitCore 2000 uses a reset generator, U10, to reset the Rabbit 2000 microprocessor
when the voltage drops below the voltage necessary for reliable operation. The reset
occurs between 4.50 V and 4.75 V, typically 4.63 V. The RabbitCore 2000 has a reset output, pin 37 on header J3, presented to the headers. The reset generator has a reset input,
pin 38 on header J3, that can be used to force the RabbitCore 2000 to reset.
C.2 Chip Select Circuit
Figure C-4 shows a schematic of the chip select circuit.
VRAM
R28
/CSRAM
Q14
/CS1
Q13
VRAM
R30
R33
100 kΩ
/RES
D13
C14
2200 pF
10 kΩ
R32
47 kΩ
Q15
R31
300 kΩ
Figure C-4. Chip Select Circuit
The current drain on the battery in a battery-backed circuit must be kept at a minimum.
When the RabbitCore 2000 is not powered, the battery keeps the SRAM memory contents
and the real-time clock (RTC) going. The SRAM has a powerdown mode that greatly
reduces power consumption. This powerdown mode is activated by raising the chip select
(CS) signal line. Normally the SRAM requires Vcc to operate. However, only 2 V is
required for data retention in powerdown mode. Thus, when power is removed from the
circuit, the battery voltage needs to be provided to both the SRAM power pin and to the
CS signal line. The CS control circuit accomplishes this task for the CS signal line.
In a powered-up condition, the CS control circuit must allow the processor’s chip select
signal /CS1 to control the SRAM’s CS signal /CSRAM. So, with power applied,
/CSRAM must be the same signal as /CS1, and with power removed, /CSRAM must be
held high (but only needs to be battery voltage high). Q13 and Q14 are MOSFET transistors with opposing polarity. They are both turned on when power is applied to the circuit.
They allow the CS signal to pass from the processor to the SRAM so that the processor
User’s Manual
45
can periodically access the SRAM. When power is removed from the circuit, the transistors will turn off and isolate /CSRAM from the processor. The isolated /CSRAM line has
a 100 kΩ pullup resistor to VRAM (R28). This pullup resistor keeps /CSRAM at the
VRAM voltage level (which under no power condition is the backup battery’s regulated
voltage at a little more than 2 V).
Transistors Q13 and Q14 are of opposite polarity so that a rail-to-rail voltages can be
passed. When the /CS1 voltage is low, Q13 will conduct. When the /CS1 voltage is high,
Q14 will conduct. It takes time for the transistors to turn on, creating a propagation delay.
This delay is typically very small, about 10 ns to 15ns.
The signal that turns the transistors on is a high on the processor’s reset line, /RES_OUT.
When the RabbitCore 2000 is not in reset, the reset line will be high, turning on n-channel
Q13 and Q15. Q15 is a simple inverter needed to turn on Q14, a p-channel MOSFET.
When a reset occurs, the /RES_OUT line will go low. This will cause C14 to discharge
through R31 and R33. This small delay (about 160 µs) ensures that there is adequate time
for the processor to write any last byte pending to the SRAM before the processor puts
itself into a reset state. When coming out of reset, CS will be enabled very quickly
because D13 conducts to charge capacitor C14.
46
RabbitCore 2000
APPENDIX D. SAMPLE CIRCUITS
Appendix D provides these sample circuits that incorporate the RabbitCore 2000.
• RS-232/RS-485 Serial Communication
• Keypad and LCD Connections
• LCD Connections
• LCD Connections
• D/A Converter
User’s Manual
47
D.1 RS-232/RS-485 Serial Communication
RS-232
1
Rabbit 2000
Core Module
V+
V–
C1+
100 nF
J2
100 nF
3
C1–
4
C2+
5
C2–
VCC
100 nF
2
6
100 nF
19
PC4
11
T1IN
T1OUT
14
TXB
17
PC2
10
T2IN
T2OUT
7
TXC
20
PC5
12
R1OUT
R1IN
13
RXB
18
PC3
9
R2OUT
R2IN
8
RXC
15
PC0
4
D
16
PC1
1
R
Rabbit 2000
Core Module
J2
28
PD5
47 kΩ
3
2
RS-485
VCC
680 Ω
A
6
B
7
DE
485+
220 Ω
485–
680 Ω
RE
SP483EN
Figure D-1. Sample RS-232 and RS-485 Circuits
Sample Program: PUTS.C in SAMPLES/SERIAL.
48
RabbitCore 2000
D.2 Keypad and LCD Connections
Rabbit 2000
Core Module
J1
VCC
10 kΩ
resistors
PB0
PB2
PB3
PB4
PB5
11
13
14
15
16
J2
Keypad
Row 0
Row 2
Row 3
Row 4
Row 5
PC1
PD6
PD7
20
29
30
Row 1
Col 0
Col 1
NC
NC
Figure D-2. Sample Keypad Connections
Sample Program: KEYLCD.C in SAMPLES/COREMODULE.
Rabbit 2000
Core Module
4
5
6
7
8
9
10
PA1
PA2
PA3
PA4
PA5
PA6
PA7
100 nF
680 Ω
3
470 Ω
1 kΩ
2.2 kΩ
4.7 kΩ
10 kΩ
20 kΩ
J1
2x20 LCD
VLC
2
6
4
5
11
12
13
14
7
8
9
10
VLC
VCC
/CS
C/D
/WR
D4
D5
D6
D7
D0
D1
D2
D3
Figure D-3. Sample LCD Connections
Sample Program: KEYLCD.C in SAMPLES/COREMODULE.
User’s Manual
49
D.3 LCD Connections
2x20 LCD
DB0–DB7
D0–D7
Rabbit 2000
Core Module
2x20 LCD
D0–D7
DB0–DB7
/PE0 /IOR /IOW /PE1
E
E
Figure D-4. Sample LCD Connections
Sample Program: LCD_DEMO.C in SAMPLES/COREMODULE.
The shaded part of the circuit in Figure D-4 can be used to drive a second LCD, but additional software not included in LCD_DEMO.C will have to be written.
50
RabbitCore 2000
D.4 External Memory
The sample circuit can be used with an external 64 Kbit memory device. Larger SRAMs
can be written to using this scheme by using other available Rabbit 2000 ports (parallel
ports A to E) as address lines.
8K × 8
SRAM
Rabbit 2000
Core Module
A0–A12
A0–A12
D0–D7
D0–D7
/WE
/OE
/CE
/IOW
/IOR
/BEN
Figure D-5. Sample External Memory Connections
Sample Program: EXTSRAM.C in SAMPLES/COREMODULE.
User’s Manual
51
D.5 D/A Converter
The output will initially be 0 V to -10.05 V after the first inverting op-amp, and 0 V to
+10.05 V after the second inverting op-amp. All lows produce 0 V out, FF produces 10 V
out. The output can be scaled by changing the feedback resistors on the op-amps. For
example, changing 5.11 kΩ to 2.5 kΩ will produce an output from 0 V to -5 V. Op-amps
with a very low input offset voltage are recommended.
HC374
649 kΩ
22 pF
22 pF
5.11 kΩ
10 kΩ
–
10 kΩ
324 kΩ
162 kΩ
CT0–CT7
PA0–PA7
20 kΩ
+5 V
E
V+ > 12 V
V– < –12 V
4.99 kΩ
5.11 kΩ
47 kΩ
CLK
1.19 kΩ
Vo
10 kΩ
+5 V
47 kΩ
PE3
+
80.6 kΩ
40.2 kΩ
–
+
PE2
Figure D-6. Sample D/A Converter Connections
52
RabbitCore 2000
SCHEMATICS
User’s Manual
REVISION APPROVAL
REVISION HISTORY
REV
APPEND THE FOLLOWING
DOCUMENTS WHEN CHANGING
THIS DOCUMENT:
PROJECT
ENGINEER
DESCRIPTION
ECO
APPROVAL
DATE
DOCUMENT
CONTROL
APPROVAL
DATE
DRAWING CONTENT:
2900 SPAFFORD ST.
DAVIS, CA 95616
530 - 757 - 4616
APPROVALS: INITIAL RELEASE
B
SIGNATURES
DATE
NONE
B
NONE
REVISION APPROVAL
REVISION HISTORY
REV
APPEND THE FOLLOWING
DOCUMENTS WHEN CHANGING
THIS DOCUMENT:
PROJECT
ENGINEER
DESCRIPTION
ECO
APPROVAL
DATE
DOCUMENT
CONTROL
APPROVAL
DATE
DRAWING CONTENT:
2900 SPAFFORD ST.
DAVIS, CA 95616
530 - 757 - 4616
APPROVALS: INITIAL RELEASE
B
SIGNATURES
DATE
NONE
B
NONE
REVISION APPROVAL
REVISION HISTORY
REV
APPEND THE FOLLOWING
DOCUMENTS WHEN CHANGING
THIS DOCUMENT:
PROJECT
ENGINEER
DESCRIPTION
ECO
APPROVAL
DATE
DOCUMENT
CONTROL
APPROVAL
DATE
DRAWING CONTENT:
ZWORLD
2900 SPAFFORD ST.
DAVIS, CA 95616
530 - 757 - 4616
APPROVALS: INITIAL RELEASE
B
SIGNATURES
DATE
NONE