Page 1
RabbitCore RCM3400 C-Programmable Analog Core Module with 10/100Base-T Reference Design User’s Manual 019–0122 • 030725–C...
Page 2
Z-World reserves the right to make changes and improvements to its products without providing notice. Trademarks Rabbit and Rabbit 3000 are registered trademarks of Rabbit Semiconductor. RabbitCore is a trademark of Rabbit Semiconductor. Dynamic C is a registered trademark of Z-World Inc. Z-World, Inc. Rabbit Semiconductor...
Page 3
3.3.1 Changing from Program Mode to Run Mode ................17 3.3.2 Changing from Run Mode to Program Mode ................17 Chapter 4. Hardware Reference 4.1 RCM3400 Digital Inputs and Outputs ....................20 4.1.1 Memory I/O Interface .........................26 4.1.2 Other Inputs and Outputs ......................26 4.2 Serial Communication ........................27...
Page 4
B.4.4.1 RS-232 ..........................65 B.4.4.2 RS-485 ..........................66 B.4.4.3 Ethernet Port ........................68 B.4.5 Other Prototyping Board Modules..................... 69 B.5 RCM3400 Prototyping Board Jumper Configurations..............70 B.6 Sample Programs..........................72 B.6.1 Serial Communication ....................... 72 B.6.2 A/D Converter Inputs......................... 73 B.7 Software Function Calls ........................
Page 5
Appendix D. LCD/Keypad Module D.1 Specifications ...........................103 D.2 Jumper-Selectable Voltage Settings for All Boards ................105 D.3 Keypad Labeling ..........................106 D.4 Header Pinouts ..........................107 D.4.1 I/O Address Assignments......................107 D.5 Mounting LCD/Keypad Module on the Prototyping Board ............108 D.6 Bezel-Mount Installation .........................109 D.6.1 Connect the LCD/Keypad Module to Your Prototyping Board..........111 D.7 Sample Programs ..........................112 D.8 LCD/Keypad Module Function Calls ....................113...
Page 7
Kit also contains a Prototyping Board that will allow you to evaluate the RCM3400 and to prototype circuits that interface to the RCM3400 module. You will also be able to write and test software for the RCM3400 modules, including Ethernet or TCP/IP applications.
Page 8
SDLC/HDLC serial ports. • Supports 1.15 Mbps IrDA transceiver There are two RCM3400 production models. If the standard models do not serve your needs, other variations can be specified and ordered in production quantities. Contact your Z-World or Rabbit Semiconductor sales representative for details.
Page 9
1.2 Advantages of the RCM3400 • Fast time to market using a fully engineered, “ready-to-run/read-to-program” micro- processor core. • Competitive pricing when compared with the alternative of purchasing and assembling individual components. • Easy C-language program development and debugging • Program Download Utility and cloning board options for rapid production loading of programs.
Page 10
1.3 Development and Evaluation Tools 1.3.1 Development Kit The Development Kit contains the hardware essentials you will need to use your RCM3400 module. The items in the Development Kit and their use are as follows. • RCM3400 module. • Prototyping Board.
Page 11
1.3.2 Software The RCM3400 is programmed using version 7.32 or later of Z-World’s Dynamic C. compatible version is included on the Development Kit CD-ROM. Z-World 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 13
NOTE: This chapter (and this manual) assume that you have the RCM3400 Development Kit. If you purchased an RCM3400 module by itself, you will have to adapt the infor- mation in this chapter and elsewhere to your test and development setup.
Page 14
2.2.1 Attach Module to Prototyping Board Turn the RCM3400 module so that the Rabbit 3000 chip is facing up and the Rabbit logo is facing the direction shown in Figure 2 below. Align the module headers J1 and J2 into sockets RCM1JA and RCM1JB on the Prototyping Board.
Page 15
Connect the 10-pin connector of the programming cable labeled PROG to header J2 on the RCM3400 Prototyping Board as shown in Figure 3. Be sure to orient the marked (usually red) edge of the cable towards pin 1 of the connector. (Do not use the DIAG connector, which is used for a normal serial connection.)
Page 16
Plug in the wall transformer. The power LED on the Prototyping Board should light up. The RCM3400 and the Prototyping Board are now ready to be used. NOTE: A RESET button is provided on the Prototyping Board to allow a hardware reset without disconnecting power.
Page 17
Dynamic C defaults to using the serial port on your PC that you specified during installa- tion. If the port setting is correct, Dynamic C should detect the RCM3400 and go through a sequence of steps to cold-boot the RCM3400 and to compile the BIOS. (Some versions of Dynamic C will not do the initial BIOS compile and load until the first time you com- pile a program.)
Page 18
RCM3400 module to protect against inadvertent shorts across the pins or damage to the RCM3400 if the pins are not plugged in cor- rectly. Do not reapply power until you have verified that the RCM3400 module is plugged in correctly.
Page 19
To help familiarize you with the RCM3400 modules, Dynamic C includes several sample programs. Loading, executing and studying these programs will give you a solid hands-on overview of the RCM3400’s capabilities, as well as a quick start with Dynamic C as an application development tool.
Page 20
3.2 Sample Programs Of the many sample programs included with Dynamic C, several are specific to the RCM3400. These programs will be found in the folder. Samples\RCM3400 We suggest that you examine the following five sample programs in order to get a feel for the capabilities of the RCM3400 modules.
Page 21
With the IrDA transceivers on the two Prototyping Boards facing each other, press switch S2 on the RCM3400 Prototyping Board to transmit a packet. The other system will return a response packet that will then appear in the Dynamic C STDIO window.
Page 22
The corresponding LEDs (DS1 and DS2) will turn on or off. Once you have loaded and executed these five programs and have an understanding of how Dynamic C and the RCM3400 modules interact, you can move on and try the other sample programs, or begin building your own.
Page 23
DIAG connector of the programming cable may be used on header J2 of the RCM3400 Prototyping Board with the RCM3400 operating in the run mode. This allows the pro- gramming port to be used as an application port. See Appendix F, “Programming Cable,”...
Page 25
EFERENCE Chapter 3 describes the hardware components and principal hardware subsystems of the RCM3400. Appendix A, “RCM3400 Specifica- tions,” provides complete physical and electrical specifications. Figure 5 shows the Rabbit-based subsystems designed into the RCM3400. External A/D Converter scaling circuitry...
Page 26
4.1 RCM3400 Digital Inputs and Outputs Figure 6 shows the RCM3400 pinouts for headers J1 and J2. BVREF CONVERT PC6-TxA PC7-RxA +3.3 V_IN /IORD STATUS /RESET_IN SMODE1 /IOWR VBAT_EXT /RES SMODE0 n.c. = not connected These pinouts are as seen on of the module.
Page 27
Figure 7 shows the use of the Rabbit 3000 microprocessor ports in the RCM3400 modules. PB1PB7 PA0PA7 PD4PD7 Port A Port B Port D PC0, PC2 PE0PE2 Port C Port E PE4PE7 (Serial Ports C & D) PC1, PC3 PG2, PG6 Port G PF0PF1...
Page 28
Table 2. RCM3400 Pinout Configurations Pin Name Default Use Alternate Use Notes Input Input Input Input A/D converter (Serial Port B) Input Input Input Input 1.15 V/2.048 V/2.500 V BVREF Analog Output on-chip ref. voltage CONVERT Input AQD2B Input/Output PWM2...
Page 29
Table 2. RCM3400 Pinout Configurations (continued) Pin Name Default Use Alternate Use Notes +3.3 V_IN Input/Output Serial Port E Input/Output Input/Output RCLKE Serial Clock E input Input/Output TCLKE Serial Clock E output /IORD Input External read strobe STATUS Output (Status)
Page 30
Table 2. RCM3400 Pinout Configurations (continued) Pin Name Default Use Alternate Use Notes QD1A Input/Output CLKC Input/Output External Address 4 QD1B Input/Output CLKD External Address 3 Input/Output Slave port Address 1 External Address 2 Input/Output Slave port Address 0 External Address 1...
Page 31
Table 2. RCM3400 Pinout Configurations (continued) Pin Name Default Use Alternate Use Notes Input/Output ATXA /RESET_IN Input Input to Reset Generator Input/Output ARXA VBAT_EXT User’s Manual...
Page 32
/RESET_IN is an external input used to reset the Rabbit 3000 microprocessor and the RCM3400 memory. /RES is an output from the reset circuitry that can be used to reset other peripheral devices.
Page 33
The Rabbit 3000 startup-mode pins (SMODE0, SMODE1) are presented to the program- ming port so that an externally connected device can force the RCM3400 to start up in an external bootstrap mode. The RCM3400 can be reset by Dynamic C via the...
Page 34
/RES_IN is an external input used to reset the Rabbit 3000 microprocessor. The status pin may also be used as a general CMOS output. See Appendix F, “Programming Cable,” for more information. RabbitCore RCM3400...
Page 35
4.3 A/D Converter The RCM3400 has an onboard ADS7870 A/D converter whose scaling and filtering are done via the motherboard on which the RCM3400 module is mounted. The A/D converter multiplexes converted signals from eight single-ended or four differential inputs to Serial Port B on the Rabbit 3000.
Page 36
Figure 10 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 10. Timing Diagram for Conversion Start Using CONVERT Pin Appendix B explains the implementation examples of these features on the Prototyping Board. RabbitCore RCM3400...
Page 37
The analog section is isolated from digital noise generated by other components by way of a low-pass filter composed of L1, C10, and C15 on the RCM3400 as shown in Figure 11. The +V analog power supply powers the A/D converter chip.
Page 38
The RCM3400 takes advantage of the Rabbit 3000 microprocessor’s internal clock dou- bler. A built-in clock doubler allows half-frequency crystals to be used to reduce radiated emissions. The 29.4 MHz frequency specified for the RCM3400 is generated using a 14.7 MHz resonator.
Page 39
4.5 Memory 4.5.1 SRAM RCM3400 series boards have 256K–512K of SRAM installed at U6 and packaged in a 32- pin sTSOP case. 4.5.2 Flash EPROM RCM3400 series boards also have 256K–512K of flash EPROM packaged in a 32-pin sTSOP case.
Page 41
You have a choice of doing your software development in the flash memory or in the static SRAM included on the RCM3400. The advantage of working in RAM is to save wear on the flash memory, which is limited to about 100,000 write cycles. The disadvantage is that the code and data might not both fit in RAM.
Page 42
File > Open Dynamic C libraries will be displayed. One library directory provides function calls that are used to develop applications for the RCM3400. —libraries associated with features specific to the RCM3400. These func- • RCM3400 tions in the library illustrate the use of the RCM3400 module on the RCM34xx.LIB...
Page 43
5.2.1 Digital I/O The RCM3400 was designed to interface with other systems, and so there are no drivers written specifically for the I/O. The general Dynamic C read and write functions allow you to customize the parallel I/O to meet your specific needs. For example, use WrPortI(PEDDR, &PEDDRShadow, 0x00);...
Page 44
Technical Note 213, Rabbit 2000 Serial Port Software. 5.2.3 TCP/IP Drivers The TCP/IP drivers are located in the TCPIP directory. Complete information on these libraries and the TCP/IP functions is provided in the Dynamic C TCP/IP User’s Manual. RabbitCore RCM3400...
Page 45
5.3 Upgrading Dynamic C Dynamic C patches that focus on bug fixes are available from time to time. Check the Web sites • www.zworld.com/support/ • www.rabbitsemiconductor.com/support/ for the latest patches, workarounds, and bug fixes. The default installation of a patch or bug fix is to install the file in a directory (folder) dif- ferent from that of the original Dynamic C installation.
Page 47
A. RCM3400 S PPENDIX PECIFICATIONS Appendix A provides the specifications for the RCM3400, and describes the conformal coating. User’s Manual...
Page 48
A.1 Electrical and Mechanical Characteristics Figure A-1 shows the mechanical dimensions for the RCM3400. 1.160 (29.5) 1.375 (34.9) 1.160 (29.5) Figure A-1. RCM3400 Dimensions RabbitCore RCM3400...
Page 49
An “exclusion zone” of 0.08" (2 mm) is recommended below the RCM3400 when the RCM3400 is plugged into another assembly using the shortest connectors for headers J1 and J2. Figure A-2 shows this “exclusion zone.”...
Page 50
Support for MIR/SIR IrDA transceiver Serial Rate Maximum asynchronous baud rate = CLK/8 A slave port allows the RCM3400 to be used as an intelligent peripheral Slave Interface device slaved to a master processor, which may either be another Rabbit...
Page 51
(29.5 mm ×34.9 mm × 22 mm) A.1.1 Headers The RCM3400 uses headers at J1 and J2 for physical connection to other boards. J1 and J2 are 2 × 17 SMT headers with a 1.27 mm pin spacing. Figure A-3 shows the layout of another board for the RCM3400 to be plugged into. These values are relative to the designated fiducial.
Page 52
(pF) Parallel Ports A to G Table A-3 lists the external capacitive bus loading for the various RCM3400 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 53
Figure A-4 shows a typical timing diagram for the Rabbit 3000 microprocessor external memory 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 T BUFEN T setup D[7:0]...
Page 54
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. RabbitCore RCM3400...
Page 55
A.3 Rabbit 3000 DC Characteristics Table A-6. Rabbit 3000 Absolute Maximum Ratings Symbol Parameter Maximum Rating Operating Temperature -55° to +85°C Storage Temperature -65° to +150°C Maximum Input Voltage: • + 0.5 V Oscillator Buffer Input • 5.5 V 5-V-tolerant I/O Maximum Operating Voltage 3.6 V Stresses beyond those listed in Table A-6 may cause permanent damage.
Page 56
The absolute maximum operating voltage on all I/O is 5.5 V. Table A-8 shows the AC and DC output drive limits of the parallel I/O buffers when the Rabbit 3000 is used in the RCM3400. Table A-8. I/O Buffer Sourcing and Sinking Capability...
Page 57
Conformally coated area Figure A-5. RCM3400 Areas Receiving Conformal Coating Any components in the conformally coated area may be replaced using standard soldering procedures for surface-mounted components. A new conformal coating should then be applied to offer continuing protection against the effects of moisture and contaminants.
Page 58
A.6 Jumper Configurations Figure A-6 shows the header locations used to configure the various RCM3400 options via jumpers. Figure A-6. Location of RCM3400 Configurable Positions Table A-9 lists the configuration options. Table A-9. RCM3400 Jumper Configurations Factory Header Description Pins Connected Default 1–2 128K/256K...
Page 59
B. P 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 RCM3400 and to build prototypes of your own circuits. User’s Manual...
Page 60
The Prototyping Board included in the Development Kit makes it easy to connect an RCM3400 module to a power supply and a PC workstation for development. It also pro- vides some basic I/O peripherals (RS-232, RS-485, an IrDA transceiver, an Ethernet port, LEDs, and switches), as well as a prototyping area for more advanced hardware develop- ment.
Page 61
—Two momentary-contact, normally open switches are con- • nected to the PD4 and PD5 pins of the RCM3400 module and may be read as inputs by sample applications. Two LEDs are connected to the PD6 and PD7 pins of the RCM3400 module, and may be driven as output indicators by sample applications.
Page 62
+5 V or the +3.3 V supplies, respectively. —Z-World’s LCD/keypad module may be plugged in directly to • LCD/Keypad Module headers LCD1JA, LCD1JB, and LCD1JC. Appendix D provides complete information for mounting and using the LCD/keypad module. RabbitCore RCM3400...
Page 63
B.2 Mechanical Dimensions and Layout Figure B-2 shows the mechanical dimensions and layout for the RCM3400 Prototyping Board. 3.75 (95) 3.07 (78) Battery DCIN +3.3 V +5 V +5 V /IORD CX10 /IOWR STAT CX11 SMODE1 SMD0 RESET +5 V +3.3 V...
Page 64
6, accept 4-40 × ½ screws B.3 Power Supply The RCM3400 requires a regulated 2.8 V – 3.45 V DC power source to operate. Depend- ing on the amount of current required by the application, different regulators can be used to supply this voltage.
Page 65
B.4 Using the Prototyping Board The Prototyping Board is actually both a demonstration board and a prototyping board. As a demonstration board, it can be used to demonstrate the functionality of the RCM3400 right out of the box without any modifications to either board.
Page 66
+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. +3.3V Figure B-5. Prototyping Board Current-Measurement Option RabbitCore RCM3400...
Page 67
B.4.3 Analog Features The Prototyping Board has typical support circuitry installed to complement the ADS7870 A/D converter on the RCM3400 module. B.4.3.1 A/D Converter Inputs Figure B-6 shows a pair of A/D converter input circuits. The resistors form an approx.
Page 68
249 Ω 1% precision resistors placed between the ana- log input and analog ground for ADC_IN3 to ADC_IN6. Be sure to reconfigure the jumper positions on header JP5 as shown in Section B.5 using the slip-on jumpers included with the spare parts in the Development Kit. RabbitCore RCM3400...
Page 69
AD_RDVOLT_ALL.C AD_CAL_ALL.C Milli-Amp, one channel AD_RDMA_CH.C AD_CALMA_CH.C Differential, analog ground AD_RDDIFF_CH.C AD_CALDIFF_CH.C These sample programs are found in the subdirectory in . See SAMPLES\RCM3400 Section B.6.2 for more information on these sample programs and how to use them. User’s Manual...
Page 70
B.4.4 Serial Communication The RCM3400 Prototyping Board allows you to access five of the serial ports from the RCM3400 module. Table B-4 summarizes the configuration options. Table B-4. RCM3400 Prototyping Board Serial Port Configurations Serial Port Header Default Use Alternate Use...
Page 71
Be sure to configure the 0 Ω jumpers as explained in Section B.5 to be able to access Serial Ports E and F on header J6. RS-232 can be used effectively at the RCM3400 module’s maximum baud rate for distances of up to 15 m.
Page 72
B.4.4.2 RS-485 The RCM3400 Prototyping Board has one RS-485 serial channel, which is connected to the Rabbit 3000 Serial Port E through an RS-485 transceiver. The half-duplex communi- cation uses an output from PD0 on the Rabbit 3000 to control the transmit enable on the communication line.
Page 73
The RCM3400 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 JP3, as shown in Figure B-9. Battery DCIN +3.3 V +5 V...
Page 74
Two LEDs are placed next to the RJ-45 Ethernet jack, one to indicate a live Ethernet link ) and one to indicate Ethernet activity ( The transformer/connector assembly ground is connected to the RCM3400 Prototyping Board printed circuit board digital ground via a 0 Ω resistor “jumper,” R46, as shown in Figure B-11.
Page 75
B.4.5 Other Prototyping Board Modules An optional LCD/keypad module is available that can be mounted on the Prototyping Board. Refer to Appendix D, “LCD/Keypad Module,” for complete information. User’s Manual...
Page 76
B.5 RCM3400 Prototyping Board Jumper Configurations Figure B-12 shows the header locations used to configure the various RCM3400 Prototyp- ing Board options via jumpers. JP10 Battery Note JP6 and JP7 are located under the RCM3400 (if the RCM3400 module is plugged in) JP1 JP2 JP9 Figure B-12.
Page 77
Table B-5. RCM3400 Jumper Configurations (continued) Factory Header Description Pins Connected Default 1–2 Bias and termination resistors × 5–6 connected RS-485 Bias and Termination Bias and termination resistors not Resistors 1–3 connected (parking position for 4–6 jumpers) × 1–2 RS-485 PG7 RS-232/RS-485 Select 2–3 RS-232 (RxE)
Page 78
STDIO —This program demonstrates a simple RS-485 transmission of • SIMPLE485MASTER.C lower case letters to a slave RCM3400. The slave will send back converted upper case letters back to the master RCM3400 and display them in the STDIO window. Use to program the slave RCM3400.
Page 79
B.6.2 A/D Converter Inputs The following sample programs are found in the subdirectory in SAMPLES\RCM3400 —Demonstrates how to recalibrate all single-ended analog input chan- • AD_CAL_ALL.C nels for one gain, using two known voltages to generate the calibration constants for each channel.
Page 80
Although the software function calls described in this section were prepared specifically for the RCM3400 Prototyping Board with an RCM3400 series module attached, the func- tion calls illustrate how you can develop your own applications around the RCM3400. The function calls are in the library in the Dynmaic C directory.
Page 81
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. Appendix provides additional addressing and command information. ADS7870 Signal ADS7870 State RCM3400 Function/State Input AIN0 Input AIN1...
Page 82
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 RCM3400...
Page 83
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 84
RETURN VALUE 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 RCM3400...
Page 85
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. PARAMETERS channel is the channel number (0 to 7) corresponding to ADC_IN0 to ADC_IN7 opmode is the mode of operation: SINGLE—single-ended input DIFF—differential input...
Page 86
* Not accessible on Prototyping Board. gaincode is the gain code of 0 to 7: Voltage Range Gain Code Multiplier ×1 0–20 ×2 0–10 ×4 0–5 ×5 0–4 ×8 0–2.5 ×10 0–2 ×16 0–1.25 ×20 0–1 * Applies to RCM3400 Prototyping Board. RabbitCore RCM3400...
Page 87
value1 is the first A/D converter channel value (0–2047) volts1 is the voltage or current corresponding to the first A/D converter channel value (0 to +20 V or 4 to 20 mA) value2 is the second A/D converter channel value (0–2047) volts2 is the voltage or current corresponding to the first A/D converter channel value (0 to +20 V or 4 to 20 mA) RETURN VALUE...
Page 88
0–20 +AIN6 0–20 ‡ +AIN7 0–2 * Negative input is ground. † Applies to RCM3400 Prototyping Board. ‡ Used for thermistor in sample program. gaincode is the gain code of 0 to 7. Voltage Range Gain Code Multiplier ×1 0–20 ×2...
Page 89
— +AIN4 -AIN5 -20 to +20 +AIN5 -AIN5 — +AIN6 -AIN7 — +AIN7 -AIN7 — * Accessible on RCM3400 Prototyping Board. gaincode is the gain code of 0 to 7. Voltage Range Gain Code Multiplier ×1 0–20 ×2 0–10 ×4 0–5...
Page 90
† Applies to Prototyping Board. RETURN VALUE A current value between 4.00 and 20.00 mA corresponding to the current on the analog input channel. ADOVERFLOW (defined macro = -4096) if overflow or out of range. SEE ALSO anaInCalib, anaIn, anaInVolts RabbitCore RCM3400...
Page 91
root int anaInEERd(unsigned int channel, unsigned int opmode, unsigned int gaincode); Reads the calibration constants, gain, and offset for an input based on their designated position in the simulated 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 user block memory area 0x1C00–0x1FFF.
Page 92
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 Prototyping Board. RETURN VALUE 0 if successful. -1 if address is invalid or out of range. SEE ALSO anaInEEWr, anaInCalib RabbitCore RCM3400...
Page 93
int anaInEEWr(unsigned int channel, int opmode unsigned int gaincode); Writes the calibration constants, gain, and offset for an input based from global tables to designated posi- tions in the simulated EEPROM area of the flash memory. The constants are stored in the top 2K of the reserved user block memory area 0x1C00–0x1FFF.
Page 94
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 Prototyping Board. RETURN VALUE 0 if successful -1 if address is invalid or out of range. SEE ALSO anaInEEWr, anaInCalib RabbitCore RCM3400...
Page 95
Programming and development can be done with the RCM3400 modules without connect- ing the Ethernet port on the RCM3400 Prototyping Board to a network. However, if you will be running the sample programs that use the Ethernet capability or will be doing Eth- ernet-enabled development, you should connect the RCM3400 Prototyping Board’s Ether-...
Page 96
The PC running Dynamic C through the serial port on the RCM3400 Prototyping Board does not need to be the PC with the Ethernet card. 3. Apply Power Plug in the AC adapter. The RCM3400 module and Prototyping Board are now ready to be used. RabbitCore RCM3400...
Page 97
For this reason, it is suggested that the user begin instead by using a direct connection between a PC and the RCM3400 using an Ethernet crossover cable or a simple arrangement with a hub. (A crossover cable should not be confused with regular straight through cables.)
Page 98
RCM3400. You will also need the IP address of the nameserver, the name or IP address of your mail server, and your domain name for some of the sample programs.
Page 99
C.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.
Page 100
Each RCM3400 RabbitCore module has its own MAC address, which consists of the pre- fix 0090C2 followed by a code that is unique to each RCM3400 module. For example, a MAC address might by 0090C2C002C0.
Page 101
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 RCM3400 from the Internet, you can place the RCM3400 on the internal network using a private address assigned either statically or through DHCP.
Page 102
You can either place the RCM3400 directly on the Internet with a real Internet address or place it behind the firewall. If you place the RCM3400 behind the fire- wall, you need to configure the firewall to translate and forward packets from the Internet to the RCM3400.
Page 103
These programs require you to connect your PC and the RCM3400 board together on the same network. This network can be a local private net- work (preferred for initial experimentation and debugging), or a connection via the Internet.
Page 104
#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 RCM3400: #define MY_IP_ADDRESS "10.1.1.2" #define MY_NETMASK "255.255.255.0" // #define MY_GATEWAY "10.10.6.1" // #define MY_NAMESERVER "10.10.6.1"...
Page 105
C.4.2 How to Set Up your Computer’s IP Address for Direct Connect When your computer is connected directly to the RCM3400 Prototyping Board via an Ethernet connection, you need to assign an IP address to your computer. To assign the PC...
Page 106
) demonstrates how to make the STATIC.C SAMPLES\TCPIP\HTTP RCM3400 board be a Web server. In order to run these sample programs, open the sample program, compile the program, and start it executing. Then bring up your Web browser and enter the following server address: http://10.1.1.2.
Page 107
C.7 Where Do I Go From Here? NOTE: If you purchased your RCM3400 through a distributor or through a Z-World or Rabbit Semiconductor partner, contact the distributor or Z-World partner first for tech- nical support. If there are any problems at this point: •...
Page 109
APIs to make full use of the LCD/keypad. D.1 Specifications Two optional LCD/keypad modules—with or without a panel-mounted NEMA 4 water- resistant bezel—are available for use with the RCM3400 Prototyping Board. They are shown in Figure D-1. Figure D-1. LCD/Keypad Modules Versions One version (no bezel) mounts directly on the Prototyping Board, and the other version is designed to be installed at a remote location up to 60 cm (24") away.
Page 110
1.5 W maximum Connections Connects to high-rise header sockets on the Prototyping Board LCD Panel Size 122 × 32 graphic display Keypad 7-key keypad LEDs Seven user-programmable LEDs * The backlight adds approximately 650 mW to the power consumption. RabbitCore RCM3400...
Page 111
Figure D-2. LCD/Keypad Module Voltage Settings NOTE: Older LCD/keypad modules that do not have a header at J5 are limited to operate only at 5 V, and will not work with the RCM3400 Prototyping Board. The older LCD/keypad modules are no longer being sold.
Page 112
Figure D-3. The keypad legend is located under the blue key- pad matte, and is accessible from the left only as shown in Figure D-4. Keypad label is located under the blue keypad matte. Figure D-4. Removing and Inserting Keypad Label RabbitCore RCM3400...
Page 113
D.4 Header Pinouts Figure D-5 shows the pinouts for the LCD/keypad module. Figure D-5. LCD/Keypad Module Pinouts D.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 D-2. Table D-2.
Page 114
+3.3 V LCD1JC LCD1JB LCD1JB LCD1JC +5 V +3.3 V +3.3 V RCM3400 PROTOTYPING BOARD GND AIN0 AIN1 AIN2 AIN3 AIN4 AIN5 AIN6 THERM GND CNVRT VREF +5 V +5 V Figure D-6. Install LCD/Keypad Module on Prototyping Board RabbitCore RCM3400...
Page 115
D.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 D-7, then use the bezel faceplate to mount the LCD/keypad module onto the panel.
Page 116
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 RCM3400...
Page 117
D.6.1 Connect the LCD/Keypad Module to Your Prototyping Board The LCD/keypad module can be located as far as 2 ft. (60 cm) away from the RCM3400 Prototyping Board, and is connected via a ribbon cable as shown in Figure D-9.
Page 118
The RCM3400 must be in Program mode (see Section 3.3, “Programming Cable”), and must be connected to a PC using the programming cable as described in Chapter 2, “Getting Started.”.
Page 119
LCD/keypad module. The red LED is turned off when the function executes. brdInit One function is available to control the LEDs, and can be found in the RCM3400.LIB library in the directory. SAMPLES\RCM3400 void displedOut(int led, int value);...
Page 120
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 RCM3400...
Page 121
void glSetContrast(unsigned level); Sets display contrast (the circuitry is not installed on the LCD/keypad module used with the Prototyping Board). PARAMETER level reflects low to high values (typically 0 to 255, depending on the board design) to give high to low contrast respectively.
Page 122
LCD display area will be clipped. The function will also return, doing nothing, if there are less than 3 vertices. 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 RCM3400...
Page 123
void glPlotPolygon(int n, int y1, int x2, int y2, ...); Plots the outline of a polygon in the LCD page buffer and on the LCD if the buffer is unlocked. Any por- tion of the polygon that is outside the LCD display area will be clipped. The function will also return, doing nothing, if there are less than 3 vertices.
Page 124
(in pixels). RETURN VALUE None. SEE ALSO glPlotCircle, glPlotPolygon, glFillPolygon RabbitCore RCM3400...
Page 125
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 126
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 RCM3400...
Page 127
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 128
Sets the drawing method (or color) of pixels drawn by subsequent graphic calls. PARAMETER type value can be one of the following macros. 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 RCM3400...
Page 129
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 130
8. rows is the number of rows in the window. RETURN VALUE None. SEE ALSO glVScroll, glDown1 RabbitCore RCM3400...
Page 131
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 upper left corner of bitmap, must be evenly divisible by 8. top is the left top corner of the bitmap. cols is the number of columns in the window, must be evenly divisible by 8.
Page 132
RETURN VALUE None. SEE ALSO glXPutFastmap, glPrintf RabbitCore RCM3400...
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
LCD display area, the character will not be displayed. NOTE: Execute the function before using this function. 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 RCM3400...
Page 135
void TextPrintf(struct windowFrame *window, char *fmt, ...); Prints a formatted string (much like printf) on the LCD screen. Only printable characters in the font set are printed, also escape sequences, ’\r’ and ’\n’ are recognized. All other escape sequences will be skipped over;...
Page 136
How long to hold before repeating. 0 = No Repeat. cSpdLo is a low-speed repeat tick. 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 RCM3400...
Page 137
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 138
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 RCM3400...
Page 139
RCM3400 board through header J1. An RCM3400 with no loading at the outputs operating at 29.4 MHz typically draws 97 mA. E.1.1 Battery-Backup Circuits The RCM3400 does not have a battery, but there is provision for a customer-supplied bat- tery to back up the data SRAM and keep the internal Rabbit 3000 real-time clock running.
Page 140
The RCM3400 uses a reset generator to reset the Rabbit 3000 microprocessor when the volt- age drops below the voltage necessary for reliable operation. The reset occurs between 2.85 V and 3.00 V, typically 2.93 V. The RCM3400 has a reset output, pin 33 on header J1. RabbitCore RCM3400...
Page 141
Otherwise, the connector on the programming cable allows the DIAG programming cable to be used as an RS-232 to CMOS level converter for serial communication, which is appropriate for monitoring or debugging a RabbitCore system while it is running. User’s Manual...
Page 142
TXA to one of the SMODE pins and then test for the connection by raising PC6 (by configuring it as a general output bit) and reading the SMODE pin after the cold-boot mode has been disabled. The value of the SMODE pin is read from the SPCR register. RabbitCore RCM3400...
Page 143
Once you establish that the programming port will never again be needed for program- ming, it is possible to use the programming port for additional I/O lines. Table F-1 lists the pins available for this alternate configuration. Table F-1. RCM3400 Programming Port Pinout Configurations Pin Name Default Use...
Page 145
OTICE TO SERS Z-WORLD PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE- SUPPORT DEVICES OR SYSTEMS UNLESS A SPECIFIC WRITTEN AGREEMENT REGARDING SUCH INTENDED USE IS ENTERED INTO BETWEEN THE CUSTOMER AND Z-WORLD PRIOR TO USE. Life-support devices or systems are devices or systems intended for surgical implantation into the body or to sustain life, and whose failure to perform, when properly used in accordance with instructions for use provided in the labeling and user’s manual, can be reasonably expected to result in significant injury.
Page 151
CHEMATICS 090-0157 RCM3400 Schematic www.rabbitsemiconductor.com/documentation/schemat/090-0157.pdf 090-0162 Prototyping Board Schematic www.rabbitsemiconductor.com/documentation/schemat/090-0162.pdf 090-0156 LCD/Keypad Module Schematic www.rabbitsemiconductor.com/documentation/schemat/090-0156.pdf 090-0128 Programming Cable Schematic www.rabbitsemiconductor.com/documentation/schemat/090-0128.pdf The schematics included with the printed manual were the latest revisions available at the time the manual was last revised. The online versions of the manual contain links to the latest revised schematic on the Web site.
Need help?
Do you have a question about the RCM3400 and is the answer not in the manual?
Questions and answers