Page 1
RabbitCore RCM3305/RCM3315 C-Programmable Core Module with Serial Flash Mass Storage and Ethernet User’s Manual 019–0151 • 080528–F...
Page 2
Rabbit, RabbitCore, and Dynamic C are registered trademarks of Digi International Inc. Rabbit 3000 is a trademark of Digi International Inc. The latest revision of this manual is available on the Rabbit Web site, www.rabbit.com, for free, unregistered download. Rabbit Semiconductor Inc.
ABLE OF ONTENTS Chapter 1. Introduction 1.1 RCM3305/RCM3315 Features ......................2 1.2 Comparing the RCM3309/RCM3319 and RCM3305/RCM3315 ............4 1.3 Advantages of the RCM3305 and RCM3315..................5 1.4 Development and Evaluation Tools......................6 1.4.1 RCM3305 Series Development Kit ....................6 1.4.2 Software ............................7 1.4.3 Connectivity Interface Kits ......................7 1.4.4 Online Documentation ........................7 Chapter 2.
Page 4
A.1 Electrical and Mechanical Characteristics ..................66 A.1.1 Headers ............................70 A.2 Bus Loading ............................71 A.3 Rabbit 3000 DC Characteristics ......................74 A.4 I/O Buffer Sourcing and Sinking Limit..................... 75 A.5 Jumper Configurations ........................76 A.6 Conformal Coating ..........................78...
Page 5
B.4.8 Other Prototyping Board Modules .....................94 B.4.9 Quadrature Decoder ........................94 B.4.10 Stepper-Motor Control ......................94 B.5 Prototyping Board Jumper Configurations ..................96 B.6 Use of Rabbit 3000 Parallel Ports ......................98 Appendix C. LCD/Keypad Module C.1 Specifications ...........................101 C.2 Contrast Adjustments for All LCD/Keypad Modules..............103 C.3 Keypad Labeling ..........................104...
(main oscillator and real-time clock), reset circuitry, and the circuitry necessary for 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.
• Small size: 1.85" x 2.73" x 0.86" (47 mm x 69 mm x 22 mm) • Microprocessor: Rabbit 3000 running at 44.2 MHz • 49 parallel 5 V tolerant I/O lines: 43 configurable for I/O, 3 fixed inputs, 3 fixed outputs •...
Page 9
Table 1 below summarizes the main features of the RCM3305 and the RCM3315 modules. Table 1. RCM3305/RCM3315 Features Feature RCM3305 RCM3315 Microprocessor Rabbit 3000 running at 44.2 MHz SRAM 512K program (fast SRAM) + 512K data Flash Memory 512K (program)
— As long as no low-level FAT file system calls were used in your applica- • tion developed for the RCM3305/RCM3315, you may run that application on the RCM3309/RCM3319 after you recompile it using Dynamic C v. 9.60. RabbitCore RCM3305/RCM3315...
• Easy C-language program development and debugging • Program download utility (Rabbit Field Utility) and cloning board options for rapid production loading of programs. • Generous memory size allows large programs with tens of thousands of lines of code, and substantial data storage.
Dynamic C . STAT K E Y PA D D I S P L AY B O A R D Rabbit, RabbitCore, Dynamic C, and Digi are registered trademarks of Digi International Inc. CORE L C D 1 J B...
1.4.2 Software The RCM3305 and the RCM3315 are programmed using version 9.25 or later of Rabbit’s Dynamic C. A compatible version is included on the Development Kit CD-ROM. Dynamic C v. 9.60, which is required for the related RCM3309 and RCM3319 RabbitCore modules, includes the popular µC/OS-II real-time operating system, point-to-point proto-...
2.1 Install Dynamic C To develop and debug programs for an RCM3305 series module (and for all other Rabbit hardware), you must install and use Dynamic C. If you have not yet installed Dynamic C version 9.25 (or a later version), do so now by inserting the Dynamic C CD from the Development Kit in your PC’s CD-ROM drive.
Should you need to remove the RCM3305 series module, grasp it with your fingers along the sides by the connectors and gently work the module up to pull the pins away from the sockets where they are installed. Do not remove the module by grasping it at the top and bottom RabbitCore RCM3305/RCM3315...
2.2.2 Step 2 — Connect Programming Cable The programming cable connects the RCM3305 series module to the PC running Dynamic C to download programs and to monitor the module during debugging. 2.2.2.1 RCM3309 and RCM3319 Connect the 10-pin connector of the programming cable labeled to header J1 on PROG the RCM3309/RCM3319 as shown in Figure 3(a).
RS-232 converter section located in the middle of the cable. The USB programming cable and programming cables with clear or red shrink wrap from other Rabbit kits are not designed to work with RCM3305/ RCM3315 modules.
2.2.3 Step 3 — Connect Power When all other connections have been made, you can connect power to the Prototyping Board. If you have the universal power supply, prepare the AC adapter for the country where it will be used by selecting the plug. The RCM3305 Series Development Kit presently includes Canada/Japan/U.S., Australia/N.Z., U.K., and European style plugs.
Section 6.5, “Run the PINGME.C Sample Program,” tests the TCP/IP portion of the board. 2.4.1 Troubleshooting If Dynamic C cannot find the target system (error message "No Rabbit Processor Detected."): • Check that the RCM3305 series module is powered correctly — the red...
2.5.1 Technical Support NOTE: If you purchased your RCM3305 series module through a distributor or through a Rabbit partner, contact the distributor or partner first for technical support. If there are any problems at this point: • Use the Dynamic C menu to get further assistance with Dynamic C.
UNNING AMPLE ROGRAMS To develop and debug programs for the RCM3305/RCM3315 (and for all other Rabbit hardware), you must install and use Dynamic C. 3.1 Introduction To help familiarize you with the RCM3305 and RCM3315 modules, Dynamic C includes several sample programs. Loading, executing and studying these programs will give you a solid hands-on overview of the RCM3305/RCM3315’s capabilities, as well as a quick...
The corresponding LEDs (DS3 and DS4) will turn on or off. Once you have loaded and executed these five programs and have an understanding of how Dynamic C and the RCM3305/RCM3315 modules interact, you can move on and try the other sample programs, or begin building your own. RabbitCore RCM3305/RCM3315...
3.2.1 Use of Serial Flash 3.2.1.1 Onboard Serial Flash The following sample programs can be found in the SAMPLES\RCM3300\SerialFlash folder. —This program is a handy utility for inspecting the contents of a • SFLASH_INSPECT.c serial flash chip. When the sample program starts running, it attempts to initialize a serial flash chip on Serial Port B.
Page 26
SIMPLE485SLAVE.C to illustrate RS-485 master/slave communication. To run these sample programs, you will need a second Rabbit-based system with RS-485—another Rabbit single-board computer or RabbitCore module may be used as long as you use the master or slave sample program associated with that board.
The RS-485 connections between the slave and master devices are as follows. • RS485+ to RS485+ • RS485– to RS485– • GND to GND —This program demonstrates a simple RS-485 transmission of • SIMPLE485MASTER.C lower case letters to a slave. The slave will send back converted upper case letters back to the master and display them in the STDIO window.
Chapter 4 describes the hardware components and principal hardware subsystems of the RCM3305/RCM3315 modules. Appendix A, “RCM3305/RCM3315 Specifications,” provides complete physical and electrical specifications. Figure 4 shows the Rabbit-based subsystems designed into the RCM3305/RCM3315. 32 kHz 44.2 MHz Ethernet Customer-specific...
LINK the corresponding LEDs on the RCM3305/RCM3315 module. These signals may be “dis- connected” by removing 0 Ω surface-mount resistors R41 and R42. See Appendix A.5 for more information about the locations of these surface-mount resistors. RabbitCore RCM3305/RCM3315...
Page 31
Figure 6. Use of Rabbit 3000 Ports The ports on the Rabbit 3000 microprocessor used in the RCM3305/RCM3315 are config- urable, and so the factory defaults can be reconfigured. Table 2 lists the Rabbit 3000 fac- tory defaults and the alternate configurations.
Page 32
Input/Output TPIN– * Optional Ethernet receive port PD7/TPI+ Input/Output TPIN+ * LINK Output Max. sinking current draw 1 mA (see Note 1) Output Pins 29–32 are configured with 0 Ω surface-mount resistors at JP4, JP5, JP7, and JP8. RabbitCore RCM3305/RCM3315...
Page 33
Table 2. RCM3305/RCM3315 Pinout Configurations (continued) Pin Name Default Use Alternate Use Notes Reset output from Reset /RES Reset output Generator RCM3305/RCM3315— Input/Output CLKB Not Connected (used for onboard serial flash) External Address 0 Input/Output /SWR Slave port write External Address 1 Input/Output /SRD Slave port read...
Page 34
1.2 V to 1.5 V, the contents of the battery-backed SRAM may be lost. If VRAM drops below 1.0 V, the 32 kHz oscillator could stop running. Pay careful attention to this volt- age if you draw any current from this pin. RabbitCore RCM3305/RCM3315...
The red LED at DS3 is a user- programmable LED, which is controlled by PD0 on the Rabbit 3000’s Parallel Port D. The sample program FLASHLED.C provided in the Dynamic C...
Either of the two communicating devices can supply the clock. Serial Ports E and F can also be configured as HDLC serial ports. The IrDA protocol is also supported in SDLC format by these two ports. RabbitCore RCM3305/RCM3315...
4.2.2 Ethernet Port Figure 7 shows the pinout for the RJ-45 Ethernet port (J2). Note that some Ethernet con- nectors are numbered in reverse to the order used here. ETHERNET 1. E_Tx+ 2. E_Tx 3. E_Rx+ 6. E_Rx Figure 7. RJ-45 Ethernet Port Pinout The RJ-45 connector is shielded to minimize EMI effects to/from the Ethernet signals.
2. It can be driven low during an interrupt acknowledge cycle. 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 RCM3305/RCM3315 onboard peripheral circuits. The serial programming port can be used to force a hard reset on the RCM3305/RCM3315 by asserting the /RESET_IN signal.
The programming cable is used to connect the programming port of the RCM3305/ RCM3315 to a PC serial COM port. The programming cable converts the RS-232 voltage levels used by the PC serail port to the CMOS voltage levels used by the Rabbit 3000. When the...
RCM3305/RCM3315 is in the Program Mode. Refer to the for more information on the pro- Rabbit 3000 Microprocessor User’s Manual gramming port. 4.3.2 Standalone Operation of the RCM3305/RCM3315 The RCM3305/RCM3315 must be programmed via the Prototyping Board or via a similar arrangement on a customer-supplied board.
4.4.2 Spectrum Spreader The Rabbit 3000 features a spectrum spreader, which helps to mitigate EMI problems. The spectrum spreader is on by default, but it may also be turned off or set to a stronger setting.
4.5.2 Flash EPROM RCM3305/RCM3315 boards also have 512K of flash EPROM at U9. NOTE: Rabbit recommends that any customer applications should not be constrained by the sector size of the flash EPROM since it may be necessary to change the sector size in the future.
Dynamic C is an integrated development system for writing embedded software. It runs on an IBM-compatible PC and is designed for use with controllers based on the Rabbit micropro- cessor. Chapter 5 describes the libraries and function calls related to the RCM3305/RCM3315.
Page 44
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”...
Internet or local Ethernet. This is accomplished in one of two ways. 1. Via the Rabbit RabbitLink, which allows a Rabbit-based target to have programs down- loaded to it and debugged with the same ease as exists when the target is connected directly to a PC.
Port E bits as inputs, or use WrPortI(PEDDR, &PEDDRShadow, 0xFF); to set all the Port E bits as outputs. When using the external I/O bus on the Rabbit 3000 chip, add the line #define PORTA_AUX_IO // required to enable external I/O bus to the beginning of any programs using the external I/O bus.
RN_CFG_RCM33.LIB used to configure the RCM3305/RCM3315 for use with RabbitNet peripheral boards on the Prototyping Board. Other generic functions applicable to all devices based on Rabbit microprocessors are described in the Dynamic C Function Reference Manual. 5.2.6.1 Board Initialization void brdInit (void);...
5.2.6.2 Digital I/O int digIn(int channel); Reads the input state of inputs on Prototyping Board headers J5 and J6. Do not use this function if you configure these pins for alternate use after brdInit() is called. PARAMETERS channels is the channel number corresponding to the signal on header J5 or J6 0—IN0 1—IN1 2—IN2...
4 = DS4 on Prototyping Board 5 = DS5 on Prototyping Board 6 = DS6 on Prototyping Board value is the value used to control the LED: 0 = off 1 = on RETURN VALUE None. SEE ALSO brdInit RabbitCore RCM3305/RCM3315...
void relayOut(int relay, int value); Sets the position for the relay common contact. The default position is for normally closed contacts. PARAMETERS relay is the one relay (1) value is the value used to connect the relay common contact: 0 = normally closed positions (NC1 and NC2) 1 = normally open positions (NO1 and NO2) RETURN VALUE None.
The function calls described in this section are used to configure the RabbitNet port on the Prototyping Board for use with RabbitNet peripheral cards. The user’s manual for the spe- cific peripheral card you are using contains additional function calls related to the Rabbit- Net protocol and the individual peripheral card. Appendix E provides additional information about the RabbitNet.
Page 53
void rn_sp_close(int port); Deactivates the RCM3305/RCM3315 RabbitNet port as a clocked serial port. This call is also used by rn_init(). PARAMETERS portnum = 0 RETURN VALUE None void rn_sp_enable(int portnum); This is a macro that enables or asserts the RCM3305/RCM3315 RabbitNet port chip select prior to data transfer.
Starting with Dynamic C version 9.60, Dynamic C includes the popular µC/OS-II real- time operating system, point-to-point protocol (PPP), FAT file system, RabbitWeb, and other select libraries. Rabbit also offers for purchase the Rabbit Embedded Security Pack featuring the Secure Sockets Layer (SSL) and a specific Advanced Encryption Standard (AES) library.
Figure 9. How to Identify Straight-Through and Crossover Ethernet Cables Ethernet cables and a 10Base-T Ethernet hub are available from Rabbit in a TCP/IP tool kit. More information is available at www.rabbit.com. User’s Manual...
Page 56
Wide Area Networks, but exceptional care should be used with IP address settings and all network-related programming and development. We recommend that development and debugging be done on a local network before connecting a Rabbit- Core system to the Internet.
6.2 TCP/IP Primer on IP Addresses Obtaining IP addresses to interact over an existing, operating, network can involve a num- ber of complications, and must usually be done with cooperation from your ISP and/or network systems administrator. For this reason, it is suggested that the user begin instead by using a direct connection between a PC and the RCM3305/RCM3315 using an Ether- net crossover cable or a simple arrangement with a hub.
Page 58
RCM3305/ RCM3315. 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. RabbitCore RCM3305/RCM3315...
6.2.1 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.
0090C2 followed by a code that is unique to each RCM3305/ RCM3315 module. For example, a MAC address might be 0090C2C002C0. TIP: You can always obtain the MAC address on your board by running the sample pro- gram DISPLAY_MAC.C from the SAMPLES\TCPIP folder. RabbitCore RCM3305/RCM3315...
6.2.3 Dynamically Assigned Internet Addresses In many instances, devices on a network do not have fixed IP addresses. This is the case when, for example, you are assigned an IP address dynamically by your dial-up Internet service provider (ISP) or when you have a device that provides your IP addresses using the Dynamic Host Configuration Protocol (DHCP).
You can either place the RCM3305/RCM3315 directly on the Internet with a real Internet address or place it behind the firewall. If you place the RCM3305/RCM3315 behind the firewall, you need to configure the firewall to translate and forward packets from the Internet to the RCM3305/RCM3315. RabbitCore RCM3305/RCM3315...
6.4 Running TCP/IP Sample Programs We have provided a number of sample programs demonstrating various uses of TCP/IP for networking embedded systems. These programs require you to connect your PC and the RCM3305/RCM3315 board together on the same network. This network can be a local pri- vate network (preferred for initial experimentation and debugging), or a connection via the Internet.
TCPCONFIG ent features such as DHCP. Their values are documented at the top of the TCP_CON- library in the directory. More information is available in the FIG.LIB LIB\TCPIP Dynamic C TCP/IP User’s Manual. RabbitCore RCM3305/RCM3315...
6.4.2 How to Set Up your Computer for Direct Connect Follow these instructions to set up your PC or notebook. Check with your administrator if you are unable to change the settings as described here since you may need administrator privileges.
Web browser. All current e-mails can also be read with the Web browser. —This program demonstrates ICMP by pinging a remote host. It will flash • PINGLED.C LEDs DS3 and DS4 on the Prototyping Board when a ping is sent and received. RabbitCore RCM3305/RCM3315...
The Dynamic C FAT File System, RabbitWeb, and Secure Sockets Layer (SSL) modules have been integrated into a sample program for the RCM3305 and the RCM3315. The sample program requires that you have installed the Dynamic C FAT File System, Rabbit- Web, and SSL modules.
Page 68
You will see that your text file has replaced the humidity monitor. To restore the monitor, go back to the other window, click back to go to the upload page again, and choose to replace and click Upload HUMIDITY_MONITOR.ZHTML monitor.ztm RabbitCore RCM3305/RCM3315...
6.7 Where Do I Go From Here? NOTE: If you purchased your RCM3305/RCM3315 through a distributor or through a Rabbit partner, contact the distributor or partner first for technical support. If there are any problems at this point: • Use the Dynamic C menu to get further assistance with Dynamic C.
A. RCM3305/RCM3315 PPENDIX PECIFICATIONS Appendix A provides the specifications for the RCM3305/ RCM3315, and describes the conformal coating. User’s Manual...
0.100 dia (2.5) R18 R22 RCM33XX 0.17 (4.3) 0.97 (24.7) 1.850 (47.0) Figure A-1. RCM3305/RCM3315 Dimensions NOTE: All measurements are in inches followed by millimeters enclosed in parentheses. All dimensions have a manufacturing tolerance of ±0.01" (0.25 mm). RabbitCore RCM3305/RCM3315...
Page 73
It is recommended that you allow for an “exclusion zone” of 0.04" (1 mm) around the RCM3305/RCM3315 in all directions when the RCM3305/RCM3315 is incorporated into an assembly that includes other printed circuit boards. An “exclusion zone” of 0.08" (2 mm) is recommended below the RCM3305/RCM3315 when the RCM3305/RCM3315 is plugged into another assembly.
Page 74
A slave port allows the RCM3305/RCM3315 to be used as an Slave Interface intelligent peripheral device slaved to a master processor, which may either be another Rabbit 3000 or any other type of processor Real-Time Clock Ten 8-bit timers (6 cascadable, 3 reserved for internal peripherals),...
Page 75
Table A-1. RCM3305/RCM3315 Specifications (continued) Parameter RCM3305 RCM3315 Watchdog/ Supervisor Pulse-Width 4 PWM registers with 10-bit free-running counter Modulators and priority interrupts 2-channel input capture can be used to time input signals from Input Capture various port pins Quadrature 2-channel quadrature decoder accepts inputs from external Decoder incremental encoder modules 3.15–3.45 V DC...
2 × 5 header with a 1.27 mm pin spacing. Figure A-3 shows the layout of another board for the RCM3305/RCM3315 to be plugged into. These values are relative to the mounting hole. RCM3300 Series Footprint Figure A-3. User Board Footprint for RCM3305/RCM3315 RabbitCore RCM3305/RCM3315...
You must pay careful attention to bus loading when designing an interface to the RCM3305/RCM3315. This section provides bus loading information for external devices. Table A-2 lists the capacitance for the various RCM3305/RCM3315 I/O ports. Table A-2. Capacitance of Rabbit 3000 I/O Ports Input Output...
Page 78
Figure A-4 shows a typical timing diagram for the Rabbit 3000 microprocessor external I/O read and write cycles. A[15:0] valid T adr /CSx T CSx T CSx /IOCSx T IOCSx T IOCSx /IORD T IORD T IORD /BUFEN T BUFEN...
Page 79
The maxi- mum shortening for a pair of clocks combined is shown in the table. Technical Note TN227, Interfacing External I/O with Rabbit 2000/3000 Designs, con- tains suggestions for interfacing I/O devices to the Rabbit 3000 microprocessors.
Stresses beyond those listed in Table A-5 may cause permanent damage. The ratings are stress ratings only, and functional operation of the Rabbit 3000 chip at these or any other conditions beyond those indicated in this section is not implied. Exposure to the absolute maximum rating conditions for extended periods may affect the reliability of the Rabbit 3000 chip.
Sourcing/Sinking Limits Pin Name (mA) Sourcing Sinking All data, address, and I/O lines with clock doubler enabled Under certain conditions, you can exceed the limits outlined in Table A-7. See the Rabbit 3000 Microprocessor User’s Manual for additional information. User’s Manual...
A.5 Jumper Configurations Figure A-5 shows the jumper locations used to configure the various RCM3305/ RCM3315 options. The black square indicates pin 1. Figure A-5. Location of RCM3305/RCM3315 Configurable Positions RabbitCore RCM3305/RCM3315...
Page 83
Table A-8 lists the configuration options. Table A-8. RCM3305/RCM3315 Jumper Configurations Factory Header Description Pins Connected Default 1–2 128K/256K Flash Memory Size × 2–3 512K 1–2 Reserved for future use Flash Memory Bank Select × 2–3 Normal Mode 1–2 128K/256K Data SRAM Size ×...
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. NOTE: For more information on conformal coatings, refer to Technical Note 303, Conformal Coatings. RabbitCore RCM3305/RCM3315...
Several areas for surface-mount devices are also available. Each SMT pad is connected to a hole designed to accept a 30 AWG solid wire. LCD/Keypad Module —Rabbit’s LCD/keypad module may be plugged in directly to • headers LCD1JA, LCD1JB, and LCD1JC. The signals on headers LCD1JB and LCD1JC will be available only if the LCD/keypad module is plugged in to header LCD1JA.
Page 88
RabbitNet peripheral cards to be used with the Prototyping Board. Serial Flash Interface —One serial flash interface (shared with the RabbitNet port) is • available to allow Rabbit’s SF1000 series serial flash to be used on the Prototyping Board. RabbitCore RCM3305/RCM3315...
B.2 Mechanical Dimensions and Layout Figure B-2 shows the mechanical dimensions and layout for the Prototyping Board. R52 R53 R60 R61 +3.3 V PF0_CLKD VRAM RABBITNET PF0_QD /RES SMODE1 /IORD R8 U6 C6 /IOWR L293D L293D H-DRIVER H-DRIVER 00 01 02 03 04 05 06 07 Battery /RES_OUT RCM3300...
Page 90
2 × 5, 2 mm pitch socket for serial flash Connectors • six screw-terminal headers for serial ports, digital inputs, stepper motor control, quadrature decoder, and relay contacts • one RJ-45 RabbitNet jack Standoffs/Spacers 7, accept 4-40 x 1/2 screws RabbitCore RCM3305/RCM3315...
B.3 Power Supply The RCM3305/RCM3315 requires a regulated 3.15 V to 3.45 V DC power source to oper- ate. Depending on the amount of current required by the application, different regulators can be used to supply this voltage. The Prototyping Board has an onboard +5 V switching power regulator from which a +3.3 V linear regulator draws its supply.
PE7 and PG5 as shown in the sample applications. Two switches (S2 and S3) are connected to PG0 and PG1 to demonstrate the interface to the Rabbit 3000 microprocessor. Reset switch S1 is the hardware reset for the RCM3305/RCM3315.
The four quadrature decoder inputs on screw-terminal header J5 may be used as inputs IN4–IN7. To use the PF0 signal from the Rabbit microprocessor, which goes to QD1B, remember to reconfigure the jumper on header JP3 to jumper pins 1–2.
B.4.3 CMOS Digital Outputs If the stepper-motor option is not used, eight CMOS-level digital outputs are available at J10, and can each handle up to 25 mA. B.4.4 Sinking Digital Outputs Four sinking digital outputs shared with LEDs DS3–DS6 are available at J12, and can each handle up to 500 mA.
* RS-485 termination and bias resistors are configured via header JP5. Serial Port D is configured in software either to allow J7 to be used as a RabbitNet port or to allow J11 to be used as a serial interface for the SF1000 series serial flash. RabbitCore RCM3305/RCM3315...
Page 97
RS-232 serial communication protocol. Basically, the chip translates the Rabbit 3000’s signals to RS-232 signal levels. Note that the polarity is reversed in an RS-232 circuit so that a +5 V output becomes approximately -10 V and 0 V is output as +10 V.
Page 98
3000 Serial Port C through an RS-485 transceiver. The half-duplex communication uses an output from PD7 on the Rabbit 3000 to control the transmit enable on the communica- tion line. Using this scheme a strict master/slave relationship must exist between devices to insure that no two devices attempt to drive the bus simultaneously.
The Prototyping Board comes with a 220 Ω termination resistor and two 681 Ω bias resis- tors installed and enabled with jumpers across pins 1–2 and 5–6 on header JP5, as shown in Figure B-9. R52 R53 R60 R61 +3.3 V PF0_CLKD VRAM RABBITNET...
Refer to Appendix C, “LCD/Keypad Module,” for complete information. Rabbit’s SF1000 series serial flash may be installed in the socket labeled J11. The J11 interface is enabled in software by setting PD2 = 0. Header JP3 must have pins 2–3 jum- pered when using the J11 interface.
Page 101
Figure B-11 shows the stepper-motor driver circuit. VMA+ MDA1 OUT1 ® ENABLE1 MOTOR + MDA2 OUT2 MDA3 OUT3 ENABLE2 MOTOR MDA4 OUT4 VMA- L293DN VMB- MDB1 OUT1 ® ENABLE1 MOTOR + MDB2 OUT2 MDB3 OUT3 ENABLE2 MOTOR MDB4 OUT4 VMB+ L293DN...
B.5 Prototyping Board Jumper Configurations Figure B-12 shows the header locations used to configure the various Prototyping Board options via jumpers. Battery Figure B-12. Location of Prototyping Board Configurable Positions RabbitCore RCM3305/RCM3315...
Page 103
Table B-4 lists the configuration options using jumpers. Table B-4. Prototyping Board Jumper Configurations Factory Header Description Pins Connected Default 1–2 × Onboard power supply 9–10 Stepper Motor Power-Supply Options (U2) 3–4 External power supply 7–8 1–2 × Onboard power supply 9–10 Stepper Motor Power-Supply Options (U3)
B.6 Use of Rabbit 3000 Parallel Ports Table B-5 lists the Rabbit 3000 parallel ports and their use for the Prototyping Board. Table B-5. Prototyping Board Use of Rabbit 3000 Parallel Ports Port Initial State PA0–PA3 Data Bus LCD/keypad module, motor driver, LEDs, J7...
Page 105
Table B-5. Prototyping Board Use of Rabbit 3000 Parallel Ports (continued) Port Initial State Input SPI, serial flash, quadrature decoder, J7 High PF1–PF3 Input Quadrature decoder, J7 High PF4–PF7 Output Motor 1–4 control Low (disabled) Input Switch S1 High Input...
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 sales representative or your authorized for further assistance in purchasing an LCD/keypad module.
Page 108
NOTE: All measurements are in inches followed by millimeters enclosed in parentheses. 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 RCM3305/RCM3315...
C.2 Contrast Adjustments for All LCD/Keypad Modules Starting in 2005, LCD/keypad modules were factory-configured to optimize their contrast based on the voltage of the system they would be used in. Be sure to select a KDU3V LCD/keypad module for use with the Prototyping Board for the RCM3305/RCM3315 — these modules operate at 3.3 V.
Figure C-5. Keypad label is located under the blue keypad matte. Figure C-5. Removing and Inserting Keypad Label The sample program in the folder in KEYBASIC.C 122x32_1x7 SAMPLES\LCD_KEYPAD shows how to reconfigure the keypad for different applications. RabbitCore RCM3305/RCM3315...
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.
K E Y PA D D I S P L AY B O A R D LCD1JC LCD1JB CORE L C D 1 J B L C D 1 J C DS2 DS3 DS4 DS5 DS6 RESET TxE RxE GND TxF RxF 485+ GND 485 Figure C-7. Install LCD/Keypad Module on Prototyping Board RabbitCore RCM3305/RCM3315...
C.6 Bezel-Mount Installation This section describes and illustrates how to bezel-mount the LCD/keypad module designed for remote installation. Follow 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 114
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 RCM3305/RCM3315...
Note the locations and connections relative to pin 1 on both the Prototyping Board and the LCD/keypad module. Rabbit offers 2 ft. (60 cm) extension cables. Contact your authorized distributor or a Rab- bitsales representative for more information. User’s Manual...
Board are provided in the folder. SAMPLES\RCM3300\LCD_KEYPAD These sample programs use the external 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.
C.8 LCD/Keypad Module Function Calls When mounted on the Prototyping Board, the LCD/keypad module uses the external 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 external I/O bus.
Sets the LCD screen on or off. Data will not be cleared from the screen. PARAMETER onOff turns the LCD screen on or off 1—turn the LCD screen on 0—turn the LCD screen off RETURN VALUE None. SEE ALSO glInit, glSetContrast, glBackLight RabbitCore RCM3305/RCM3315...
Page 119
void glSetContrast(unsigned level); Sets display contrast. NOTE: This function is not used with the LCD/keypad module since the support circuits are not available on the LCD/keypad module. void glFillScreen(int pattern); Fills the LCD display screen with a pattern. PARAMETER The screen will be set to all black if pattern is 0xFF, all white if pattern is 0x00, and vertical stripes for any other pattern.
Page 120
(must be evenly divisible by 8). height is the height of the block. RETURN VALUE None. SEE ALSO glFillScreen, glBlankScreen, glBlock RabbitCore RCM3305/RCM3315...
Page 121
void glBlock(int left, int top, int width, int height); Draws a rectangular block in the page buffer and on the LCD if the buffer is unlocked. Any portion of the block that is outside the LCD display area will be clipped. PARAMETERS left is the x coordinate of the top left corner of the block.
Page 122
LCD display area will be clipped. If fewer than 3 vertices are specified, the function will return without doing anything. PARAMETERS n is the number of vertices. pFirstCoord is a pointer to array of vertex coordinates: x1,y1, x2,y2, x3,y3, ... RETURN VALUE None. SEE ALSO glFillPolygon, glPlotPolygon, glPlotVPolygon RabbitCore RCM3305/RCM3315...
Page 123
void glFillPolygon(int n, int x1, int y1, int x2, int y2, ...); Fills 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 124
Returns the xmem address of the character from the specified font set. PARAMETERS *pInfo is the xmem address of the bitmap font set. letter is an ASCII character. RETURN VALUE xmem address of bitmap character font, column major and byte-aligned. SEE ALSO glPutFont, glPrintf RabbitCore RCM3305/RCM3315...
Page 125
void glPutFont(int x, int y, fontInfo *pInfo, char code); Puts an entry from the font table to the page buffer and on the LCD if the buffer is unlocked. Each font character's bitmap is column major and byte-aligned. Any portion of the bitmap character that is outside the LCD display area will be clipped.
Page 126
(row) of the upper left corner of the text. pInfo is a pointer to the font descriptor. *fmt is a formatted string..are formatted string conversion parameter(s). EXAMPLE glprintf(0,0, &fi12x16, "Test %d\n", count); RETURN VALUE None. SEE ALSO glXFontInit RabbitCore RCM3305/RCM3315...
Page 127
void glBuffLock(void); Increments LCD screen locking counter. Graphic calls are recorded in the LCD memory buffer and are not transferred to the LCD if the counter is non-zero. NOTE: can be nested up to a level of 255, but be glBuffLock() glBuffUnlock() sure to balance the calls.
Page 128
(must be evenly divisible by 8). height is the height of the bitmap. xmemptr is the xmem RAM storage address of the bitmap. RETURN VALUE None. SEE ALSO glXPutBitmap, glPrintf RabbitCore RCM3305/RCM3315...
Page 129
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. PARAMETERS x is the x coordinate of the dot. y is the y coordinate of the dot.
Page 130
8, otherwise truncates. rows is the number of rows in the window. RETURN VALUE None. SEE ALSO glVScroll, glUp1 RabbitCore RCM3305/RCM3315...
Page 131
void glHScroll(int left, int top, int cols, int rows, int nPix); Scrolls right or left, within the defined window by x number of pixels. The opposite edge of the scrolled window will be filled in with white pixels. The window must be byte-aligned. Parameters will be verified for the following: 1.
Page 132
RETURN VALUE None. SEE ALSO glXPutFastmap, glPrintf RabbitCore RCM3305/RCM3315...
Page 133
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 134
This adjustment will only occur once after the TextBorderInit function executes. NOTE: Execute the function before using this function. TextWindowFrame PARAMETERS wPtr is a pointer to the window frame descriptor. RETURN VALUE None. SEE ALSO TextBorderInit, TextGotoXY, TextPutChar, TextWindowFrame, TextCursorLocation RabbitCore RCM3305/RCM3315...
Page 135
void TextGotoXY(windowFrame *window, int col, int row); Sets the cursor location to display the next character. The display location is based on the height and width of the character to be displayed. NOTE: Execute the function before using this function. TextWindowFrame PARAMETERS window is a pointer to a font descriptor.
Page 136
TextWindowFrame PARAMETERS window is a pointer to a font descriptor. *fmt is a formatted string..are formatted string conversion parameter(s). EXAMPLE TextPrintf(&TextWindow, "Test %d\n", count); RETURN VALUE None. SEE ALSO TextGotoXY, TextPutChar, TextWindowFrame, TextCursorLocation RabbitCore RCM3305/RCM3315...
Page 137
int TextMaxChars(windowFrame *wPtr); This function returns the maximum number of characters that can be displayed within the text window. NOTE: Execute the function before using this function. TextWindowFrame PARAMETERS wPtr is a pointer to the window frame descriptor. RETURN VALUE The maximum number of characters that can be displayed within the text window.
5 µs. How many times to repeat. 0 = None. cCntLo is a low-speed hold tick, which is approximately one debounce period or 5 µs. How long to hold before going to high-speed repeat. 0 = Slow Only. RabbitCore RCM3305/RCM3315...
Page 139
cSpdHi is a high-speed repeat tick, which is approximately one debounce period or 5 µs. 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 140
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 a pointer to the address of the value read. RETURN VALUE None. SEE ALSO keyConfig, keyGet, keypadDef, keyProcess RabbitCore RCM3305/RCM3315...
D.1.1 Battery Backup The RCM3305/RCM3315 does not have a battery, but there is provision for a customer- supplied battery to back up the data SRAM and keep the internal Rabbit 3000 real-time clock running. Header J4, shown in Figure D-1, allows access to the external battery. This header makes it possible to connect an external 3 V power supply.
Protoyping Board or motherboard since that is where the backup battery would be located. Rabbit’s Technical Note TN235, External 32.768 kHz Oscillator Circuits, provides addi- tional information about the current draw by the the real-time clock oscillator circuit.
The RCM3305/RCM3315 has a reset pin, pin 28 on header J4. This pin provides access to the reset input of the reset generator, whose output drives the reset input of the Rabbit 3000 and peripheral circuits. The /RESET output from the reset generator is available on pin 1 of header J4 on the RCM3305/RCM3315, and can be used to reset user-defined cir- cuits on the motherboard on which the RCM3305/RCM3315 module is mounted.
PPENDIX ABBIT E.1 General RabbitNet Description RabbitNet is a high-speed synchronous protocol developed by Rabbit to connect periph- eral cards to a master and to allow them to communicate with each other. E.1.1 RabbitNet Connections All RabbitNet connections are made point to point. A RabbitNet master port can only be connected directly to a peripheral card, and the number of peripheral cards is limited by the number of available RabbitNet ports on the master.
Relay contacts = screw-terminal connectors Power = 0.156" friction-lock connectors RabbitNet = RJ-45 connector Visit our Web site for up-to-date information about additional cards and features as they become available. The Web site also has the latest revision of this user’s manual. RabbitCore RCM3305/RCM3315...
With this type of termination, the maximum frequency is limited by the round-trip delay time of the cable. Although a peripheral card could theoretically be up to 45 m (150 ft) from the master for a data rate of 1 MHz, Rabbit recommends a practical limit of 10 m (33 ft).
7,6—2-bit binary representation of the port number on the master 5,4,3—Level 1 router downstream port 2,1,0—Level 2 router downstream port RETURN VALUE Pointer to device information. -1 indicates that the peripheral card either cannot be identified or is not connected to the master. SEE ALSO rn_find RabbitCore RCM3305/RCM3315...
Page 149
int rn_find(rn_search *srch); Locates the first active device that matches the search criteria. PARAMETER srch is the search criteria structure rn_search: unsigned int flags; // status flags see MATCH macros below unsigned int ports; // port bitmask char productid; // product id char productrev;...
Page 150
RETURN VALUE The status byte from the previous command. -1 means that device information indicates the peripheral card is not connected to the master, and -2 means that the data length was greater than 15. SEE ALSO rn_write RabbitCore RCM3305/RCM3315...
Page 151
int rn_reset(int handle, int resettype); Sends a reset sequence to the specified peripheral card. The reset takes approximately 25 ms before the peripheral card will once again execute the application. Allow 1.5 seconds after the reset has completed before accessing the peripheral card. This function will check peripheral card information to determine that the peripheral card is connected to a master.
Page 152
The equivalent time left in seconds can be determined from count × 0.025 seconds. RETURN VALUE The status byte from the previous command. -1 means that device information indicates the peripheral card is not connected to the master. SEE ALSO rn_enable_wdt, rn_sw_wdt RabbitCore RCM3305/RCM3315...
Page 153
int rn_rst_status(int handle, char *retdata); Reads the status of which reset occurred and whether any watchdogs are enabled. PARAMETERS handle is an address index to device information. Use rn_device() or rn_find() to establish the handle. retdata is a pointer to the return address of the communication byte. A set bit indicates which error occurred.
1 = Last command unexecuted 0 = Not expired 1 = HW or SW watchdog timer × † expired * Use the function rn_comm_status() to determine which error occurred. † Use the function rn_rst_status() to determine which timer expired. RabbitCore RCM3305/RCM3315...
Need help?
Do you have a question about the RabbitCore RCM3305 and is the answer not in the manual?
Questions and answers