RabbitCore RCM2000
C-Programmable Module
User’s Manual
019–0077
• 090417–K
RabbitCore RCM2000 User’s Manual
Part Number 019-0077 • 090417–K • Printed in U.S.A.
©2001–2009 Digi International Inc. • All rights reserved.
No part of the contents of this manual may be reproduced or transmitted in any form or by any means
without the express written permission of Digi International.
Permission is granted to make one or more copies as long as the copyright page contained therein is
included. These copies of the manuals may not be let or sold for any reason without the express written
permission of Digi International.
Digi International reserves the right to make changes and
improvements to its products without providing notice.
Trademarks
Rabbit and Dynamic C are registered trademarks of Digi International Inc.
Rabbit 2000 and RabbitCore are trademarks of Digi International Inc.
The latest revision of this manual is available on the Rabbit Web site, www.rabbit.com,
for free, unregistered download.
Digi International Inc.
www.rabbit.com
RabbitCore RCM2000
TABLE OF CONTENTS
Chapter 1. Introduction
1
1.1 Features .................................................................................................................................................1
1.2 Advantages of Using the RCM2000 .....................................................................................................2
1.3 Development and Evaluation Tools......................................................................................................3
1.3.1 Development Kit ...........................................................................................................................3
1.3.2 Development Kit Contents............................................................................................................3
1.3.3 Development Software..................................................................................................................3
1.4 How to Use This Manual ......................................................................................................................4
1.4.1 Additional Product Information ....................................................................................................4
1.4.2 Online Documentation ..................................................................................................................4
Chapter 2. Hardware Setup
5
2.1 Connections ..........................................................................................................................................6
2.1.1 Alternate Power Supply Connections ...........................................................................................8
2.2 Run a Sample Program .........................................................................................................................9
2.2.1 Troubleshooting ............................................................................................................................9
2.3 Where Do I Go From Here? ...............................................................................................................10
2.3.1 Technical Support .......................................................................................................................10
Chapter 3. Running Sample Programs
11
3.1 Sample Programs ................................................................................................................................11
3.1.1 Running Sample Program FLASHLED.C ..................................................................................12
3.1.1.1 Single-Stepping .................................................................................................................. 13
3.1.1.2 Watch Expressions ............................................................................................................. 13
3.1.1.3 Break Point......................................................................................................................... 13
3.1.1.4 Editing the Program ........................................................................................................... 14
3.1.1.5 Watching Variables Dynamically ...................................................................................... 14
3.1.1.6 Summary of Features ......................................................................................................... 14
3.1.1.7 Cooperative Multitasking................................................................................................... 15
3.1.1.8 Advantages of Cooperative Multitasking........................................................................... 17
3.1.2 Getting to Know the RCM2000 ..................................................................................................18
3.1.3 Serial Communication.................................................................................................................21
Chapter 4. Hardware Reference
23
4.1 RCM2000 Digital Inputs and Outputs ................................................................................................23
4.1.1 Dedicated Inputs .........................................................................................................................27
4.1.2 Dedicated Outputs.......................................................................................................................27
4.2 Memory I/O Interface .........................................................................................................................28
4.2.1 Additional I/0 ..............................................................................................................................28
4.3 Serial Communication ........................................................................................................................28
4.3.1 Serial Ports ..................................................................................................................................28
4.3.2 Programming Port .......................................................................................................................29
4.4 Serial Programming Cable..................................................................................................................30
4.4.1 Changing Between Program Mode and Run Mode ....................................................................30
4.4.2 Standalone Operation of the RCM2000......................................................................................31
User’s Manual
4.5 Other Hardware .................................................................................................................................. 32
4.5.1 Clock Doubler ............................................................................................................................ 32
4.5.2 Spectrum Spreader...................................................................................................................... 33
4.6 Memory .............................................................................................................................................. 34
4.6.1 SRAM......................................................................................................................................... 34
4.6.2 Flash EPROM............................................................................................................................. 34
4.6.3 Dynamic C BIOS Source Files................................................................................................... 34
Chapter 5. Software Reference
35
5.1 More About Dynamic C ..................................................................................................................... 35
5.1.1 Using Dynamic C ....................................................................................................................... 36
5.2 I/O....................................................................................................................................................... 38
5.2.1 PCLK Output.............................................................................................................................. 38
5.3 Serial Communication Drivers........................................................................................................... 39
5.4 Upgrading Dynamic C ....................................................................................................................... 40
5.4.1 Extras.......................................................................................................................................... 40
Appendix A. Specifications
41
A.1 Electrical and Mechanical Specifications.......................................................................................... 42
A.1.1 Headers ...................................................................................................................................... 45
A.2 Bus Loading ...................................................................................................................................... 46
A.3 Rabbit 2000 DC Characteristics ........................................................................................................ 48
A.4 I/O Buffer Sourcing and Sinking Limit............................................................................................. 49
A.5 Conformal Coating ............................................................................................................................ 50
A.6 Jumper Configurations ...................................................................................................................... 51
Appendix B. Prototyping Board
53
B.1 Overview of the Prototyping Board................................................................................................... 54
B.2 Mechanical Dimensions and Layout ................................................................................................. 55
B.3 Power Supply..................................................................................................................................... 57
B.4 Using the Prototyping Board ............................................................................................................. 58
B.4.1 Adding Other Components ........................................................................................................ 61
Appendix C. Power Management
63
C.1 Power Supplies .................................................................................................................................. 63
C.1.1 Batteries and External Battery Connections .............................................................................. 63
C.1.2 Battery-Backup Circuit .............................................................................................................. 64
C.1.3 Power to VRAM Switch ............................................................................................................ 65
C.1.4 Reset Generator.......................................................................................................................... 65
C.2 Chip Select Circuit............................................................................................................................. 66
Appendix D. Sample Circuits
67
D.1
D.2
D.3
D.4
D.5
RS-232/RS-485 Serial Communication ............................................................................................ 68
Keypad and LCD Connections.......................................................................................................... 69
LCD Connections .............................................................................................................................. 70
External Memory............................................................................................................................... 71
Simple D/A Converter....................................................................................................................... 72
Index
73
Schematics
75
RabbitCore RCM2000
1. INTRODUCTION
The RabbitCore RCM2000 series is a family of microprocessor
modules designed to be the heart of embedded control systems,
providing an array of I/O and addressing.
Throughout this manual, the term RCM2000 refers to the complete series of RCM2000
RabbitCore modules unless other production models are referred to specifically.
The RCM2000 is a 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 up to 25.8 MHz (RCM2000 and RCM2010).
The RCM2000 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 RCM2000 receives its +5 V power from the user board on which it is mounted. The
RCM2000 can interface will all kinds of digital devices through the user board.
The RCM2000 Development Kit comes with a Prototyping Board that can be used to
demonstrate the operation of the RCM2000 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
User’s Manual
1
• 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 RCM2000.
Three versions of the RCM2000 are available. Their standard features are summarized in
Table 1.
Table 1. RCM2000 Models and Features
Model
Features
RCM2000
Full-featured RCM2000 module with 25.8 MHz clock,
256K flash memory, and 512K SRAM
RCM2010
RCM2000 with 25.8 MHz clock and 128K SRAM
RCM2020
RCM2000 with 18.432 MHz clock and 128K SRAM
1.2 Advantages of Using the RCM2000
• Fast design time for your project 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.
2
RabbitCore RCM2000
1.3 Development and Evaluation Tools
1.3.1 Development Kit
A complete Development Kit, including a Prototyping Board and Dynamic C development software, is available for the RCM2000. The Development Kit puts together the
essentials you need to design an embedded microprocessor-based system rapidly and
efficiently.
1.3.2 Development Kit Contents
The RCM2000 Development Kit contains the following items:
• RCM2020 module with 256K flash memory and 128K SRAM.
• RCM2000 Prototyping Board with accessory hardware and components.
• Universal AC adapter, 12 V DC, 1 A (includes Canada/Japan/U.S., Australia/N.Z.,
U.K., and European style plugs).
• 10-pin header to DB9 programming cable with integrated level-matching circuitry.
• Dynamic C CD-ROM, with complete product documentation on disk.
• Getting Started instructions.
• Registration card.
1.3.3 Development Software
The RCM2000 modules use the Dynamic C development environment for rapid creation
and debugging of runtime applications. Dynamic C provides a complete development
environment with integrated editor, compiler and source-level debugger. It interfaces
directly with the target system, eliminating the need for complex and unreliable in-circuit
emulators.
User’s Manual
3
1.4 How to Use This Manual
This user’s manual is intended to give users detailed information on the RCM2000 module. It does not contain detailed information on the Dynamic C development environment.
1.4.1 Additional Product Information
In addition to the product-specific information contained in the RabbitCore RCM2000
User’s Manual (this manual), several higher level reference manuals are provided in
HTML and PDF form on the accompanying CD-ROM. Advanced users will find these
references valuable in developing systems based on the RCM3100 modules:
• Dynamic C User’s Manual
• Dynamic C Function Reference Manual
• Rabbit 2000 Microprocessor User’s Manual
1.4.2 Online Documentation
The online documentation is installed along with Dynamic C, and an icon for the documentation menu is placed on the workstation’s desktop. Double-click this icon to reach the
menu. If the icon is missing, use your browser to find and load default.htm in the docs
folder, found in the Dynamic C installation folder.
The latest versions of all documents are always available for free, unregistered download
from our Web sites as well.
4
RabbitCore RCM2000
2. HARDWARE SETUP
This chapter describes the RCM2000 hardware in more detail,
and explains how to set up the accompanying Prototyping
Board.
NOTE: This chapter (and this manual) assume that you have the RabbitCore RCM2000
Development Kit. If you purchased an RCM2000 module by itself, you will have to
adapt the information in this chapter and elsewhere to your test and development setup.
User’s Manual
5
2.1 Connections
1. Attach RCM2000 to Prototyping Board
Turn the RCM2000 so that the Rabbit 2000 microprocessor is facing as shown below. Plug
RCM2000 headers J1 and J2 on the bottom side of the RCM2000 into the sockets of headers
J1 and J3 on the Prototyping Board.
TP1
RCM2000
Y1
GND
PA0
PA2 C1
PA4
PA6
PB0
PB2
PB4
PB6
PCLK
D7
D5
D3
D1
PE7
PE5
PE3
C7
PE1
/IOW
/BEN
U1
TP3
TP2
R1
R2
C2
JP3
U2
J2
JP1
SRAM
R4 R6 U5
C8
D3
R11
/WDO
J1
R8
VCC
PA1
PA3
PA5
PA7
PB1
PB3
PB5
PB7
GND
D6
D4
D2
D0
PE6
PE4
PE2
PE0
/IOR
C9 R7D2
TP4
A11
A9
A7
A5
A3
A1
STAT
PC1
PC3
PC5
PC7
PD1
PD3
PD5
PD7
VCC
VRAM
SM1
A12
A10
A8
A6
A4
A2
A0
PC0
PC2
PC4
PC6
PD0
PD2
PD4
PD6
GND
VBAT
SM0
/RSTI
/RESO
GND
VCC
Prototyping
Board
J3
J5
PA1
RESET
S2
DS3
S3
PB2
S2 DS3
PA0
+
C1
PB3
S3
U2
J6
RS-232
C5
RXB
TXB
PC3
PC5
PC7
PD1
PD3
PD5
PD7
PC4
PC6
PD0
PD2
PD4
PD6
GND
PC1
PC2
VCC
STAT
PC0
/RSTI
A1
A0
SM1
A3
A2
VRAM
A5
A4
SM0
A7
A6
/RSTO
A9
A8
VCC
A11
A10
C6
GND
C4
GND
RXC TXC
C2
A12
/IOR
PE0
PE2
PE4
PE6
D0
D2
D4
D6
GND
PB7
PB5
PB3
PB1
PA7
PA5
/WDO
/BEN
/IOW
PE1
PE3
PE5
PE7
D1
D3
D5
D7
PCLK
PB6
PB4
PB2
PA6
PA4
U1
C3
J4
DS1
DS2
JP1DS2
J3
PB0
PA3
PA1
J1
S1
VBAT
RCM2000 PROTOTYPING BOARD
Line up the
mounting holes
PA2
VCC
PWR
D2
PA0
GND
J2
RN1
J3
J1
VCC
GND
GND
Figure 1. Attaching RCM2000 to Prototyping Board
NOTE: It is important that you line up the pins on the RCM2000 headers J1 and J2
exactly with the corresponding pins of header sockets J1 and J3 on the Prototyping
Board. The header pins may become bent or damaged if the pin alignment is offset, and
the RCM2000 will not work.
6
RabbitCore RCM2000
2. Connect RCM2000 to PC
Connect the 10-pin connector of the programming cable labeled PROG to header J3 on the
RCM2000 module as shown in Figure 2 below. Be sure to orient the red edge of the cable
towards pin 1 of the connector. (Do not use the DIAG connector, which is used for a normal
serial connection.)
AC Adapter
The holes shown near
J1 and J2 at the top of
the RCM2000 exist to
align the board for factory
testing. Do not use these
holes for mounting.
RCM2000
Module
TP1
RESET
S2
S3
RXC TXC
RXB
TXB
GND
VCC
PD7
/RSTI
PD5
SM1
PD3
PD6
VRAM
PD1
PD4
VCC
PC7
PD2
SM0
PC5
PD0
GND
PC3
PC6
PE2
PC1
PE4
PE3
PC4
PE6
PE5
STAT
D0
PE7
A1
DIAG
GND
C6
PC2
D2
D1
A3
D4
D3
C5
A0
D6
D5
C4
PROG
Colored side
lines up with
pin 1
J6
RS-232
PC0
GND
D7
C2
A5
PB7
PCLK
J4
DS3
S3
U2
A2
PB5
PB6
VCC
RESET
SWITCH
PB3
A7
PB3
PB4
GND
PB2
A4
PB1
PB2
/RESO
JP1DS2
PA1
C3
/WDO
PA7
PA6
PB0
/IOR
PA5
PE0
PA3
/BEN
PA1
PA4
J2
/RSTI
DS1
DS2
PA0
J3
PE1
VCC
PA2
TP4
PA0
C9 R7D2
GND
C8
D3
S1
VBAT
R4 R6 U5
PWR
D2
S2 DS3
SRAM
A9
JP3
A11
U2
RN1
A12
A10
A8
A6
A4
A2
A0
PC0
PC2
U1
PC4
PC6
+
PD0 C1
PD2
PD4
PD6
GND
VBAT
SM0
A6
C2
J5
J2
A9
A7
A5
A3
A1
STAT
PC1
PC3
PC5
PC7
PD1
PD3
PD5
PD7
VCC
VRAM
SM1
A8
R2
J3A11
JP1
A10
R1
R11
RCM2000 PROTOTYPING BOARD
TP3
TP2
R8
/WDO
GND Y1
PA0
PA2 C1
PA4
U1
PA6
PB0
PB2
PB4
PB6
PCLK
D7
D5
D3
D1
PE7
PE5
PE3
C7
PE1
/IOW
/BEN
A12
J1
PA1
PA3
PA5
PA7
PB1
PB3
PB5
PB7
GND
D6
D4
D2
D0
PE6
PE4
PE2
PE0
/IOR
/IOW
VCC
J1
/RSTO
NOTE:
Prototyping
Board
1
Assemble
AC Adapter
Red
shrink wrap
To
PC COM port
Remove slot cover,
insert tab into slot
2
Snap plug into place
Figure 2. RCM2000 Power and Programming Connections
NOTE: Some PCs now come equipped only with a USB port. It may be possible to use
an RS-232/USB converter (Part No. 20-151-0178) with the programming cable supplied with the RCM2000 Development Kit. Note that not all RS-232/USB converters
work with Dynamic C.
User’s Manual
7
3. Power Supply Connections
When all other connections have been made, you can connect power to the Prototyping
Board.
First, prepare the AC adapter for the country where it will be used by selecting the plug.
The RCM2000 Development Kit presently includes Canada/Japan/U.S., Australia/N.Z.,
U.K., and European style plugs. Snap in the top of the plug assembly into the slot at the
top of the AC adapter as shown in Figure 2, then press down on the spring-loaded clip
below the plug assembly to allow the plug assembly to click into place.
Connect the AC adapter to 3-pin header J5 on the Prototyping Board. The connector may
be attached either way as long as it is not offset to one side.
Plug in the AC adapter. The power LED on the Prototyping Board should light up. The
RCM2000 and the Prototyping Board are now ready to be used.
NOTE: A RESET button is provided on the Prototyping Board to allow a hardware reset.
To power down the Prototyping Board, unplug the power connector from J5. You should
disconnect power before making any circuit adjustments in the prototyping area, changing
any connections to the board, or removing the RCM2020 from the Prototyping Board.
2.1.1 Alternate Power Supply Connections
Development kits sold outside North America before 2009 included a header connector
that could be connected to 3-pin header J5 on the Prototyping Board. The red and black
wires from the connector could then be connected to the positive and negative connections
on your power supply. The power supply should deliver 8 V–24 V DC at 8 W.
8
RabbitCore RCM2000
2.2 Run a Sample Program
Once the RCM2000 is connected as described in the preceding pages, start Dynamic C by
double-clicking on the Dynamic C icon on your desktop or in your Start menu. Dynamic C
uses the serial port specified during installation.
If you are using a USB port to connect your computer to the RCM2000 module, choose
Options > Project Options and select “Use USB to Serial Converter” under the
Communications tab, then click OK.
Find the file PONG.C, which is in the Dynamic C SAMPLES folder. To run the program,
open it with the File menu (if it is not still open), then compile and run it by pressing F9 or
by selecting Run in the Run menu. The STDIO window will open and will display a small
square bouncing around in a box.
2.2.1 Troubleshooting
If Dynamic C cannot find the target system (error message "No Rabbit Processor
Detected."):
• Check that the RCM2000 is powered correctly — the red power LED on the Prototyping
Board should be lit when the RCM2000 is mounted on the Prototyping Board and the AC
adapter is plugged in.
• Check both ends of the programming cable to ensure that they are firmly plugged into
the PC and the PROG connector, not the DIAG connector, is plugged in to the programming port on the RCM2000 with the marked (colored) edge of the programming cable
towards pin 1 of the programming header.
• Ensure that the RCM2000 module is firmly and correctly installed in its connectors on
the Prototyping Board.
• Dynamic C uses the COM port specified during installation. Select a different COM
port within Dynamic C. From the Options menu, select Project Options, then select
Communications. Select another COM port from the list, then click OK. Press
to force Dynamic C to recompile the BIOS. If Dynamic C still reports it is
unable to locate the target system, repeat the above steps until you locate the COM port
used by the programming cable.
If Dynamic C appears to compile the BIOS successfully, but you then receive a communication error message when you compile and load the sample program, it is possible that
your PC cannot handle the higher program-loading baud rate. Try changing the maximum
download rate to a slower baud rate as follows.
• Locate the Serial Options dialog in the Dynamic C Options > Project Options >
Communications menu. Select a slower Max download baud rate.
If a program compiles and loads, but then loses target communication before you can
begin debugging, it is possible that your PC cannot handle the default debugging baud
rate. Try lowering the debugging baud rate as follows.
• Locate the Serial Options dialog in the Dynamic C Options > Project Options >
Communications menu. Choose a lower debug baud rate.
User’s Manual
9
2.3 Where Do I Go From Here?
If everything appears to be working, we recommend the following sequence of action:
1. Run all of the sample programs described in Chapter 3 to get a basic familiarity with
Dynamic C and the RCM2000’s capabilities.
2. For further development, refer to the RabbitCore RCM2000 User’s Manual for details
of the module’s hardware and software components.
A documentation icon should have been installed on your workstation’s desktop; click
on it to reach the documentation menu. You can create a new desktop icon that points to
default.htm in the docs folder in the Dynamic C installation folder.
3. For advanced development topics, refer to the Dynamic C User’s Manual, also in the
online documentation set.
2.3.1 Technical Support
NOTE: If you purchased your RCM2000 through a distributor or through a Rabbit partner,
contact the distributor or partner first for technical support.
• Use the Dynamic C Help menu to get further assistance with Dynamic C.
• Check the Rabbit Technical Bulletin Board and forums at www.rabbit.com/support/bb/
and at www.rabbit.com/forums/.
• Use the Technical Support e-mail form at www.rabbit.com/support/.
10
RabbitCore RCM2000
3. RUNNING SAMPLE PROGRAMS
To develop and debug programs for the RCM2000 (and for all
other Rabbit hardware), you must install and use Dynamic C.
Dynamic C is an integrated development system for writing
embedded software. It runs on an IBM-compatible PC and is
designed for use with Rabbit single-board computers and other
single-board computers based on the Rabbit microprocessor.
Chapter 3 provides the sample programs related to the RCM2000.
3.1 Sample Programs
To help familiarize you with the RCM2000 modules, Dynamic C includes several sample
programs in the Dynamic C SAMPLES\RCM2000 directory. Loading, executing and studying these programs will give you a solid hands-on overview of the RCM2000’s
capabilities, as well as a quick start with Dynamic C as an application development tool.
These programs are intended to serve as tutorials, but then can also be used as starting
points or building blocks for your own applications.
NOTE: It is assumed in this section that you have at least an elementary grasp of ANSI C.
If you do not, see the introductory pages of the Dynamic C User’s Manual for a suggested reading list.
Each sample program has comments that describe the purpose and function of the program.
Before running any of these sample program, make sure that your RCM2000 is connected
to the Prototyping Board and to your PC as described in Section 2.1, “Connections.”
To run a sample program, open it with the File menu (if it is not already open), then compile and run it by pressing F9 or by selecting Run in the Run menu.
Complete information on Dynamic C is provided in the Dynamic C User’s Manual.
User’s Manual
11
3.1.1 Running Sample Program FLASHLED.C
This sample program will be used to illustrate some of the functions of Dynamic C.
First, open the file FLASHLED.C, which is in the SAMPLES/RCM2000 folder. The program
will appear in a window, as shown in Figure 3 below (minus some comments). Use the
mouse to place the cursor on the function name WrPortI in the program and type .
This will bring up a documentation box for the function WrPortI. In general, you can do
this with all functions in Dynamic C libraries, including libraries you write yourself. Close
the documentation box and continue.
C programs begin with main
Set up Port A to output
to LED DS2 and DS3
main(){
int j;
WrPortI(SPCR,&SPCRShadow,0x84);
WrPortI(PADR,&PADRShadow,0xFF);
Start a loop
Turn LED DS3 off
while(1) {
BitWrPortI(PADR,&PADRShadow,1,1);
for(j=0; j