RabbitCore RCM3000 User's Manual

> ## 2. Hardware Reference

> Chapter 2 describes the hardware components and principal hardware subsystems of the RCM3000. Appendix A, "RabbitCore RCM3000 Specifications," provides complete physical and electrical specifications.

> Figure 1 shows these Rabbit-based subsystems designed into the RCM3000.

> Figure 1. RCM3000 Subsystems

> ### 2.1 RCM3000 Digital Inputs and Outputs

> The RCM3000 has 40 parallel I/O lines grouped in seven 8-bit ports available on headers J1 and J2. The 37 bidirectional I/O lines are located on pins PA0-PA7, PD2-PD7, PE0-PE1, PE3-PE7, PF0-PF7, and PG0-PG7.

> Figure 2 shows the RCM3000 RabbitCore series pinouts for headers J1 and J2.

> Figure 2. RCM3000 Pinouts

> Headers J1 and J2 are standard 2 × 34 headers with a nominal 2 mm pitch. An RJ-45 Ethernet jack is also included with the RCM3000 series.

> The signals labeled PD2, PD3, PD6, and PD7 on header J1 (pins 29-32) and the pins that are not connected (pins 33-34 on header J1 and pin 33 on header J2) are reserved for future use on other models in the RCM3000 series.

> Figure 3 shows the use of the Rabbit 3000 ports in the RCM3000 series RabbitCore modules.

> Figure 3. Use of Rabbit 3000 Ports

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

> Table 1. RCM3000 Pinout Configurations
> Pin | Pin Name | Default Use | Alternate Use | Notes
> Header J1 | 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) |
> 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
> 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 | Output | TXF | Serial Port F
> 26 | PG3 | Input | RXF
> 27 | PD4 | Input/Output | ATXB |
> 28 | PD5 | Input/Output | ARXB |
> 29 | PD2 | Input/Output | TPOUT- * | Ethernet transmit port
> 30 | PD3 | Input/Output | TPOUT+ *
> 31 | PD6 | Input/Output | TPIN- * | Ethernet receive port
> 32 | PD7 | Input/Output | TPIN+ *
> 33-34 * | n.c. |  |  | Not connected
> * Pins 29-34 are reserved for future RCM3000 series RabbitCore modules.
> Header J2 | 1 | /RES | Reset output | Reset input | Reset output from Reset Generator
> 2 | PB0 | Input/Output | CLKB |
> 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 |
> 14 | PE6 | Input/Output | I6 |
> 15 | PE5 | Input/Output | I5 INT1B |
> 16 | PE4 | Input/Output | I4 INT0B |
> 17 | PE3 | Input/Output | I3 |
> 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 J2 | 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 | Input |  | 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 |  | Maximum Current Draw 50 µA
> 30 | VBAT_EXT | 3 V battery Input |  | Minimum battery voltage 2.8 V
> 31 | +3.3V | Input |  | 3.15-3.45 V DC
> 32 | GND |  |  |
> 33 | n.c. |  |  | Future option for +5 V input or +5 V output
> 34 | GND |  |  |

> Locations R38-R43 allow the population of 0 W resistors (jumpers) that will be used to enable future options. These locations are currently unused.

> #### 2.1.1 Memory I/O Interface

> The Rabbit 3000 address lines (A0-A19) and all the data lines (D0-D7) are routed internally to the onboard flash memory and SRAM chips. I/0 write (/IOWR) and I/0 read (/IORD) are available for interfacing to external devices.

> 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 PB3-PB7 can also be used as an external address bus.

> When using the auxiliary I/O bus, you must add the following line at the beginning of your program.

>     #define PORTA_AUX_IO    // required to enable auxiliary I/O bus

> 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 output.

> #### 2.1.2 Other Inputs and Outputs

> Two status mode pins, SMODE0 and SMODE1, are available as inputs. The logic state of these two pins determines the startup procedure after a reset.

> /RESET_IN is an external input used to reset the Rabbit 3000 microprocessor and the RabbitCore RCM3000 memory. /RES is an output from the reset circuitry that can be used to reset other peripheral devices.

> ### 2.2 Serial Communication

> The RCM3000 Series board does not have an RS-232 or an RS-485 transceiver directly on the board. However, an RS-232 or RS-485 interface may be incorporated on the board the RCM3000 is mounted on. For example, the Prototyping Board has a standard RS-232 transceiver chip.

> #### 2.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 16. 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 Ports A, B, 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. When the Rabbit 3000 provides the clock, the baud rate can be up to 80% of the system clock frequency divided by 128, or 183,750 bps for a 29.4 MHz clock speed.

> Serial Ports E and F can also be configured as SDLC/HDLC serial ports. The IRDA protocol is also supported in SDLC format by these two ports.

> Serial Port A is available only on the programming port, and so is likely to be inconvenient to interface with.

> #### 2.2.2 Ethernet Port

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

> Figure 4. RJ-45 Ethernet Port Pinout

> Two LEDs are placed next to the RJ-45 Ethernet jack, one to indicate an Ethernet link (LNK) and one to indicate Ethernet activity (ACT).

> The Ethernet signals are also available on header J1.

> The transformer/connector assembly ground is connected to the RCM3000 printed circuit board digital ground via a 0 W resistor, R31, as shown in Figure 5.

> Figure 5. Isolation Resistor R31

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

> #### 2.2.3 Programming Port

> Serial Port A has special features that allow it to cold-boot the system after reset. Serial Port A is also the port that is used for software development under Dynamic C.

> The RabbitCore RCM3000 Series has a 10-pin program header labeled J3. The Rabbit 3000 startup-mode pins (SMODE0, SMODE1) are presented to the programming port so that an externally connected device can force the RCM3000 to start up in an external bootstrap mode. The Rabbit 3000 Microprocessor User's Manual provides more information related to the bootstrap mode.

> The programming port is used to start the RabbitCore RCM3000 in a mode where it will download a program from the port and then execute the program. The programming port transmits information to and from a PC while a program is being debugged in-circuit.

> The RabbitCore RCM3000 can be reset from the programming port via the /RESET_IN line.

> The Rabbit 3000 status pin is also presented to the programming port. The status pin is an output that can be used to send a general digital signal.

> The clock line for Serial Port A is presented to the programming port, which makes synchronous serial communication possible.

> ##### 2.2.3.1 Alternate Uses of the Programming Port

> The programming port may also be used as an application port with the DIAG connector on the programming cable.

> All three clocked Serial Port A signals are available as

> - a synchronous serial port

> - an asynchronous serial port, with the clock line usable as a general CMOS input

> - two general CMOS inputs and one general CMOS output.

> Two startup mode pins, SMODE0 and SMODE1, are available as general CMOS inputs after they are read during the initial boot-up. The logic state of these two pins is very important in determining the startup procedure after a reset.

> /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 E, "Programming Cable," for more information.

> ### 2.3 Other Hardware

> #### 2.3.1 Clock Doubler

> The RCM3000 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 29.4 MHz frequency specified for the RCM3000 is generated using a 14.7456 MHz crystal. The clock doubler will not work for crystals with a frequency above 52.8384 MHz.

> The clock doubler may be disabled if 29.4 MHz clock speeds are not required. Disabling the Rabbit 3000 microprocessor's internal clock doubler will reduce power consumption and further reduce radiated emissions. The clock doubler is disabled with a simple change to the BIOS as described below.

> Open the BIOS source code file, RABBITBIOS.C in the BIOS directory. Change the line
>     #define CLOCK_DOUBLED 1 // set to 1 to double clock if
>                             // Rabbit 2000: crystal <= 12.9024 MHz,
>                             // Rabbit 3000: crystal <= 52.8384 MHz,
>                             // or to 0 to always disable clock doubler
> to read as follows.
>     #define CLOCK_DOUBLED 0
> Save the change using File > Save.

> #### 2.3.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. The means for doing so is through a simple change to the following BIOS line in a way that is similar to the clock doubler described above.

>     #define ENABLE_SPREADER 1  // Set to 0 to disable spectrum spreader.

>     #define SPREADER_SETTING 0 // 0 = normal spreading, 1 = strong spreading

> NOTE | The strong spectrum-spreading setting is not recommended since it may limit the maximum clock speed or the maximum baud rate.

> ### 2.4 Memory

> #### 2.4.1 SRAM

> The RCM3000 is designed to accept 128K to 512K of SRAM packaged in a 32-pin TSOP or sTSOP case.

> #### 2.4.2 Flash EPROM

> The RCM3000 is also designed to accept 256K to 512K of flash EPROM packaged in a 32-pin TSOP or sTSOP case.

> NOTE | Z-World 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 also discouraged. Instead, define a "user block" area to store persistent data. The functions `writeUserBlock` and `readUserBlock` are provided for this.

> A Flash Memory Bank Select jumper configuration option based on 0 W surface-mounted resistors exists at header JP1 on the RCM3000 Series RabbitCore modules. This option, used in conjunction with some configuration macros, allows Dynamic C to compile two different co-resident programs for the upper and lower halves of the 256K flash in such a way that both programs start at logical address 0000. This is useful for applications that require a resident download manager and a separate downloaded program. See Application Note 218, Implementing a Serial Download Manager for a 256K Flash, for details.

> #### 2.4.3 Dynamic C BIOS Source Files

> The Dynamic C BIOS source files handle different standard RAM and flash EPROM sizes automatically.

Z-World http://www.zworld.com Voice: (530) 757-3737 FAX: (530) 757-3792 sales@zworld.com | Rabbit Semiconductor http://www.rabbitsemiconductor.com Voice: (530) 757-8400 FAX: (530) 757-8402 sales@rabbitsemiconductor.com