C-programmable core module with serial flash mass storage and ethernet (160 pages)
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...
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...
(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.
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.
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...
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.
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.
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.)
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.
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 >...
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: •...
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.
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.
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.
• 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.
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...
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, PA0PA7 PB2PB7 PD4PD5 Port D Port A Port B (+Ethernet Port) PC0, PC2, PC4 Port C PE0PE1, Port E PE3PE7 (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...
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.
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.
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.
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...
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.
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.
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...
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”...
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);...
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);...
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...
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.
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.
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.
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.
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.
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.
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.
#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"...
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.
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...
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...
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...
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 ×...
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.
(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...
= –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.
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.
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.
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...
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.
• 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...
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.
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.
+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...
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.”...
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...
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...
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.
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...
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.
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...
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...
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.
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.
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;...
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...
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...
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.
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.
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.
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.
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...
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.
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...
....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...
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...
Need help?
Do you have a question about the RCM3000 and is the answer not in the manual?
Questions and answers