Rabbit RCM3000 User Manual

Rabbit RCM3000 User Manual

C-programmable module with ethernet
Hide thumbs Also See for RCM3000:
Table of Contents

Advertisement

Quick Links

RabbitCore RCM3000
C-Programmable Module with Ethernet
User's Manual
019–0110 • 070831–H
Downloaded from
Elcodis.com
electronic components distributor

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the RCM3000 and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Summary of Contents for Rabbit RCM3000

  • Page 1 RabbitCore RCM3000 C-Programmable Module with Ethernet User’s Manual 019–0110 • 070831–H Downloaded from Elcodis.com electronic components distributor...
  • Page 2 Rabbit and Dynamic C are registered trademarks of Rabbit Semiconductor Inc. Rabbit 3000 and RabbitCore are trademarks of Rabbit Semiconductor Inc. The latest revision of this manual is available on the Rabbit Semiconductor Web site, www.rabbit.com, for free, unregistered download.
  • Page 3 Rabbit Semiconductor Inc. www.rabbit.com RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 4 Rabbit Semiconductor Inc. www.rabbit.com RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 5: Table Of Contents

    3.2 Sample Programs ..........................12 3.2.1 Serial Communication.........................13 3.2.2 Other Sample Programs ......................14 Chapter 4. Hardware Reference 4.1 RCM3000 Digital Inputs and Outputs ....................16 4.1.1 Memory I/O Interface .........................21 4.1.2 Other Inputs and Outputs ......................21 4.1.3 5 V Tolerant Inputs ........................21 4.2 Serial Communication ........................22...
  • Page 6 B.4.1 Adding Other Components ......................68 B.4.2 Measuring Current Draw ......................68 B.4.3 Other Prototyping Board Modules and Options ................ 69 B.5 Use of Rabbit 3000 Parallel Ports...................... 70 Appendix C. LCD/Keypad Module C.1 Specifications............................. 73 C.2 Contrast Adjustments for All Boards ....................75 C.3 Keypad Labeling..........................
  • Page 7 C.7 LCD/Keypad Module Function Calls ....................82 C.7.1 LCD/Keypad Module Initialization....................82 C.7.2 LEDs............................82 C.7.3 LCD Display..........................83 C.7.4 Keypad............................98 C.8 Sample Programs ..........................101 Appendix D. Power Supply D.1 Power Supplies..........................103 D.1.1 Battery-Backup Circuits......................103 D.1.2 Reset Generator ........................104 D.2 Optional +5 V Output ........................104 Appendix E.
  • Page 8 RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 9: Chapter 1. Introduction

    (main oscillator and timekeeping), and the circuitry necessary for reset and management of battery backup of the Rabbit 3000’s internal real-time clock and the static RAM. Two 34-pin headers bring out the Rabbit 3000 I/O bus lines, parallel ports, and serial ports.
  • Page 10 (SPI), and two ports are configurable as SDLC/HDLC serial ports. • Supports 1.15 Mbps IRDA transceiver There are two production models in the RCM3000 series. If the standard models do not serve your needs, other variations can be specified and ordered in production quantities.
  • Page 11: Advantages Of The Rcm3000

    It does not contain detailed information on the Dynamic C development environment or the TCP/IP software support for the integrated Ethernet port. Most users will want more detailed information on some or all of these topics in order to put the RCM3000 module to effective use.
  • Page 12: Online Documentation

    If the icon is missing, use your browser to find and load in the default.htm 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. RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 13: Chapter 2. Hardware Setup

    NOTE: This chapter (and this manual) assume that you have the RCM3000 Development Kit. If you purchased an RCM3000 module by itself, you will have to adapt the infor- mation in this chapter and elsewhere to your test and development setup.
  • Page 14: Hardware Connections

    MASTER position. NOTE: It is important that you line up the pins on headers J1 and J2 of the RCM3000 module exactly with the corresponding pins of sockets RCM2JA and RCM2JB on the Prototyping Board. The header pins may become bent or damaged if the pin alignment is offset, and the module will not work.
  • Page 15: Connect Programming Cable

    Connect the 10-pin connector of the programming cable labeled to header J3 on PROG the RCM3000 module as shown in Figure 2. Be sure to orient the marked (usually 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.)
  • Page 16: Connect Power

    To power down the Prototyping Board, unplug the power connector from J11. You should disconnect power before making any circuit adjustments in the prototyping area, changing any connections to the board, or removing the RCM3000 from the Prototyping Board. 2.2.3.1 Overseas Development Kits Development kits sold outside North America include a header connector that may be connected to 3-pin header J9 on the Prototyping Board.
  • Page 17: Run A Sample Program

    If you already have Dynamic C installed, you are now ready to test your programming connections by running a sample program. If you are using a USB port to connect your computer to the RCM3000 module, choose and select “Use USB to Serial Converter” under the Options >...
  • Page 18: Where Do I Go From Here

    Dynamic C TCP/IP User’s Manual, also in the online documentation set. 2.4.1 Technical Support NOTE: If you purchased your RCM3000 through a distributor or through a Rabbit Semi- conductor partner, contact the distributor or partner first for technical support. If there are any problems at this point: •...
  • Page 19: Chapter 3. Running Sample Programs

    To help familiarize you with the RCM3000 modules, Dynamic C includes several sample programs. Loading, executing and studying these programs will give you a solid hands-on overview of the RCM3000’s capabilities, as well as a quick start with Dynamic C as an application development tool.
  • Page 20: Sample Programs

    The test packets and response packets have different codes. Once you have loaded and executed these sample programs and have an understanding of how Dynamic C and the RCM3000 modules interact, you can move on and try the other sample programs, or begin building your own.
  • Page 21: Serial Communication

    3.2.1 Serial Communication The following sample programs can be found in the folder. SAMPLES\RCM3000\SERIAL —This program demonstrates hardware flow control by configuring • FLOWCONTROL.C Serial Port C (PC3/PC2) for CTS/RTS with serial data coming from TxB at 115,200 bps. One character at a time is received and is displayed in the window.
  • Page 22: Other Sample Programs

    • GND to GND —This program demonstrates a simple RS-485 transmission of • SIMPLE485MASTER.C lower case letters to a slave RCM3000. The slave will send back converted upper case letters back to the master RCM3000 and display them in the STDIO window. Use to program the slave RCM3000.
  • Page 23: Chapter 4. Hardware Reference

    EFERENCE Chapter 3 describes the hardware components and principal hardware subsystems of the RCM3000. Appendix A, “RCM3000 Specifica- tions,” provides complete physical and electrical specifications. Figure 4 shows these Rabbit-based subsystems designed into the RCM3000. 14 MHz 32 kHz SRAM...
  • Page 24: Rcm3000 Digital Inputs And Outputs

    4.1 RCM3000 Digital Inputs and Outputs The RCM3000 has 52 parallel I/O lines grouped in seven 8-bit ports available on headers J1 and J2. The 44 bidirectional I/O lines are located on pins PA0–PA7, PB0, PB2–PB7, PD2–PD7, PE0–PE1, PE3–PE7, PF0–PF7, and PG0–PG7.
  • Page 25 Figure 6 shows the use of the Rabbit 3000 ports in the RCM3000 modules. PB0, PA0–PA7 PB2–PB7 PD4–PD5 Port D Port A Port B (+Ethernet Port) PC0, PC2, PC4 Port C PE0–PE1, Port E PE3–PE7 (Serial Ports B,C & D)
  • Page 26 Input/Output TPOUT– * Ethernet transmit port Input/Output TPOUT+ * Input/Output TPIN– * Ethernet receive port Input/Output TPIN+ * 33–34 * n.c. Not connected Pins 29–34 are reserved for future RCM3000 RabbitCore modules. RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 27 Table 2. RCM3000 Pinout Configurations (continued) Pin Name Default Use Alternate Use RCM3000 Use Reset output from Reset /RES Reset output Reset input Generator Input/Output CLKB Input/Output External Address 0 /SWR Input/Output External Address 1 /SRD Input/Output External Address 2...
  • Page 28 Table 2. RCM3000 Pinout Configurations (continued) Pin Name Default Use Alternate Use RCM3000 Use Input/Output Input/Output Input/Output RCLKE Input/Output TCLKE /IOWR Output External write strobe /IORD Input External read strobe (0,0)—start executing at address zero (0,1)—cold boot from slave port (1,0)—cold boot from clocked Serial Port A...
  • Page 29: Memory I/O Interface

    When a 5 V signal is applied to 5 V tolerant pins, they present a high impedance even if the Rabbit power is off. The 5 V tolerant feature allows 5 V devices that have a suitable switching threshold to be connected directly to the RCM3000. This includes HCT family parts operated at 5 V that have an input threshold between 0.8 and 2 V.
  • Page 30: Serial Communication

    Either of the two communicating devices can supply the clock. When the Rabbit 3000 provides the clock, the baud rate can be up to 80% of the sys- tem clock frequency divided by 128, or 183,750 bps for a 29.4 MHz clock speed.
  • Page 31: Serial Programming Port

    3. It can also serve as a general-purpose CMOS output. The /RESET_IN pin is an external input that is used to reset the Rabbit 3000 and the RCM3000 onboard peripheral circuits. The serial programming port can be used to force a hard reset on the RCM3000 by asserting the /RESET_IN signal.
  • Page 32: Serial Programming Cable

    DIAG connector of the programming cable may be used on header J3 of the RCM3000 with the RCM3000 operating in the Run Mode. This allows the programming port to be used as a regular serial port. 4.3.1 Changing Between Program Mode and Run Mode...
  • Page 33: Standalone Operation Of The Rcm3000

    RCM3000 module to protect against inadvertent shorts across the pins or damage to the RCM3000 if the pins are not plugged in correctly. Do not reapply power until you have verified that the RCM3000 module is plugged in correctly.
  • Page 34: Other Hardware

    A built-in clock doubler allows half-frequency crystals to be used to reduce radiated emissions. The 29.4 MHz frequency specified for the RCM3000 is generated using a 14.7456 MHz crystal. The clock doubler will not work for crystals with a frequency above 26.7264 MHz.
  • Page 35: Memory

    A Flash Memory Bank Select jumper configuration option based on 0 Ω surface-mounted resistors exists at header JP1 on the RCM3000 RabbitCore modules. This option, used in conjunction with some configuration macros, allows Dynamic C to compile two different co-resident programs for the upper and lower halves of the 256K flash in such a way that both programs start at logical address 0000.
  • Page 36 RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 37: Chapter 5. Software Reference

    RCM3000 and Dynamic C were designed to accommo- date flash devices with various sector sizes. The RCM3000 model has two 256K flash memories. By default, Dynamic C will use only the first flash memory for program code in the RCM3000 model. Uncomment he BIOS...
  • Page 38 LCD display and keypad drivers. • Powerful language extensions for cooperative or preemptive multitasking • Loader utility program to load binary images into Rabbit targets in the absence of Dynamic C. • Provision for customers to create their own source code libraries and augment on-line help by creating “function description”...
  • Page 39: Dynamic C Functions

    5.2 Dynamic C Functions 5.2.1 Digital I/O The RCM3000 was designed to interface with other systems, and so there are no drivers written specifically for the I/O. 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);...
  • Page 40: Prototyping Board Functions

    RCM3000.LIB SAMPLES\RCM3000 need to modify it for your own board design. Other generic functions applicable to all devices based on Rabbit microprocessors are described in the Dynamic C Function Reference Manual. 5.2.5 Board Initialization void brdInit (void);...
  • Page 41: Upgrading Dynamic C

    Dynamic C is a complete software development system, but does not include all the Dynamic C features. Rabbit Semicon- ductor also offers add-on Dynamic C modules containing the popular µC/OS-II real-time operating system, as well as PPP, Advanced Encryption Standard (AES), and other select libraries.
  • Page 42 RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 43: Chapter 6. Using The Tcp/Ip Features

    Setup.” 2. Ethernet Connections There are four options for connecting the RCM3000 module to a network for develop- ment and runtime purposes. The first two options permit total freedom of action in selecting network addresses and use of the “network,” as no action can interfere with other users.
  • Page 44 TIP: Checking and debugging the initial setup on a micro-LAN is recommended before connecting the system to a LAN or WAN. The PC running Dynamic C through the serial port on the RCM3000 does not need to be the PC with the Ethernet card.
  • Page 45: Tcp/Ip Primer On Ip Addresses

    The hub relays packets received on any port to all of the ports on the hub. Hubs are low in cost and are readily available. The RCM3000 board uses 10 Mbps Ethernet, so the hub or Ethernet adapter must be either a 10 Mbps unit or a 10/100 unit that adapts to either 10 or 100 Mbps.
  • Page 46 RCM3000 board. You will also need the IP address of the nameserver, the name or IP address of your mail server, and your domain name for some of the sample programs.
  • Page 47: Ip Addresses Explained

    6.3 IP Addresses Explained IP (Internet Protocol) addresses are expressed as 4 decimal numbers separated by periods, for example: 216.103.126.155 10.1.1.6 Each decimal number must be between 0 and 255. The total IP address is a 32-bit number consisting of the 4 bytes expressed as shown above. A local network uses a group of adja- cent IP addresses.
  • Page 48: How Ip Addresses Are Used

    Each RCM3000 RabbitCore module has its own unique MAC address, which consists of the prefix 0090C2 followed by the code that appears on the label affixed to the RCM3000 module. For example, a MAC address might be 0090C2C002C0.
  • Page 49: Dynamically Assigned Internet Addresses

    DHCP server. The DHCP server may try to give you the same address each time, but a fixed IP address is usually not guaranteed. If you are not concerned about accessing the RCM3000 from the Internet, you can place the RCM3000 on the internal network using a private address assigned either statically or through DHCP.
  • Page 50: Placing Your Device On The Network

    You can either place the RCM3000 directly on the Internet with a real Internet address or place it behind the firewall. If you place the RCM3000 behind the fire- wall, you need to configure the firewall to translate and forward packets from the Internet to the RCM3000.
  • Page 51: Running Tcp/Ip Sample Programs

    These programs require you to connect your PC and the RCM3000 board together on the same network. This network can be a local private net- work (preferred for initial experimentation and debugging), or a connection via the Internet.
  • Page 52: How To Set Ip Addresses In The Sample Programs

    #define MY_IP_ADDRESS "10.10.6.170" #define MY_NETMASK "255.255.255.0" #define MY_GATEWAY "10.10.6.1" #define MY_NAMESERVER "10.10.6.1" In order to do a direct connection, the following IP addresses can be used for the RCM3000: #define MY_IP_ADDRESS "10.1.1.2" #define MY_NETMASK "255.255.255.0" // #define MY_GATEWAY "10.10.6.1" // #define MY_NAMESERVER "10.10.6.1"...
  • Page 53: How To Set Up Your Computer's Ip Address For Direct Connect

    6.9 How to Set Up Your Computer’s IP Address for Direct Connect When your computer is connected directly to the RCM3000 board via an Ethernet connec- tion, you need to assign an IP address to your computer. To assign the PC the address with the netmask , do the following.
  • Page 54: Run The Pingme.c Sample Program

    6.10 Run the PINGME.C Sample Program Connect the crossover cable from your computer’s Ethernet port to the RCM3000 board’s RJ-45 Ethernet connector. Open this sample program from the SAMPLES\TCPIP\ICMP folder, compile the program, and start it running under Dynamic C. When the program...
  • Page 55: Where Do I Go From Here

    LEDs DS1 and DS2 on the Prototyping Board when a ping is sent and received. 6.12 Where Do I Go From Here? NOTE: If you purchased your RCM3000 through a distributor or through a Rabbit Semi- conductor partner, contact the distributor or partner first for technical support.
  • Page 56 RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 57: Appendix A. Rcm3000 Specifications

    A. RCM3000 S PPENDIX PECIFICATIONS Appendix A provides the specifications for the RCM3000, and describes the conformal coating. User’s Manual Downloaded from Elcodis.com electronic components distributor...
  • Page 58: Electrical And Mechanical Characteristics

    A.1 Electrical and Mechanical Characteristics Figure A-1 shows the mechanical dimensions for the RCM3000. 1.850 (47.0) 1.375 (34.9) 0.100 dia (2.5) R46 R47 0.68 0.17 1.17 (4.3) (29.7) (17.2) 2.725 (69.2) 1.850 (47.0) Figure A-1. RCM3000 Dimensions NOTE: All measurements are in inches followed by millimeters enclosed in parentheses.
  • Page 59 An “exclusion zone” of 0.08" (2 mm) is recommended below the RCM3000 when the RCM3000 is plugged into another assembly using the shortest connectors for headers J1 and J2. Figure A-2 shows this “exclusion zone.”...
  • Page 60 Table A-1 lists the electrical, mechanical, and environmental specifications for the RCM3000. Table A-1. RabbitCore RCM3000 Specifications Feature RCM3000 RCM3010 Microprocessor Rabbit 3000 at 29.4 MHz EMI Reduction Spectrum spreader for reduced EMI (radiated emissions) Ethernet Port 10/100-compatible with 10Base-T interface, RJ-45, 2 LEDs Flash Memory 512K (2 ×...
  • Page 61: Headers

    A.1.1 Headers The RCM3000 uses headers at J1 and J2 for physical connection to other boards. J1 and J2 are 2 × 17 SMT headers with a 2 mm pin spacing. J3, the programming port, is a 2 × 5 header with a 2 mm pin spacing.
  • Page 62: Bus Loading

    (pF) Parallel Ports A to G Table A-3 lists the external capacitive bus loading for the various RCM3000 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-3.
  • Page 63 Figure A-4 shows a typical timing diagram for the Rabbit 3000 microprocessor external I/O read and write cycles. A[19:0] valid T adr /CSx T CSx T CSx /OEx T OEx T OEx T setup D[7:0] valid T hold A[19:0] valid...
  • Page 64 If the doubler is not enabled, then every clock is shortened during the low part of the clock period. The maxi- mum shortening for a pair of clocks combined is shown in the table. RabbitCore RCM3000 Downloaded from Elcodis.com...
  • Page 65: Rabbit 3000 Dc Characteristics

    = –55°C to +125°C, V = 3.0 V to 3.6 V. Note that while the Rabbit 3000 is rated to operate over a voltage range from 3.0–3.6 V, the RCM3000 has a more restrictive operating voltage range of 3.15–3.45 V DC.
  • Page 66: I/O Buffer Sourcing And Sinking Limit

    A.4 I/O Buffer Sourcing and Sinking Limit Unless otherwise specified, the Rabbit 3000 I/O buffers are capable of sourcing and sink- ing 6.8 mA of current per pin at full AC switching speed. Full AC switching assumes a 29.4 MHz CPU clock and capacitive loading on address and data lines of less than 70 pF per pin.
  • Page 67: Conformal Coating

    Conformally coated area R46 R47 Figure A-5. RCM3000 Areas Receiving Conformal Coating Any components in the conformally coated area may be replaced using standard soldering procedures for surface-mounted components. A new conformal coating should then be applied to offer continuing protection against the effects of moisture and contaminants.
  • Page 68: Jumper Configurations

    A.6 Jumper Configurations Figure A-6 shows the header locations used to configure the various RCM3000 options via jumpers. Figure A-6. Location of RCM3000 Configurable Positions Table A-7 lists the configuration options. Table A-7. RCM3000 Jumper Configurations Factory Header Description Pins Connected Default ×...
  • Page 69: Appendix B. Prototyping Board

    PPENDIX ROTOTYPING OARD Appendix B describes the features and accessories of the Proto- typing Board, and explains the use of the Prototyping Board to demonstrate the RCM3000 and to build prototypes of your own circuits. User’s Manual Downloaded from Elcodis.com...
  • Page 70: Introduction

    The Prototyping Board included in the Development Kit makes it easy to connect an RCM3000 module to a power supply and a PC workstation for development. It also pro- vides some basic I/O peripherals (switches and LEDs), as well as a prototyping area for more advanced hardware development.
  • Page 71: Prototyping Board Features

    • I/O Switches and LEDs nected to the PG0 and PG1 pins of the master RCM3000 module and may be read as inputs by sample applications. Two LEDs are connected to the PG6 and PG7 pins of the master module, and may be driven as output indicators by sample applications.
  • Page 72 +5 V or the +3.3 V supplies, respectively. Motor Encoder —A motor/encoder header is provided at header J6 for future use. • —our’s LCD/keypad module may be plugged in directly to • LCD/Keypad Module headers J7, J8, and J10. RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 73: Mechanical Dimensions And Layout

    B.2 Mechanical Dimensions and Layout Figure B-2 shows the mechanical dimensions and layout for the Prototyping Board. 1.025 5.55 0.20 (26) (141) GND/EGND RCM1JA RCM1JB +3.3V VBAT RCM3000 ETHERNET CORE MODULE VRAM /RES /IORD /IOWR 2.5 mm JACK Battery +3.3V +3.3V SLAVE UX11 /RES...
  • Page 74: Power Supply

    5, accept 4-40 × 3/8 screws B.3 Power Supply The RCM3000 requires a regulated 3.3 V ± 0.15 V DC power source to operate. Depend- ing on the amount of current required by the application, different regulators can be used to supply this voltage.
  • Page 75: 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 RCM3000 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.
  • Page 76: Adding Other Components

    +5 V and the +3.3 V regulated voltages respectively. You may remove a jumper and place an ammeter across the pins instead, as shown in the example in Figure B-5, to measure the current being drawn. Figure B-5. Prototyping Board Current-Measurement Option RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 77: Other Prototyping Board Modules And Options

    With the RCM3000 plugged into the MASTER slots, it has full access to the RS-232 trans- ceiver, and can act as the “master” relative to another RabbitCore RCM3000, RCM3100, or RCM3200 plugged into the slots, which acts as the “slave.”...
  • Page 78: Use Of Rabbit 3000 Parallel Ports

    B.5 Use of Rabbit 3000 Parallel Ports Table B-2 lists the Rabbit 3000 parallel ports and their use for the RCM30/31/32XX Prototyping Board. Table B-2. RCM30/31/32XX Prototyping Board Use of Rabbit 3000 Parallel Ports Port Initial State High when not driven PA0–PA7...
  • Page 79 Table B-2. RCM30/31/32XX Prototyping Board Use of Rabbit 3000 Parallel Ports (continued) Port Initial State Pulled up on PF0–PF7 Input Reserved for future use Prototyping Board Input Switch S3 (normally open) High Input Switch S2 (normally open) High Output TXF IrDA...
  • Page 80 RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 81: Appendix C. Lcd/Keypad Module

    LCD/keypad module on the Prototyping Board. Either version of the LCD/keypad module can be installed at a remote location up to 60 cm (24") away. Contact your Rabbit Semi- conductor sales representative or your authorized Rabbit Semiconductor distributor for further assistance in purchasing an LCD/keypad module.
  • Page 82 All dimen- sions have a manufacturing toler- ance of ±0.01" (0.25 mm). 0.200 0.500 (5.1) (12.7) 1.450 (36.8) 2.200 (55.9) Figure C-2. User Board Footprint for LCD/Keypad Module RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 83: Contrast Adjustments For All Boards

    5 V. You may adjust the contrast using the potentiometer at R2 as shown in Figure C-3. LCD/keypad modules configured for 3.3 V should not be used with the 5 V RCM3000/3100/3200 Prototyping Board because the higher voltage will reduce the backlight service life dramatically.
  • Page 84: Keypad Labeling

    Figure C-4. The keypad legend is located under the blue key- pad matte, and is accessible from the left only as shown in Figure C-5. Keypad label is located under the blue keypad matte. Figure C-5. Removing and Inserting Keypad Label RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 85: Header Pinouts

    C.4 Header Pinouts Figure C-6 shows the pinouts for the LCD/keypad module. Figure C-6. LCD/Keypad Module Pinouts C.4.1 I/O Address Assignments The LCD and keypad on the LCD/keypad module are addressed by the /CS strobe as explained in Table C-2. Table C-2.
  • Page 86: Mounting Lcd/Keypad Module On The Prototyping Board

    Figure C-7. Be careful to align the pins over the headers, and do not bend them as you press down to mate the LCD/keypad module with the Prototyping Board. GND/EGND RCM1JA RCM1JB +3.3V RCM3000 ETHERNET CORE MODULE VBAT VRAM /RES /IORD /IOWR 2.5 mm JACK...
  • Page 87: Bezel-Mount Installation

    C.6 Bezel-Mount Installation This section describes and illustrates how to bezel-mount the LCD/keypad module. Fol- low these steps for bezel-mount installation. 1. Cut mounting holes in the mounting panel in accordance with the recommended dimen- sions in Figure C-8, then use the bezel faceplate to mount the LCD/keypad module onto the panel.
  • Page 88 Do not tighten each screw fully before moving on to the next screw. Apply only one or two turns to each screw in sequence until all are tightened manually as far as they can be so that the gasket is compressed and the plastic bezel faceplate is touching the panel. RabbitCore RCM3000 Downloaded from Elcodis.com...
  • Page 89: Connect The Lcd/Keypad Module To Your Prototyping Board

    Note the locations and connections relative to pin 1 on both the Prototyping Board and the LCD/keypad module. Rabbit Semiconductor offers 2 ft. (60 cm) extension cables. Contact your authorized Rab- bit Semiconductor distributor or a sales representative for more information.
  • Page 90: Lcd/Keypad Module Function Calls

    C.7 LCD/Keypad Module Function Calls When mounted on the Prototyping Board, the LCD/keypad module uses the auxiliary I/O bus on the Rabbit 3000 chip. Remember to add the line #define PORTA_AUX_IO to the beginning of any programs using the auxiliary I/O bus.
  • Page 91: Lcd Display

    C.7.3 LCD Display The functions used to control the LCD display are contained in the library GRAPHIC.LIB located in the Dynamic C library directory. DISPLAYS\GRAPHIC void glInit(void); Initializes the display devices, clears the screen. RETURN VALUE None. SEE ALSO glDispOnOFF, glBacklight, glSetContrast, glPlotDot, glBlock, glPlotDot, glPlotPolygon, glPlotCircle, glHScroll, glVScroll, glXFontInit, glPrintf, glPutChar, glSetBrushType, glBuffLock, glBuffUnlock, glPlotLine void glBackLight(int onOff);...
  • Page 92 RETURN VALUE None. SEE ALSO glFillScreen, glBlankScreen, glPlotPolygon, glPlotCircle RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 93 void glPlotVPolygon(int n, int *pFirstCoord); Plots the outline of a polygon in the LCD page buffer, and on the LCD if the buffer is unlocked. Any portion of the polygon that is outside the LCD display area will be clipped. If fewer than 3 vertices are specified, the function will return without doing anything.
  • Page 94 (in pixels). RETURN VALUE None. SEE ALSO glFillCircle, glPlotPolygon, glFillPolygon RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 95 void glFillCircle(int xc, int yc, int rad); Draws a filled circle in the LCD page buffer and on the LCD if the buffer is unlocked. Any portion of the circle that is outside the LCD display area will be clipped. PARAMETERS xc is the x coordinate of the center of the circle.
  • Page 96 The x step is returned in the MSB, and the y step is returned in the LSB of the integer result. SEE ALSO Use glGetPfStep() to control the x and y printing step direction. RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 97 void glPutChar(char ch, char *ptr, int *cnt, glPutCharInst *pInst) STDIO Provides an interface between the string-handling functions and the graphic library. The STDIO string-formatting function will call this function, one character at a time, until the entire format- ted string has been parsed. Any portion of the bitmap character that is outside the LCD display area will be clipped.
  • Page 98 PIXBLACK draws black pixels. PIXWHITE draws white pixels. PIXXOR draws old pixel XOR'ed with the new pixel. RETURN VALUE None. SEE ALSO glGetBrushType RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 99 int glGetBrushType(void); Gets the current method (or color) of pixels drawn by subsequent graphic calls. RETURN VALUE The current brush type. SEE ALSO glSetBrushType void glPlotDot(int x, int y); Draws a single pixel in the LCD buffer, and on the LCD if the buffer is unlocked. If the coordinates are outside the LCD display area, the dot will not be plotted.
  • Page 100 8, otherwise truncates. rows is the number of rows in the window. RETURN VALUE None. SEE ALSO glVScroll, glDown1 RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 101 void glDown1(int left, int top, int cols, int rows); Scrolls byte-aligned window down one pixel, top column is filled by current pixel type (color). PARAMETERS left is the top left corner of bitmap, must be evenly divisible by 8, otherwise truncates. top is the top left corner of the bitmap.
  • Page 102 RETURN VALUE None. SEE ALSO glXPutFastmap, glPrintf RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 103 void glXPutFastmap(int left, int top, int width, int height, unsigned long bitmap); Draws bitmap in the specified space. The data for the bitmap are stored in xmem. This function is like glXPutBitmap, except that it is faster. The restriction is that the bitmap must be byte-aligned. Any portion of a bitmap image or character that is outside the LCD display area will be clipped.
  • Page 104 TextWindowFrame PARAMETERS *window is a pointer to a font descriptor. ch is a character to be displayed on the LCD. RETURN VALUE None. SEE ALSO TextGotoXY, TextPrintf, TextWindowFrame, TextCursorLocation RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 105 void TextPrintf(struct windowFrame *window, char *fmt, ...); Prints a formatted string (much like printf) on the LCD screen. Only printable characters in the font set are printed, also escape sequences, '\r' and '\n' are recognized. All other escape sequences will be skipped over;...
  • Page 106: Keypad

    How many times to repeat. 0 = None. cCntLo is a low-speed hold tick. How long to hold before going to high-speed repeat. 0 = Slow Only. RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 107 cSpdHi is a high-speed repeat tick. How many times to repeat after low speed repeat. 0 = None. RETURN VALUE None. SEE ALSO keyProcess, keyGet, keypadDef void keyProcess(void); Scans and processes keypad data for key assignment, debouncing, press and release, and repeat. NOTE: This function is also able to process an 8 ×...
  • Page 108 Writes "1" to each row and reads the value. The position of a keypress is indicated by a zero value in a bit position. PARAMETER *pcKeys is the address of the value read. RETURN VALUE None. SEE ALSO keyConfig, keyGet, keypadDef, keyProcess RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 109: Sample Programs

    Board are provided in the directory. SAMPLES\RCM3000 These sample programs use the auxiliary I/O bus on the Rabbit 3000 chip, and so the line is already included in the sample programs. #define PORTA_AUX_IO Each sample program has comments that describe the purpose and function of the pro- gram.
  • Page 110 RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 111: Appendix D. Power Supply

    RCM3000 board through header J2. An RCM3000 with no loading at the outputs operating at 29.4 MHz typically draws 145 mA. The RCM3000 will consume an additional 10 mA when the programming cable is used to connect the programming header, J3, to a PC.
  • Page 112: Reset Generator

    The RCM3000 uses a reset generator to reset the Rabbit 3000 microprocessor when the voltage drops below the voltage necessary for reliable operation. The reset occurs between 2.85 V and 3.00 V, typically 2.93 V. The RCM3000 has a reset output, pin 1 on header J2. D.2 Optional +5 V Output The RCM3000 RabbitCore boards have an onboard charge pump that provides the +5 V needed by the RealTek Ethernet chip.
  • Page 113: Appendix E. Motor Control Features

    Parallel Port F, along with +5 V. This appendix describes the function of each pin, and the ways they may be used for motion-control applications. It should be read in conjunction with the Rabbit 3000 Microprocessor User’s Manual and the RCM3000 and the RCM30/31/32XX Prototyping Board schematics.
  • Page 114: Header J6

    2.2 V typ logic high and/or the 6 mA maximum from the Rabbit 3000. The +5 V supply output is provided for supply- ing interface logic. When used as inputs, the pins on header J6 do not require buffers unless the input voltage will exceed the 5 V tolerance of the processor pins.
  • Page 115: Using Parallel Port F

    E.3 Using Parallel Port F Parallel Port F is a byte-wide port with each bit programmable for data direction and drive. These are simple inputs and outputs controlled and reported in the Port F Data Register. As outputs, the bits of the port are buffered, with the data written to the Port F Data Regis- ter transferred to the output pins on a selected timing edge.
  • Page 116 Bit 6 carries PWM[2] output Bit 7 carries PWM[3] output Port F Drive Control Register PFDCR 00111110 (0x3E) xxxxxxxx Bits Value Description Corresponding port bit is active high or low Corresponding port bit is open drain RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 117 Table E-2. Parallel Port F Registers (continued) Register Name Mnemonic I/O Address Reset Value Port F Data Direction Register PFDDR 00111111 (0x3F) 00000000 Bits Value Description Corresponding port bit is an input Corresponding port bit is an output User’s Manual Downloaded from Elcodis.com electronic components distributor...
  • Page 118: Pwm Outputs

    (65 counts) (65 counts) (65 counts) (64 counts) n=259, spread (65 counts) (65 counts) (65 counts) (65 counts) n=259, normal (260 counts) Figure E-1. PWM Outputs for Various Normal and Spread Modes RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 119: Pwm Registers

    E.5 PWM Registers There are no default values on reset for any of the PWM registers. Table E-4. PWM Registers PWM LSBs Register Address PWL0R 10001000 (0x88) PWL1R 10001010 (0x8A) PWL2R 10001100 (0x8C) PWL3R 10001110 (0x8E) Bit(s) Value Description The least significant two bits for the Pulse Width Modulator count are Write stored These bits are ignored.
  • Page 120: Quadrature Decoder

    I and Q inputs are sampled in different clock cycles. The Input Capture (see the Rabbit 3000 Microprocessor Users Manual) may be used to measure the pulse width on the I inputs because they come from the odd-numbered port bits.
  • Page 121 The Quadrature Decoder generates an interrupt when the counter increments from 0x00 to 0x01 or when the counter decrements from 0x00 to 0xFF. Note that the status bits in the QDCSR are set coincident with the interrupt, and the interrupt (and status bits) are cleared by reading the QDCSR.
  • Page 122 Quadrature Decoder interrupt use Interrupt Priority QDC1R Address = 10010100 (0x94) Quad Decode Count Register (QDC2R) Address = 10010110 (0x96) Bit(s) Value Description The current value of the Quadrature Decoder read counter is reported. RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 123: Index

    ....33 additional information hardware connections ..... 6 sample programs ....12 Getting Started manual ..3 install RCM3000 on Prototyp- standard features ....30 online documentation ..4 ing Board ......6 debugging ...... 30 auxiliary I/O bus ....21 power supply .......
  • Page 124 LEDs motor encoder connector function calls function calls ....82 pinout ......69 keyConfig ....98 ledOut ......82 mounting RCM3000 ....6 keyGet ......99 mounting instructions ..78 pinout .........67 keyInit ......98 remote cable connection ..81 power supply .....66 keypadDef ....100 removing and inserting keypad prototyping area ....67...
  • Page 125 ......49 bus loading ......54 sample programs ....12 digital I/O buffer sourcing and getting to know the RCM3000 sinking limits ....58 CONTROLLED.C ..12 dimensions ......50 FLASHLED1.C .... 12 electrical, mechanical, and FLASHLED2.C .... 12 environmental ....
  • Page 126 RabbitCore RCM3000 Downloaded from Elcodis.com electronic components distributor...
  • Page 127: Schematics

    CHEMATICS 090-0136 RCM3000 Schematic www.rabbit.com/documentation/schemat/090-0136.pdf 090-0137 RCM30/31/32XX Prototyping Board Schematic www.rabbit.com/documentation/schemat/090-0137.pdf 090-0156 LCD/Keypad Module Schematic www.rabbit.com/documentation/schemat/090-0156.pdf 090-0128 Programming Cable Schematic www.rabbit.com/documentation/schemat/090-0128.pdf You may use the URL information provided above to access the latest schematics directly. User’s Manual Downloaded from Elcodis.com...
  • Page 128 Downloaded from Elcodis.com electronic components distributor...

Table of Contents