RabbitCore RCM3900
User's Manual
PREV INDEX NEXT


4. Hardware Reference

Chapter 4 describes the hardware components and principal hardware subsystems of the RCM3900 modules. Appendix A, "RCM3900 Specifications," provides complete physical and electrical specifications.

Figure 4 shows the Rabbit-based subsystems designed into the RCM3900.


Figure 4. RCM3900 Subsystems

4.1 RCM3900 Inputs and Outputs

Figure 5 shows the RCM3900 pinouts for headers J61 and J62.


Figure 5. RCM3900 Pinouts

The pinouts for the RCM3000, RCM3100, RCM3200, RCM3300/RCM3305/RCM3309/RCM3319, RCM3360/RCM3370, RCM3365/RCM3375, and RCM3900 are almost compatible, except signals PB0, PC4, and PC5. are used for the SPI interface to the serial flash on the RCM3305/RCM3309/RCM3315/RCM3319 and for the miniSD™ Card on the RCM3900/RCM3910, but are available on the other modules.

Headers J61 and J62 are standard 2 × 17 headers with a nominal 2 mm pitch. An RJ-45 Ethernet port is also included with the RCM3900.

Pins 29–32 on header J61 are configured using 0 W resistors at locations JP9, JP10, JP7, and JP8 to enable connections to PD2, PD3, PD6, and PD7 respectively. Note that there is no 0 W resistor at location JP9 since PD2/TPO– is not available on header J61. They may also be reconfigured to carry the Ethernet signals TPO–, TPO+, TPI–, and TPI+, but this capability is reserved for future use.

Pins 33 and 34 on header J61 are wired via 0 W surface-mount resistors at JP2 and JP3 to carry the ACT and LINK signals that illuminate the corresponding LEDs on the RCM3900 module. These pins may be "configured" to carry PD0 and PD1, an option that is reserved for future use.

See Appendix A.6 for more information about the locations of these headers.

Figure 6 shows the use of the Rabbit 3000 microprocessor ports in the RCM3900 modules.


Figure 6. Use of Rabbit 3000 Ports

The ports on the Rabbit 3000 microprocessor used in the RCM3900 are configurable, and so the factory defaults can be reconfigured. Table 2 lists the Rabbit 3000 factory defaults and the alternate configurations.

Table 2. RCM3900 Pinout Configurations 
Pin
Pin Name
Default Use
Alternate Use
Notes
Header J61
1
GND



2
STATUS
Output (Status)
Output

3–10
PA[7:0]
Parallel I/O
External data bus
(ID0–ID7)
Slave port data bus
(SD0–SD7)
External Data Bus
11
PF3
Input/Output
QD2A

12
PF2
Input/Output
QD2B

13
PF1
Input/Output
QD1A
CLKC

14
PF0
Input/Output
QD1B
CLKD

15
PC0
Output
TXD
Serial Port D
16
PC1
Input
RXD
17
PC2
Output
TXC
Serial Port C
18
PC3
Input
RXC
19
PC4
Output
TXB
Serial Port B (used by miniSD™ Card SPI)
20
PC5
Input
RXB
21
PC6
Output
TXA
Serial Port A
(programming port)
22
PC7
Input
RXA
23
PG0
Input/Output
TCLKF
Serial Clock F output
24
PG1
Input/Output
RCLKF
Serial Clock F input
25
PG2
Input/Output
TXF
Serial Port F
26
PG3
Input/Output
RXF
27
PD4
Input/Output
ATXB

28
PD5
Input/Output
ARXB

29
not connected


Optional Ethernet transmit port
30
PD3/TPO+
Input/Output
TPOUT+ *
31
PD6/TPI–
Input/Output
TPIN– *
Optional Ethernet receive port
32
PD7/TPI+
Input/Output
TPIN+ *
33
LINK
Output

Max. sinking current draw 1 mA (see Note 1)
34
ACT
Output

* Pins 30–32 Ethernet option is reserved for future use.
Header J62 1
/RES
Reset output

Reset output from Reset Generator
2
PB0
Input/Output
CLKB
CLKB (used by miniSD™ Card SPI)
3
PB2
Input/Output
IA0
/SWR
External Address 0
Slave port write
4
PB3
Input/Output
IA1
/SRD
External Address 1
Slave port read
5
PB4
Input/Output
IA2
SA0
External Address 2
Slave port Address 0
6
PB5
Input/Output
IA3
SA1
External Address 3
Slave port Address 1
7
PB6
Input/Output
IA4
External Address 4
8
PB7
Input/Output
IA5
/SLAVEATTN
External Address 5
Slave Attention
9
PF4
Input/Output
AQD1B
PWM0

10
PF5
Input/Output
AQD1A
PWM1

11
PF6
Input/Output
AQD2B
PWM2

12
PF7
Input/Output
AQD2A
PWM3

13
PE7
Input/Output
I7
/SCS
I/O Strobe 7
Slave Port Chip Select
14
PE6
Input/Output
I6
I/O Strobe 6
15
PE5
Input/Output
I5
INT1B
I/O Strobe 5
Interrupt 1B
16
PE4
Input/Output
I4
INT0B
I/O Strobe 4
Interrupt 0B
17
PE3
Input/Output
I3
I/O Strobe 3
18
PE1
Input/Output
I1
INT1A
I/O Strobe 1
Interrupt 1A
19
PE0
Input/Output
I0
INT0A
I/O Strobe 0
Interrupt 0A
Header J62
20
PG7
Input/Output
RXE
Serial Port E
21
PG6
Input/Output
TXE
22
PG5
Input/Output
RCLKE
Serial Clock E input
23
PG4
Input/Output
TCLKE
Serial Clock E ouput
24
/IOWR
Output

External write strobe
25
/IORD
Output

External read strobe
26–27
SMODE0,
SMODE1
(0,0)—start executing at address zero
(0,1)—cold boot from slave port
(1,0)—cold boot from clocked Serial Port A

SMODE0 =1, SMODE1 = 1
Cold boot from asynchronous Serial Port A at 2400 bps (programming cable connected)
Also connected to programming cable
28
/RESET_IN
Input

Input to Reset Generator
29
VRAM
Output

See Notes below table
30
VBAT_EXT
3 V battery Input

Minimum battery voltage 2.85 V
31
+3.3 VIN
Power Input

3.15–3.45 V DC
32
GND



33
n.c.


Reserved for future use
34
GND




Notes

  1. When using pins 33–34 on header J3 to drive LEDs, these pins can handle a sinking current of up to 8 mA.

  2. The VRAM voltage is temperature-dependent. If the VRAM voltage drops below about 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 voltage if you draw any current from this pin.

  3. Do not overload the /IOWR line because the NAND flash memories have critical timing requirements. In some cases it may be necessary to buffer /IOWR on the motherboard.

4.1.1 Memory I/O Interface

The Rabbit 3000 address lines (A0–A18) and all the data lines (D0–D7) are routed internally to the onboard flash memory and SRAM chips. I/O write (/IOWR) and I/O read (/IORD) are available for interfacing to external devices—pay attention to the loading on these two signals if you use them since these signals are also used by the RCM3900.

Parallel Port A can also be used as an external I/O data bus to isolate external I/O from the main data bus. Parallel Port B pins PB2–PB7 can also be used as an auxiliary address bus.

When using the external I/O bus for a digital output or the LCD/keypad module on the Prototyping Board, or for any other reason, you must add the following line at the beginning of your program.

4.1.2 LEDs

The RCM3900 has three Ethernet status LEDs located beside the RJ-45 Ethernet jack—these are discussed in Section 4.2.2.

Additionally, there is one dual LED DS4. PD1 on the Rabbit 3000's Parallel Port D is used to enable the NAND flash on the RCM3900 model, but is connected to the green CE LED at DS4, which is not used. The red BSY LED at DS4 is a user-programmable LED, and is controlled by PD0. The CONTROLLEDS.C and FLASHLEDS.C sample programs in the Dynamic C SAMPLES\RCM3900 folder show how to set up and use this user-programmable LED.

4.1.3 Other Inputs and Outputs

The status, /RESET_IN, SMODE0, and SMODE1 I/O are normally associated with the programming port. Since the status pin is not used by the system once a program has been downloaded and is running, the status pin can then be used as a general-purpose CMOS output. The programming port is described in more detail in Section 4.2.3.

/RESET_IN is an external input used to reset the Rabbit 3000 microprocessor and the RCM3900 onboard peripheral circuits. /RES is an output from the reset circuitry that can be used to reset external peripheral devices.

4.2 Serial Communication

The RCM3900 does not have any serial protocol-level transceivers directly on the board. However, a serial interface may be incorporated into the board the RCM3900 is mounted on. For example, the Prototyping Board has RS-232 and RS-485 transceiver chips.

4.2.1 Serial Ports

There are six serial ports designated as Serial Ports A, B, C, D, E, and F. All six serial ports can operate in an asynchronous mode up to the baud rate of the system clock divided by 8. An asynchronous port can handle 7 or 8 data bits. A 9th bit address scheme, where an additional bit is sent to mark the first byte of a message, is also supported.

Serial Port A is normally used as a programming port, but may be used either as an asynchronous or as a clocked serial port once the RCM3900 has been programmed and is operating in the Run Mode.

Serial Port B is used as the SPI interface for the miniSD™ Card, and is not available for other use.

Serial Ports C and D can also be operated in the clocked serial mode. In this mode, a clock line synchronously clocks the data in or out. 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.

4.2.2 Ethernet Port

Figure 7 shows the pinout for the RJ-45 Ethernet port (J3). Note that some Ethernet connectors are numbered in reverse to the order used here.


Figure 7. RJ-45 Ethernet Port Pinout

Three LEDs are placed next to the RJ-45 Ethernet jack, one to indicate Ethernet link/activity (LNK/ACT), one to indicate when the RCM3900 is connected to a functioning 100Base-T network (SPD), and one (FDX/COL) to indicate whether the Ethernet connection is in full-duplex mode (steady on) or that a half-duplex connection is experiencing collisions (blinks).

The transformer/connector assembly ground is connected to the RCM3900 printed circuit board digital ground via a ferrite bead, L1, as shown in Figure 8.


Figure 8. Ferrite Bead Isolation


The RJ-45 connector is shielded to minimize EMI effects to/from the Ethernet signals.

The Ethernet chip supports auto MDI/MDIX on the Ethernet port to choose the Ethernet interface automatically based on whether a crossover cable or a straight-through cable is used in a particular setup. The Ethernet chip may spike the current draw by up to 200 mA while it is searching to determine the type of Ethernet cable. This search is repeated every second if no Ethernet cable is detected. If you do not plan to connect an Ethernet cable, use the Dynamic C pd_powerdown() function call to turn off the Ethernet chip. The pd_powerup() function call is available to turn the Ethernet chip back on at a later time. These function calls are described in the Dynamic C TCP/IP User's Manual, Volume 1.

4.2.3 Serial Programming Port

The RCM3900 is programmed either through the serial programming port, which is accessed using header J1, or through the Ethernet jack. The RabbitLink may be used to provide a serial connection via the RabbitLink's Ethernet jack. The programming port uses the Rabbit 3000's Serial Port A for communication; Serial Port A is not used when programming is done over an Ethernet connection via the Dynamic C download manager. Dynamic C uses the programming port to download and debug programs.

The programming port is also used for the following operations.

In addition to Serial Port A, the Rabbit 3000 startup-mode (SMODE0, SMODE1), status, and reset pins are available on the serial programming port.

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. It can be driven low on the first op code fetch cycle.

  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 RCM3900 onboard peripheral circuits. The serial programming port can be used to force a hard reset on the RCM3900 by asserting the /RESET_IN signal.

Alternate Uses of the Serial Programming Port

All three clocked Serial Port A signals are available as

The programming port may also be used as a serial port once the application is running. The SMODE pins may then be used as inputs and the status pin may be used as an output.

Refer to the Rabbit 3000 Microprocessor User's Manual for more information.

4.3 Serial Programming Cable

The programming cable is used to connect the serial programming port of the RCM3900 to a PC USB COM port. The programming cable converts the voltage levels used by the PC USB port to the CMOS voltage levels used by the Rabbit 3000.

When the PROG connector on the programming cable is connected to the RCM3900 serial programming port at header J1, programs can be downloaded and debugged over the serial interface.

The DIAG connector of the programming cable may be used on header J1 of the RCM3900 with the RCM3900 operating in the Run Mode. This allows the programming port to be used as a regular serial port.

4.3.1 Changing Between Program Mode and Run Mode

The RCM3900 is automatically in Program Mode when the PROG connector on the programming 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 state of the SMODE pins. When the programming cable's PROG connector is attached, the SMODE pins are pulled high, placing the Rabbit 3000 in the Program Mode. When the programming cable's PROG connector is not attached, the SMODE pins are pulled low, causing the Rabbit 3000 to operate in the Run Mode.


Figure 9. Switching Between Program Mode and Run Mode

A program "runs" in either mode, but can only be downloaded and debugged when the RCM3900 is in the Program Mode.

Refer to the Rabbit 3000 Microprocessor User's Manual for more information on the programming port.

4.3.2 Standalone Operation of the RCM3900

The RCM3900 must be programmed via the Prototyping Board or via a similar arrangement on a customer-supplied board. Once the RCM3900 has been programmed successfully, remove the serial programming cable from the programming connector and reset the RCM3900. The RCM3900 may be reset by cycling the power off/on or by pressing the RESET button on the Prototyping Board. The RCM3900 module may now be removed from the Prototyping Board for end-use installation.


CAUTION:
Disconnect power to the Prototyping Board or other boards when removing or installing your RCM3900 module to protect against inadvertent shorts across the pins or damage to the RCM3900 if the pins are not plugged in correctly. Do not reapply power until you have verified that the RCM3900 module is plugged in correctly.


4.4 Memory

4.4.1 SRAM

RCM3900 boards have 512K of program-execution fast SRAM at U66. The program-execution SRAM is not battery-backed. There are 512K of battery-backed data SRAM installed at U9.

4.4.2 Flash EPROM

RCM3900 boards also have 512K of flash EPROM at U8.

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.

Writing to arbitrary flash memory addresses at run time is discouraged. Instead, use a portion of the "user block" area to store persistent data. The writeUserBlock() and readUserBlock() function calls are provided for this. Refer to the Rabbit 3000 Microprocessor Designer's Handbook and the Dynamic C Function Reference Manual for additional information.

A Flash Memory Bank Select jumper configuration option based on 0 W surface-mounted resistors exists at header JP12 on the RCM3900 RabbitCore modules. This option, used in conjunction with some configuration macros, allows Dynamic C to compile two different co-resident programs for the upper and lower halves of a 256K flash in such a way that both programs start at logical address 0000. This option is not relevant to the RCM3900 RabbitCore modules, which use 512K flash memories.

4.4.3 NAND Flash (RCM3900 only)

The RCM3900 model has a NAND flash to store data and Web pages. The NAND flash is particularly suitable for mass-storage applications, but is generally unsuitable for direct program execution. The NAND flash differs from parallel NOR flash (the type of flash memory used to store program code on Rabbit-based boards and RabbitCore modules currently in production) in two respects. First, the NAND flash requires error-correcting code (ECC) for reliability. Although NAND flash manufacturers do guarantee that block 0 will be error-free, most manufacturers guarantee that a new NAND flash chip will be shipped with a relatively small percentage of errors, and will not develop more than some maximum number or percentage of errors over its rated lifetime of up to 100,000 writes. Second, the standard NAND flash addressing method multiplexes commands, data, and addresses on the same I/O pins, while requiring that certain control lines must be held stable for the duration of the NAND flash access. The software function calls provided by Rabbit for the NAND flash take care of the data-integrity and reliability attributes.

Sample programs in the SAMPLES\RCM3900\NANDFlash folder illustrate the use of the NAND flash. These sample programs are described in Section 3.2.1, "Use of NAND Flash (RCM3900 only)."

4.4.4 miniSD™ Cards

The RCM3900 supports a removable miniSD™ Card up to 1GB to store data and Web pages. The miniSD™ Card is particularly suitable for mass-storage applications, but is generally unsuitable for direct program execution.

Unlike other flash devices, the miniSD™ Card has some intelligence, which facilitates working with it. You do not have to worry about erased pages. All miniSD™ Cards support 512-byte reads and writes, and handle any necessary pre-erasing internally.

The miniSD™ Card socket on the RCM3900 has a plastic insert when shipped to protect the socket. This insert must be removed before you will be able to insert a miniSD™ Card.

Figure 10 shows how to insert or remove the miniSD™ Card. The card is designed to fit easily only one way — do not bend the card or force it into the slot. While you remove or insert the card, take care to avoid touching the electrical contacts on the bottom of the card to prevent electrostatic discharge damage to the card and to keep any moisture or other contaminants off the contacts. You will sense a soft click once the card is completely inserted. To remove it, gently press the card towards the middle of the RCM3900 — you will sense a soft click and the card will be ready to be removed. Do not attempt to pull the card from the socket before pressing it in — otherwise the ejection mechanism will get damaged. The ejection mechanism is spring-loaded, and will partially eject the card when used correctly.


Figure 10. Insertion/Removal of miniSD Card

Rabbit recommends that you use the miniSD™ Card holder at header J2 only for the miniSD™ Card since other devices are not supported. Be careful to remove and insert the card as described, and be careful not to insert any foreign objects, which may short out the contacts and lead to the destruction of your card.

It is possible to hot-swap miniSD™ Cards without removing power from the RCM3900 modules. The file system partition must be unmounted before the cards can be safely hot-swapped. The chip selects associated with the card must be set to their inactive state, and read/write operations addressed to the miniSD™ Card port cannot be allowed to occur. These operations can be initiated in software by sensing an external switch actuated by the user, and the card can then be removed and replaced with a different one. Once the application program detects a new card, the file system partition can be remounted. These steps allow the miniSD™ Card to be installed or removed without affecting either the program, which continues to run on the RCM3900 module, or the data stored on the card. The Dynamic C FAT file system will handle this overhead automatically by unmounting the miniSD™ Card.

NOTE When using the optional Dynamic C FAT file system module, do not remove or insert the miniSD™ Card while the miniSD™ Card is mounted.

You may add an LED to your design or use the BSY LED at DS4 to indicate when the miniSD™ Card is mounted. The LED can be set to turn off when the miniSD™ Card is unmounted, indicating that it is safe to remove it. The BSY LED at DS4 is controlled by PD0; your own LED would use an available parallel port I/O pin. The following macros in the Dynamic C LIB\Rabbit3000\SDflash\SDFLASH.LIB library will have to be modified to identify the parallel port pin and to specify the on/off conditions for the LED.

Standard Windows SD Card readers may be used to read the miniSD™ Card formatted by the Dynamic C FAT file system with the RCM3900 as long as it has not been partitioned. An SD Card adapter is included with the miniSD™ Card in the in the RCM3900 Development Kit. The SD Card adapter has a sliding switch along the left side that may be moved down to write-protect the miniSD™ Card while it is being used with an SD Card reader.

Sample programs in the SAMPLES\RCM3900\SD_Flash folder illustrate the use of the miniSD™ Cards. These sample programs are described in Section 3.2.2, "Use of miniSD™ Cards."

4.5 Other Hardware

4.5.1 Clock Doubler

The RCM3900 takes advantage of the Rabbit 3000 microprocessor's internal clock doubler. A built-in clock doubler allows half-frequency crystals to be used to reduce radiated emissions. The 44.2 MHz frequency specified for the RCM3900 is generated using a 22.12 MHz crystal.

The clock doubler may be disabled if 44.2 MHz clock speeds are not required. This will reduce power consumption and further reduce radiated emissions. The clock doubler is disabled with a simple configuration macro as shown below.

  1. Select the "Defines" tab from the Dynamic C Options > Project Options menu.

  2. Add the line CLOCK_DOUBLED=0 to always disable the clock doubler.

    The clock doubler is enabled by default, and usually no entry is needed. If you need to specify that the clock doubler is always enabled, add the line CLOCK_DOUBLED=1 to always enable the clock doubler.

  3. Click OK to save the macro. The clock doubler will now remain off whenever you are in the project file where you defined the macro.


4.5.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. The means for doing so is through a simple configuration macro as shown below.

  1. Select the "Defines" tab from the Dynamic C Options > Project Options menu.

  2. Normal spreading is the default, and usually no entry is needed. If you need to specify normal spreading, add the line

    ENABLE_SPREADER=1

For strong spreading, add the line

    ENABLE_SPREADER=2

To disable the spectrum spreader, add the line

    ENABLE_SPREADER=0

NOTE The strong spectrum-spreading setting is not recommended since it may limit the maximum clock speed or the maximum baud rate. It is unlikely that the strong setting will be used in a real application.

  1. Click OK to save the macro. The spectrum spreader will now be set to the state specified by the macro value whenever you are in the project file where you defined the macro.


NOTE Refer to the Rabbit 3000 Microprocessor User's Manual for more information on the spectrum-spreading setting and the maximum clock speed.


Rabbit—A Digi International Brand
www.rabbit.com
PREV INDEX NEXT