Page 1
RabbitCore RCM3750 C-Programmable Core Module with Ethernet, Serial Flash, and Enhanced Software User’s Manual 019–0149 • 070831–E...
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.
(main oscillator and real-time clock), and the circuitry necessary for reset and management of battery backup of the Rabbit 3000’s internal real-time clock and the static RAM. One 40-pin header brings out the Rabbit 3000 I/O bus lines, parallel ports, and serial ports.
Page 8
2.76 Mbps. Three ports are configurable as a clocked serial port (SPI), and one port is configurable as an HDLC serial port. Shared connections to the Rabbit microproces- sor make a second HDLC serial port available at the expense of two of the SPI config- urable ports, giving you two HDLC ports and one asynchronous/SPI serial port.
• 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.
1.3.4 802.11b Wi-Fi Add-On Kit Rabbit Semiconuctor also offers a Wi-Fi Add-On Kit (Part No. 101-0999) for the full line of RCM3700 modules, including the RCM3750. This Wi-Fi Add-On Kit consists of an RCM3600–RCM3700 Interposer Board, a Wi-Fi CompactFlash card with a CompactFlash...
Dynamic C installation folder. Each Dynamic C module has complete documentation available with the online documen- tation described above. The latest versions of all documents are always available for free, unregistered download from our Web sites as well. RabbitCore RCM3750...
One icon is for Dynamic C, one opens the documentation menu, and the third is for the Rabbit Field Utility, a tool used to download precompiled software to a target system. If you have purchased any of the optional Dynamic C modules, install them after installing Dynamic C.
Board. The header pins may become bent or damaged if the pin alignment is off- set, and the module will not work. Permanent electrical damage to the module may also result if a misaligned module is powered up. Press the module’s pins firmly into the Prototyping Board headers. RabbitCore RCM3750...
The simplified programming cable and adapter board that are supplied with the Ethernet Connection Kit may also be used as shown in the inset diagram above. Programming cables from other Rabbit Semiconduc- tor kits are not designed to work with RCM3750 modules.
The red and black wires from the connec- tor can then be connected to the positive and negative connections on your power supply. The power supply should deliver 7.5 V–30 V DC at 5 W. RabbitCore RCM3750...
2.3 Starting Dynamic C Once the RCM3750 is connected as described in the preceding pages, start Dynamic C by double-clicking on the Dynamic C icon or by double-clicking on dcrab_XXXX.exe in the Dynamic C root directory, where XXXX are version-specific characters. Dynamic C uses the serial port on your PC that you specified during installation.
Dynamic C TCP/IP User’s Manual, also in the online documentation set. 2.5.1 Technical Support NOTE: If you purchased your RCM3750 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: •...
UNNING AMPLE ROGRAMS To develop and debug programs for the RCM3750 (and for all other Rabbit Semiconductor hardware), you must install and use Dynamic C. 3.1 Introduction To help familiarize you with the RCM3750 modules, Dynamic C includes several sample programs.
Page 20
The default I/O configuration in the sample programs is based on the RabbitCore module detected during compile time: • Any RCM3700 RabbitCore module (except the RCM3720) will have its I/O ports con- figured for an RCM3700 Prototyping Board. • An RCM3720 RabbitCore module will have its I/O ports configured for an RCM3720 Prototyping Board.
LCD/keypad module that is used on the RCM3700 Prototyping Board are described in Appendix C. Additional sample programs are available online at www.rabbit.com/support/down- loads/downloads_prod.shtml. —Demonstrates the digital I/O capabilities of the A/D converter on the Proto- •...
Page 22
RESET button on the Prototyping Board so that the first RabbitCore module is operating in the mode. Then connect the program- ming cable to the second Prototyping Board assembly with the RCM3750 and compile and run the same sample program.
3.2.1 Use of Serial Flash The following sample programs can be found in the SAMPLES\RCM3700\SerialFlash and the folders. SAMPLES\RCM3720\SerialFlash —This program runs a simple Web server and stores a log of • SERIAL_FLASHLOG.C hits on the home page of the serial flash “server.” This log can be viewed and cleared from a browser at http://10.10.6.100/.
Page 24
RCM3750, and check to make sure that SIMPLE485MASTER.C Serial Port E is set up as an RS-485 serial port—pins 3–5 and pins 4–6 on header JP2 must be jumpered together using the 2 mm jumpers supplied in the Development Kit. RabbitCore RCM3750...
3.2.3 A/D Converter Inputs The following sample programs are found in the folder. SAMPLES\RCM3700\ADC —Demonstrates how to recalibrate one differential analog input • AD_CALDIFF_CH.C channel using two known voltages to generate the calibration constants for that channel. Constants will be rewritten into user block data area. —Demonstrates how to recalibrate an A/D input channel being used to •...
Page 26
—Demonstrates how to read calibrations constants from the user • UPLOADCALIB.C block in flash memory and then transmitting the file using a serial port and a PC serial utility such as Tera Term. Use to download the calibration constants DNLOADCALIB.C created by this program. RabbitCore RCM3750...
EFERENCE Chapter 4 describes the hardware components and principal hardware subsystems of the RCM3750. Appendix A, “RCM3750 Specifica- tions,” provides complete physical and electrical specifications. Figure 4 shows the Rabbit-based subsystems designed into the RCM3750. 11 MHz 32 kHz Ethernet...
Figure 5 shows the RCM3750 pinouts for header J1. PC1/PG2 PC3/PG3 /IOWR /IORD /RES VBATEXT +5 V These pinouts are as seen on of the module. Figure 5. RCM3750 Pinouts standard 2 x 20 IDC header with a nominal 0.1" pitch. Header J1 is a RabbitCore RCM3750...
Page 29
Figure 6 shows the use of the Rabbit 3000 microprocessor ports in the RCM3750 modules. PB0, PB7, PA0PA7 PD4PD5 PB2PB5 Port D Port A Port B (+Ethernet Port) PE0PE1, PC0, PC2 Port C Port E PE4PE5, (Serial Ports C & D)
Page 30
AQD2A Input/Output PWM3 Output Serial Port D Serial Port D PC1/PG2 Input/Output RXD/TXF Serial Port F Output Serial Port C Serial Port C PC3/PG3 Input/Output RXC/RXF Serial Port F I/O Strobe 7 Input/Output Slave Port Chip Select /SCS RabbitCore RCM3750...
Page 31
Table 2. RCM3750 Pinout Configurations (continued) Pin Name Default Use Alternate Use Notes I/O Strobe 5 Input/Output INT1B Interrupt 1B I/O Strobe 4 Input/Output INT0B Interrupt 0B I/O Strobe 1 Input/Output INT1A Interrupt 1A I/O Strobe 0 Input/Output INT0A Interrupt 0A Input/Output Serial Port E Input/Output...
4.1.1 Memory I/O Interface The Rabbit 3000 address lines (A0–A18) and all the data lines (D0–D7) are routed inter- nally to the onboard flash memory and SRAM chips. I/0 write (/IOWR) and I/0 read (/ IORD) are available for interfacing to external devices.
4.2 Serial Communication The RCM3750 board does not have any serial transceivers directly on the board. How- ever, a serial interface may be incorporated on the board the RCM3750 is mounted on. For example, the Prototyping Board has RS-232, RS-485 and IrDA transceiver chips. 4.2.1 Serial Ports There are five serial ports designated as Serial Ports A, C, D, E, and F.
The RCM3750 programming port is accessed through header J2 or over an Ethernet con- nection via the RabbitLink EG2110. The programming port uses the Rabbit 3000’s Serial Port A for communication. Dynamic C uses the programming port to download and debug programs.
Page 35
The two startup mode pins determine what happens after a reset—the Rabbit 3000 is either cold-booted or the program begins executing at address 0x0000. The status pin is used by Dynamic C to determine whether a Rabbit microprocessor is present. The status output has three different programmable functions: 1.
PROG gramming cable is attached, and is automatically in Run Mode when no programming cable is attached. When the Rabbit 3000 is reset, the operating mode is determined by the status of the SMODE pins. When the programming cable’s connector is attached, PROG the SMODE pins are pulled high, placing the Rabbit 3000 in the Program Mode.
RCM3750 is in the program mode. Refer to the for more information on the pro- Rabbit 3000 Microprocessor User’s Manual gramming port and the programming cable. 4.3.2 Standalone Operation of the RCM3750 The RCM3750 must be programmed via the RCM3700 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. By default, the spectrum spreader is on automatically, but it may also be turned off or set to a stronger setting.
4.5.2 Flash EPROM RCM3750 modules also have 512K of flash EPROM. NOTE: Rabbit Semiconuctor 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 Rabbit Semiconuctor controllers and other controllers based on the Rabbit microprocessor. Chapter 5 describes the libraries and function calls related to the RCM3750.
Page 42
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”...
Prototyping Board you will be using, SAMPLES\RCM3720 if you 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. User’s Manual...
Call this function at the beginning of your program. This function initializes Parallel Ports A through G for use with the RCM3700 Prototyping Board or the RCM3720 Prototyping Board. The brdInit function is set up to a default I/O configuration based on the RabbitCore module detected at compile time: •...
5.2.2 Analog Inputs NOTE: The function calls for the A/D converter in this section will work only with the RCM3700 Prototyping Board. unsigned int anaInConfig(unsigned int instructionbyte, unsigned int cmd, long baud); Use this function to configure the ADS7870 A/D converter. This function will address the ADS7870 in Register Mode only, and will return error if you try the Direct Mode.
Page 46
9600 to 57,600 bps. baud must be set the first time this function is called. Enter 0 for this parameter thereafter, for example, anaInConfig(0x00, 0x00, 9600); // resets device and sets baud RETURN VALUE 0 on write operations, data value on read operations SEE ALSO anaInDriver, anaIn, brdInit RabbitCore RCM3750...
Page 47
unsigned int anaInDriver(unsigned int cmd, unsigned int len); Reads the voltage of an analog input channel by serial-clocking an 8-bit command to the ADS7870 A/D converter by the Direct Mode method. This function assumes that Mode1 (most significant byte first) and the A/D converter oscillator have been enabled.
Page 48
A value corresponding to the voltage on the analog input channel: 0–2047 for 11-bit conversions (bit 12 for sign) -1 overflow or out of range -2 conversion incomplete, busy bit timeout SEE ALSO anaInConfig, anaIn, brdInit RabbitCore RCM3750...
Page 49
unsigned int anaIn(unsigned int channel, int opmode, int gaincode); Reads the value of an analog input channel using the direct method of addressing the ADS7870 A/D converter. The A/D converter is enabled the first time this function is called—this will take approxi- mately 1 second to ensure that the A/D converter capacitor is fully charged.
Page 50
A value corresponding to the voltage on the analog input channel: 0–2047 for 11-bit A/D conversions (signed 12th bit) ADOVERFLOW (defined macro = -4096) if overflow or out of range -4095 if conversion is incomplete or busy-bit timeout SEE ALSO anaIn, anaInConfig, anaInDriver RabbitCore RCM3750...
Page 51
int anaInCalib(int channel, int opmode, int gaincode, int value1, float volts1, int value2, float volts2); Calibrates the response of the desired A/D converter channel as a linear function using the two conver- sion points provided. Four values are calculated and placed into global tables to be later stored into sim- ulated EEPROM using the function anaInEEWr().
Page 52
A/D converter channel value (0 to +20 V or 4 to 20 mA) RETURN VALUE 0 if successful. -1 if not able to make calibration constants. SEE ALSO anaIn, anaInVolts, anaInmAmps, anaInDiff, anaInCalib, brdInit RabbitCore RCM3750...
Page 53
float anaInVolts(unsigned int channel, unsigned int gaincode); Reads the state of a single-ended analog input channel and uses the calibration constants previously set using anaInCalib to convert it to volts. PARAMETERS channel is the channel number (0–7) Single-Ended † Voltage Range Channel Code Input Lines +AIN0...
Page 54
0–1 * Applies to RCM3700 Prototyping Board. RETURN VALUE A voltage value corresponding to the voltage on the analog input channel. ADOVERFLOW (defined macro = -4096) if overflow or out of range. SEE ALSO anaInCalib, anaIn, anaInmAmps, brdInit RabbitCore RCM3750...
Page 55
float anaInmAmps(unsigned int channel); Reads the state of an analog input channel and uses the calibration constants previously set using anaInCalib to convert it to current. PARAMETERS channel is the channel number (0–7) 4–20 mA Channel Code Input Lines +AIN0 +AIN1 +AIN2 †...
Page 56
EEPROM area of the flash memory, and places them into global tables for analog inputs. The constants are stored in the top 2K of the reserved area in the user block memory—note that while Rabbit Semiconuctor “reserves” an area in the user block memory for calibration constants, this “reserved” area is not protected.
Page 57
gaincode is the gain code of 0 to 7. The gaincode parameter is ignored when channel is ALLCHAN. Voltage Range Gain Code 0–20 0–10 0–5 0–4 0–2.5 0–2 0–1.25 0–1 * Applies to RCM3700 Prototyping Board. RETURN VALUE 0 if successful. -1 if address is invalid or out of range.
Page 58
EEPROM area of the flash memory. The constants are stored in the top 2K of the reserved area in the user block memory—note that while Rabbit Semiconuctor “reserves” an area in the user block memory for calibration constants, this “reserved” area is not protected. The following macros can be used to identify the starting address for these locations.
Page 59
gaincode is the gain code of 0 to 7. The gaincode parameter is ignored when channel is ALLCHAN. Voltage Range Gain Code 0–20 0–10 0–5 0–4 0–2.5 0–2 0–1.25 0–1 * Applies to RCM3700 Prototyping Board. RETURN VALUE 0 if successful -1 if address is invalid or out of range.
Page 60
A runtime error will occur if the brdInit function was not executed before calling this function or if the channel is out of range. PARAMETERS channel is channel 1 to 4 for JP4:1 to JP4:4 state is a logic state of 0 or 1 RETURN VALUE None. SEE ALSO brdInit, digOut RabbitCore RCM3750...
Port E bits as inputs, or use WrPortI(PEDDR, &PEDDRShadow, 0xFF); to set all the Port E bits as outputs. When using the auxiliary I/O bus on the Rabbit 3000 chip, add the line #define PORTA_AUX_IO // required to enable auxiliary I/O bus to the beginning of any programs using the auxiliary I/O bus.
Dynamic C installations are designed for use with the board they are included with, and are included at no charge as part of our low-cost kits. Rabbit Semiconuctor offers for pur- chase add-on Dynamic C modules including the popular µC/OS-II real-time operating system, as well as PPP, Advanced Encryption Standard (AES), and other select libraries.
• Two RJ-45 straight through CAT 5/6 Ethernet cables and a hub, or an RJ-45 crossover CAT 5/6 Ethernet cable. The CAT 5/6 Ethernet cables and a 10Base-T Ethernet hub are available from Rabbit Semiconuctor in a TCP/IP tool kit. More information is available at www.rabbit.com.
Page 66
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 RabbitCore system to the Internet. TIP: Checking and debugging the initial setup on a micro-LAN is recommended before connecting the system to a LAN or WAN.
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 RCM3750 using a CAT 5/6 Ethernet crossover cable or a simple arrangement with a hub.
Page 68
RCM3750. 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 RCM3750...
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.
Internet IP address. The host would either translate the data, or it would act as a proxy. Each RCM3750 RabbitCore module has its own unique MAC address, which consists of the prefix 0090C2 followed by a code that is unique to each RCM3750 module. For exam- ple, a MAC address might be 0090C2C002C0.
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 RCM3750 directly on the Internet with a real Internet address or place it behind the firewall. If you place the RCM3750 behind the fire- wall, you need to configure the firewall to translate and forward packets from the Internet to the RCM3750. RabbitCore RCM3750...
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 RCM3750 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.
There are some other “standard” configurations for that let you select different TCPCONFIG features such as DHCP. Their values are documented at the top of the TCP_CONFIG.LIB library in the directory. More information is available in the Dynamic C TCP/ LIB\TCPIP IP User’s Manual. RabbitCore RCM3750...
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. The sample program demonstrates ICMP by pinging a remote host. It will PINGLED.C flash LEDs DS1 and DS2 on the Prototyping Board when a ping is sent and received. RabbitCore RCM3750...
The sample program allows you to send an e-mail when a switch on the Prototyp- SMTP.C ing Board is pressed. Follow the instructions included with the sample program. LED DS1 on the Prototyping Board will light up when sending e-mail. Note that pin PB7 is con- nected to both switch S2 and to the external I/O bus on the Prototyping Board, and so switch S2 should not be used with Ethernet operations.
NOTE: These sample programs will work on the RCM3700, the RCM3720, and the RCM3750, but not the RCM3710. The RCM3700 RabbitCore modules do not support the download manager portion of the sample program. TIP: Before running any of the sample programs described in this section, you should...
Page 79
Manager (DLM) and HTTP upload capability, respectively—note that neither of these currently supports SSL security. Before you run the sample program, you will first need to format and INTEGRATION.C partition the serial flash. Find the sample program in the Dynamic C FMT_DEVICE.C folder.
6.7 Where Do I Go From Here? NOTE: If you purchased your RCM3750 through a distributor or through a Rabbit Semi- conductor partner, contact the distributor or partner first for technical support.
R18 C35 RP2 R36 0.100 2.950 (74.9) (2.5) 2.950 (74.9) 1.200 (30.5) Figure A-1. RCM3750 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 RCM3750...
Page 83
It is recommended that you allow for an “exclusion zone” of 0.04" (1 mm) around the RCM3750 in all directions when the RCM3750 is incorporated into an assembly that includes other printed circuit boards. An “exclusion zone” of 0.16" (4 mm) is recom- mended below the RCM3750 when the RCM3750 is plugged into another assembly using the shortest connectors for header J1.
Page 84
A slave port allows the RCM3750 to be used as an intelligent Slave Interface 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...
Table A-1. RabbitCore RCM3750 Specifications (continued) Parameter RCM3750 Connectors One 2 x 20, 0.1" pitch 1.20" × 2.95" × 0.89" Board Size (30 mm × 75 mm × 23 mm) A.1.1 Headers The RCM3750 uses one header at J1 for physical connection to other boards. J1 is a 2 ×...
You must pay careful attention to bus loading when designing an interface to the RCM3750. This section provides bus loading information for external devices. Table A-2 lists the capacitance for the various RCM3750 I/O ports. Table A-2. Capacitance of Rabbit 3000 I/O Ports Input Output...
Page 87
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 88
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. RabbitCore RCM3750...
A.5 Conformal Coating The areas around the 32 kHz real-time clock crystal oscillator have had the Dow Corning silicone-based 1-2620 conformal coating applied. The conformally coated area is shown in Figure A-5. The conformal coating protects these high-impedance circuits from the effects of moisture and contaminants over time.
ROTOTYPING OARD Two different Prototyping Boards are available for the RCM3700 series of RabbitCore modules. The RCM3700 Proto- typing Board has power-supply connections and also provides some basic I/O peripherals (RS-232, RS-485, A/D converter, IrDA transceiver, LEDs, and switches), as well as a prototyping area for more advanced hardware development.
SMT device pads on both top and bottom of the Prototyping Board.) Each SMT pad is connected to a hole designed to accept a 30 AWG solid wire or wire-wrap wire. —Rabbit Semiconuctor’s LCD/keypad module may be plugged • LCD/Keypad Module in directly to headers LCD1JA, LCD1JB, and LCD1JC.
Page 96
1.5 m. The IrDA uses Serial Port F—Serial Ports C and D are unavailable while Serial Port F is in use. —A 2032 lithium-ion battery rated at 3.0 V, 220 mA·h, provides • Backup Battery battery backup for the RCM3750 SRAM and real-time clock. RabbitCore RCM3750...
D2 as shown in Figure B-3. LINEAR POWER REGULATOR SWITCHING POWER REGULATOR +3.3 V +5 V LM1117 DCIN 1N5819 10 µF 10 µF 330 µF 47 µF 330 µH LM2575 1N5819 Figure B-3. RCM3700 Prototyping Board Power Supply RabbitCore RCM3750...
B.1.4 Using the RCM3700 Prototyping Board The RCM3700 Prototyping Board is actually both a demonstration board and a prototyp- ing board. As a demonstration board, it can be used to demonstrate the functionality of the RCM3750 right out of the box without any modifications. Figure B-4 shows the RCM3700 Prototyping Board pinouts.
RCM3750. Two LEDs (DS1 and DS2) are connected to PF6 and PF7, and two switches (S1 and S2) are connected to PF4 and PB7 to demonstrate the inter- face to the Rabbit 3000 microprocessor. Reset switch S3 is the hardware reset for the RCM3750.
B.1.5 Analog Features The RCM3700 Prototyping Board has an onboard ADS7870 A/D converter to demon- strate the interface capabilities of the Rabbit 3000. The A/D converter multiplexes con- verted signals from eight single-ended or three differential inputs to alternate Serial Port B on the Rabbit 3000 (Parallel Port pins PD4 and PD5).
Page 102
A/D converter. Adjacent input channels are paired so that moving a particular jumper changes both of the paired channels. At the present time Rabbit Semiconuctor does not offer the software drivers to work with single-ended negative voltages, but the differential mode described below may be used to measure negative voltages.
Table B-3. Differential Voltage Ranges Min. Differential Max. Differential Amplifier Voltage Voltage mV per Count Gain ±20.0 ±10.0 ±5.0 ±4.0 ±2.5 1.25 ±2.0 1.00 ±1.25 0.625 ±1.0 0.500 The A/D converter inputs can also be used with 4–20 mA current sources by measuring the resulting analog voltage drop across 249 Ω...
Figure B-7 shows the timing of a conversion start. The double falling arrow on CCLK indicates the actual start of the conversion cycle. Conversion starts CCLK BUSY CONV Figure B-7. Timing Diagram for Conversion Start Using CONVERT Pin RabbitCore RCM3750...
B.1.5.4 A/D Converter Calibration To get the best results from the A/D converter, it is necessary to calibrate each mode (sin- gle-ended, differential, and current) for each of its gains. It is imperative that you calibrate each of the A/D converter inputs in the same manner as they are to be used in the applica- tion.
Serial Port E is configured in hardware for RS-232 or RS-485 via jumpers on header JP2 as shown in Section B.1.8. Serial Port F is configured in software for the IrDA transceiver in lieu of Serial Ports C and D. RabbitCore RCM3750...
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.
Rabbit 3000 Serial Port E through an RS-485 transceiver. The half-duplex communi- cation uses an output from PF5 on the Rabbit 3000 to control the transmit enable on the communication 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.
Page 109
The RCM3700 Prototyping Board comes with a 220 Ω termination resistor and two 681 Ω bias resistors installed and enabled with jumpers across pins 1–2 and 5–6 on header JP1, as shown in Figure B-9. RXC TXC RXE /IOWR /IORD DCIN GND JP2 TCM_SMT_SOCKET...
LCD/keypad module is installed. Refer to Appendix C, “LCD/Keypad Module,” for complete information. CAUTION: Pin PB7 is connected as both switch S2 and as an external I/O bus on the Prototyping Board. Do not use S2 when the LCD/keypad module is installed. RabbitCore RCM3750...
B.1.8 Jumper Configurations Figure B-10 shows the header locations used to configure the various RCM3700 Prototyp- ing Board options via jumpers. Battery JP5 JP6 JP7 Figure B-10. Location of RCM3700 Prototyping Board Configurable Positions User’s Manual...
Page 112
1–2 Connect for 4–20 mA option on ADC_IN3 n.c. 3–4 Connect for 4–20 mA option on ADC_IN4 n.c. Analog Voltage/4–20 mA Options 5–6 Connect for 4–20 mA option on ADC_IN5 n.c. 7–8 Connect for 4–20 mA option on ADC_IN6 n.c. RabbitCore RCM3750...
B.1.9 Use of Rabbit 3000 Parallel Ports Table B-6 lists the Rabbit 3000 parallel ports and their use for the RCM3700 Prototyping Board. Table B-6. RCM3700 Prototyping Board Use of Rabbit 3000 Parallel Ports Port Initial State PA0–PA7 Output External ID0–ID7, LCD/keypad module...
Page 114
Table B-6. RCM3700 Prototyping Board Use of Rabbit 3000 Parallel Ports Port Initial State Pulled up (Proto Board) Output RS-232 enable (RS-232 disabled) Output Serial Flash Select Pulled up (core module) Output LCD/keypad module BUFEN Pulled up (Proto Board) Output...
B.2 RCM3720 Prototyping Board The RCM3720 Prototyping Board included in the Ethernet Connection Kit makes it easy to connect an RCM3720 module to a power supply and a PC workstation for development. It also provides some basic I/O peripherals (LEDs and switches), as well as a prototyping area for more advanced hardware development.
Two 3-wire serial ports or one 5-wire RS-232 serial port are then available at header J3. —A 2032 lithium-ion battery rated at 3.0 V, 220 mA·h, provides Backup Battery • battery backup for the RCM3720 SRAM and real-time clock. RabbitCore RCM3750...
The RCM3720 Prototyping Board itself is protected against reverse polarity by a Shottky diode at D1 as shown in Figure B-13. LINEAR POWER REGULATOR +5 V LM13405-5 DCIN 1N5819 47 µF 10 µF 10 µF 330 µF Figure B-13. RCM3720 Prototyping Board Power Supply RabbitCore RCM3750...
B.2.4 Using the RCM3720 Prototyping Board The RCM3720 Prototyping Board is actually both a demonstration board and a prototyp- ing board. As a demonstration board, it can be used to demonstrate the functionality of the RCM3720 right out of the box without any modifications. Figure B-14 shows the RCM3720 Prototyping Board pinouts.
Page 120
Two LEDs (DS1 and DS2) are connected to PF6 and PF7, and two switches (S1 and S2) are connected to PF4 and PB7 to demonstrate the interface to the Rabbit 3000 micropro- cessor. Reset switch S3 is the hardware reset for the RCM3720.
A 2 × 4 header strip with a 0.1" pitch can be installed at J4, and jumpers across the appro- priate pins on header J4 can be used to reconnect specific demonstration hardware later if needed. Each pin is labeled on the PCB to facilitate placing the jumpers. The jumper posi- tions are summarized in Table B-8.
Figure B-16. Locations Where to Install RS-232 Chip and Capacitors NOTE: Only one RS-232 circuit needs to be stuffed. Rabbit Semiconuctor offers the through-hole RS-232 chip and 0.1 µF capacitors for sale in a subassembly with some other parts (part number 151-0082). Contact your Rabbit Semi- conuctor sales representative or authorized distributor for more information.
Page 123
RS-232 can be used effectively at the RabbitCore module’s maximum baud rate for dis- tances of up to 15 m. When stuffed, the RS-232 chip brings out Serial Ports C and D to the header J3 area on the RCM3720 Prototyping Board. An optional 2 × 5 header strip with a 0.1" pitch can be installed at J3 to allow you to connect a ribbon cable that leads to a standard DB-9 serial connector.
B.2.6 Use of Rabbit 3000 Parallel Ports Table B-10 lists the Rabbit 3000 parallel ports and their use for the RCM3720 Prototyping Board. Table B-10. RCM3720 Prototyping Board Use of Rabbit 3000 Parallel Ports Port Initial State PA0–PA7 Input Not used...
Page 125
Table B-10. RCM3720 Prototyping Board Use of Rabbit 3000 Parallel Ports Port Initial State PF2–PF3 Input Not used Pulled up (core module) Input Switch S1 Pulled up (Proto Board) Output Not used High Output LED DS1 High Output LED DS2 High PG0–PG1...
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 sales representa- tive or your authorized Rabbit Semiconductor distributor for further assistance in purchasing an LCD/keypad module.
Page 128
Mounting hardware and a 60 cm (24") extension cable are also available for the LCD/keypad module through your Rabbit Semiconuctor sales representative or authorized distributor. Table C-1 lists the electrical, mechanical, and environmental specifications for the LCD/keypad module. Table C-1. LCD/Keypad Specifications...
C.2 Contrast Adjustments for All Boards 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 RCM3700 Prototyping Board — 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 RCM3750...
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.
C.6 Mounting LCD/Keypad Module on the Prototyping Board Install the LCD/keypad module on header sockets LCD1JA, LCD1JB, and LCD1JC of the RCM3700 Prototyping Board as shown in Figure C-8. 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 RCM3700 Prototyping Board.
Figure C-9, then use the bezel faceplate to mount the LCD/keypad module onto the panel. 0.125 D, 4x 0.230 (5.8) 2.870 (72.9) 3.100 (78.8) Figure C-9. Recommended Cutout Dimensions 2. Carefully “drop in” the LCD/keypad module with the bezel and gasket attached. RabbitCore RCM3750...
Page 135
3. Fasten the unit with the four 4-40 screws and washers included with the LCD/keypad module. If your panel is thick, use a 4-40 screw that is approximately 3/16" (5 mm) longer than the thickness of the panel. DISPLAY BOARD Figure C-10.
Note the locations and connections relative to pin 1 on both the RCM3700 Prototyping Board and the LCD/keypad module. Rabbit Semiconuctor offers 2 ft. (60 cm) extension cables. Contact your authorized dis- tributor or a Rabbit Semiconuctor sales representative for more information.
Prototyping Board are provided in the folder. SAMPLES\RCM3700\LCD_KEYPAD 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.
C.9 LCD/Keypad Module Function Calls When mounted on the RCM3700 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.9.3 LCD Display The functions used to control the LCD display are contained in the library GRAPHIC.LIB located in the Dynamic C library folder. When x and y coordi- LIB\DISPLAYS\GRAPHIC nates on the display screen are specified, x can range from 0 to 121, and y can range from 0 to 31.
Page 140
(all black if pattern is 0xFF, all white if pattern is 0x00, and vertical stripes for any other pattern). RETURN VALUE None. SEE ALSO glFillScreen, glBlankScreen, glBlock, glBlankRegion RabbitCore RCM3750...
Page 141
void glFastFillRegion(int left, int top, int width, int height, char pattern); Fills a rectangular block in the LCD buffer with the pattern specified. The block left and width parame- ters must be byte-aligned. 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 142
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 glPlotPolygon, glFillPolygon, glFillVPolygon RabbitCore RCM3750...
Page 143
void glPlotPolygon(int n, int y1, int x1, int y2, int x2, ...); 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 144
(in pixels). RETURN VALUE None. SEE ALSO glPlotCircle, glPlotPolygon, glFillPolygon RabbitCore RCM3750...
Page 145
void glXFontInit(fontInfo *pInfo, char pixWidth, char pixHeight, unsigned startChar, unsigned endChar, unsigned long xmemBuffer); Initializes the font descriptor structure, where the font is stored in xmem. Each font character's bitmap is column major and byte-aligned. PARAMETERS pInfo is a pointer to the font descriptor to be initialized. pixWidth is the width (in pixels) of each font item.
Page 146
RETURN VALUE 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 RCM3750...
Page 147
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 148
PIXBLACK draws black pixels (turns pixel on). PIXWHITE draws white pixels (turns pixel off). PIXXOR draws old pixel XOR'ed with the new pixel. RETURN VALUE None. SEE ALSO glGetBrushType RabbitCore RCM3750...
Page 149
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 glXGetBitmap(int x, int y, int bmWidth, int bmHeight, unsigned long xBm); Gets a bitmap from the LCD page buffer and stores it in xmem RAM. This function automatically calls glXGetFastmap if the left edge of the bitmap is byte-aligned and the left edge and width are each evenly divisible by 8.
Page 150
8, otherwise truncates. rows is the number of rows in the window. RETURN VALUE None. SEE ALSO glHScroll, glRight1 RabbitCore RCM3750...
Page 151
void glRight1(int left, int top, int cols, int rows); Scrolls byte-aligned window right one pixel, left 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 152
8. rows is the number of rows in the window. nPix is the number of pixels to scroll within the defined window (a negative value will produce a scroll to the left). RETURN VALUE None. SEE ALSO glVScroll RabbitCore RCM3750...
Page 153
void glVScroll(int left, int top, int cols, int rows, int nPix); Scrolls up or down, 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 154
RETURN VALUE 0—window frame was successfully created. -1—x coordinate + width has exceeded the display boundary. -2—y coordinate + height has exceeded the display boundary. -3—Invalid winHeight and/or winWidth parameter value. RabbitCore RCM3750...
Page 155
void TextBorderInit(windowFrame *wPtr, int border, char *title); This function initializes the window frame structure with the border and title information. NOTE: Execute the function before using this function. TextWindowFrame PARAMETERS wPtr is a pointer to the window frame descriptor. border is the border style: SINGLE_LINE —The function will draw a single-line border around the text window.
Page 156
RETURN VALUE Lower word = Cursor Row location Upper word = Cursor Column location SEE ALSO TextGotoXY, TextPrintf, TextWindowFrame, TextCursorLocation RabbitCore RCM3750...
Page 157
void TextPutChar(struct windowFrame *window, char ch); Displays a character on the display where the cursor is currently pointing. Once a character is displayed, the cursor will be incremented to the next character position. If any portion of a bitmap character is out- side the LCD display area, the character will not be displayed.
Page 158
This functions clears the entire area within the specified text window. NOTE: Execute the function before using this function. TextWindowFrame PARAMETERS wPtr is a pointer to the window frame descriptor. RETURN VALUE None. SEE ALSO TextGotoXY, TextPrintf, TextWindowFrame, TextCursorLocation RabbitCore RCM3750...
C.9.4 Keypad The functions used to control the keypad are contained in the Dynamic C LIB\KEYPADS\ library. KEYPAD7.LIB void keyInit(void); Initializes keypad process RETURN VALUE None. SEE ALSO brdInit void keyConfig(char cRaw, char cPress, char cRelease, char cCntHold, char cSpdLo, char cCntLo, char cSpdHi);...
Page 160
The next keypress, or 0 if none SEE ALSO keyConfig, keyProcess, keypadDef int keyUnget(char cKey); Pushes the value of cKey to the top of the input queue, which is 16 bytes deep. PARAMETER cKey RETURN VALUE None. SEE ALSO keyGet RabbitCore RCM3750...
Page 161
void keypadDef(); Configures the physical layout of the keypad with the desired ASCII return key codes. Keypad physical mapping 1 × 7 ['L'] ['U'] ['D'] ['R'] ['–'] ['+'] ['E'] where 'D' represents Down Scroll 'U' represents Up Scroll 'R' represents Right Scroll 'L' represents Left Scroll '–' represents Page Down '+' represents Page Up...
D. P PPENDIX OWER UPPLY Appendix D provides information on the current requirements of the RCM3750, and includes some background on the chip select circuit used in power management. D.1 Power Supplies Power is supplied from the motherboard to which the RCM3750 is connected via header D.1.1 RCM3750 The RCM3750 has an onboard +3.3 V linear power regulator that provides the +3.3 V supply to operate the microprocessor-related circuitry of the RCM3750.
The RCM3750 has a reset pin, pin 36 on header J1. This pin provides access to the reset output from the reset generator, and is also connected to the reset input of the Rabbit 3000 to allow you to reset the microprocessor externally. R21 protects the reset generator from being overdriven.
Appendix E provides information for the Secure Embedded Web Application Kit based on the RCM3700. In addition to an RCM3700 series RabbitCore module and Dynamic C 8.51 or a later version, the Secure Embedded Web Application Kit comes with an enhanced software bundle that facilitates the rapid development of secure Web browser interfaces for embedded system control.
Software Modules on CD-ROM 3—Dynamic C Secure Sockets Layer (SSL) module. This module provides HTTPS security for supported Rabbit-based devices to provide: • fast processing of complex encryption algorithms (up to 120 kbits/s) • support for HTTPS with SSL version 3 and Transport Layer Security (TLS) version 1 •...
Need help?
Do you have a question about the RabbitCore and is the answer not in the manual?
Questions and answers