RabbitCore RCM2300 User's Manual

> ## 2. Hardware Reference

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

> ### 2.1 RCM2300 Digital Inputs and Outputs

> Figure 1 shows the subsystems designed into the RCM2300.

> Figure 1. Rabbit Subsystems

> The RCM2300 modules have two 26-pin headers to which cables can be connected, or which can be plugged into matching sockets on a production device. The pinouts for these connectors are shown in Figure 2 below.

> Figure 2. RCM2300 I/O Pinout

> Fifteen additional connection points are available along one edge of the RCM2300 board. These connection points are 0.030" diameter holes spaced 0.05" apart, and are shown in Figure 3.

> Figure 3. Additional RCM2300 Connection Points

> The remaining discussion is focused on the I/O points available on headers J4 and J5 because it is anticipated that most users will not use the through-hole connection points because of their reduced convenience.

> Table 1 lists the pinout configurations on headers J4 and J5. The ports on the Rabbit 2000 microprocessor used in the RCM2300 are configurable, and so the factory defaults can be reconfigured. Table 1 lists the factory defaults and the alternate configurations.

> Table 1. RabbitCore RCM2300 Pinout Configurations
> Pin | Pin Name | Default Use | Alternate Use | Notes
> Header J4 | 1 | GND |  |  |
> 2 | VCC |  |  |
> 3 | PC0 | Output | TXD |
> 4 | PC1 | Input | RXD |
> 5 | PC2 | Output | TXC |
> 6 | PC3 | Input | RXC |
> 7 | PC6 | Output | TXA | Is also connected to programming port used to program/debug
> 8 | PC7 | Input | RXA
> 9 | PE2 | Bidirectional I/O | I/O control |
> 10 | PD3 | Bitwise or parallel programmable I/O |  |
> 11 | PD4 | ATXB output |
> 12 | PD5 | ARXB input |
> 13 | /IORD | Input (I/O read strobe) |  |
> 14 | /IOWR | Output (I/O write strobe) |  |
> 15 | PE0 | Bitwise or parallel programmable I/O | I0 control or INT0A input |
> 16 | PE1 | I1 control or INT1A input |
> 17 | SMODE1 | Startup mode bit input | Input | Can only be used as general inputs after the startup mode op-code has been read following boot-up
> 18 | SMODE0 | Startup mode bit input | Input
> 19 | PE4 | Bitwise or parallel programmable I/O | I4 control or INT0B input |
> 20 | PE5 | I5 control or INT1B input |
> 21 | STATUS | Low on first op-code fetch of instruction | Output | Accessed by addressing Global Output Control Register
> 22 | PE7 | Bitwise or parallel programmable I/O | I7 control or slave port chip select /SCS |
> 23-26 | A[3:0] |  |  | Rabbit 2000 address bus
> Header J5 | 1-8 | PA[0:7] | Bytewide programmable parallel I/O | Slave port data bus SD0-SD7 |
> 9 | /RESET | Reset output | Reset input | This weak output can be driven externally
> 10 | PB0 | Input | Serial port clock CLKB input or output |
> 11 | PB2 | Input | Slave port write /SWR |
> 12 | PB3 | Input | Slave port read /SRD |
> 13 | PB4 | Input | SA0 | Slave port address lines
> 14 | PB5 | Input | SA1
> 15 | PB7 | Output | Slave port attention line /SLAVEATTN |
> 16-23 | D[7:0] | Input/Output |  | Rabbit 2000 data bus
> 24 | VBAT | 3 V battery input |  |
> 25 | VCC |  |  |
> 26 | GND |  |  |

> #### 2.1.1 Dedicated Inputs

> PB0 is a general CMOS input when the Rabbit 2000 is either not using Serial Port B or is using Serial Port B in an asynchronous mode. Four other general CMOS input-only pins are located on PB2-PB5. These pins can also be used for the slave port in master/slave communication between two processors. PB2 and PB3 are slave write and slave read strobes, while PB4 and PB5 serve as slave address lines SA0 and SA1, and are used to access the slave registers. PC1, PC3, and PC7 are general CMOS inputs only. These pins can instead be selectively enabled to serve as the serial data inputs for Serial Ports D, C, and A.

> SMODE0 and SMODE1 are read at start-up, and set the mode whereby instructions are fetched. Thereafter the user may use and read these pins as inputs by reading the Slave Port Control Register.

> NOTE | Exercise care so that the SMODE0 and SMODE1 pins revert to the correct startup code when a reset occurs.

> #### 2.1.2 Dedicated Outputs

> One of the general CMOS output-only pins is located on PB7. PB7 can also be used with the slave port as the /SLAVEATTN output. This configuration signifies that the slave is requesting attention from the master. PC0, PC2, and PC6 are also output-only pins; alternatively, they can serve as the serial data outputs for Serial Ports D, C, and A.

> The STATUS pin goes low by default after the first op-code fetch of an instruction cycle. The STATUS pin may be programmed as a separate output by changing the Rabbit 2000's Global Output Control Register.

> #### 2.1.3 Memory I/O Interface

> Four of the Rabbit 2000 address lines (A0-A3) and all the data lines (D0-D7) are available. I/0 write (/IOWR) and I/0 read (/IORD) are also available for interfacing to external devices.

> #### 2.1.4 Other Inputs and Outputs

> As shown in Table 1, pins PA0-PA7 can be used to allow the Rabbit 2000 to be a slave to another processor. The slave port also uses PB2-PB5, PB7, and PE7.

> PE0, PE1, PE4, and PE5 can be used for up to two external interrupts. PB0 can be used to access the clock on Serial Port B of the Rabbit microprocessor. PD4 can be programmed to be a serial output for Serial Port B. PD5 can be used as a serial input by Serial Port B.

> ### 2.2 Serial Communication

> The RCM2300 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 RCM2300 is mounted on. For example, the Prototyping Board supports a standard RS-232 transceiver chip.

> #### 2.2.1 Serial Ports

> There are four serial ports designated as Serial Ports A, B, C, and D. All four serial ports can sustain their operation in an asynchronous mode up to the baud rate of the system clock divided by 64. The maximum burst rate for an asynchronous byte can be as high as the system clock divided by 32. 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 and B 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 2000 provides the clock, the sustained baud rate can be up to the system clock frequency divided by 8, or 2.76 Mbps for a 22.1 MHz clock speed. The maximum burst rate for a byte can be as high as the system clock divided by 4.

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

> #### 2.2.2 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 RCM2300 has a 10-pin program header labeled J1. The Rabbit 2000 startup-mode pins (SMODE0, SMODE1) are presented to the programming port so that an externally connected device can force the RCM2300 to start up in an external bootstrap mode. The Rabbit 2000 Microprocessor User's Manual provides more information about the bootstrap mode.

> The programming port is used to start the RCM2300 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 RCM2300 can be reset from the programming port via the /RES_IN line.

> The Rabbit 2000 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.

> All the programming port pins, except the Serial Port A clock line, are duplicated on the 26-pin headers.

> #### 2.2.2.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 for use 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 2000 microprocessor.

> The status pin may also be used as a general CMOS output.

> See Appendix C, "Programming Cable," for more information.

> ### 2.3 Other Hardware

> #### 2.3.1 Clock Doubler

> The RCM2300 takes advantage of the Rabbit 2000 microprocessor's internal clock doubler. A built-in clock doubler allows half-frequency crystals to be used to reduce radiated emissions. The 22.1 MHz frequency is generated using an 11.0592 MHz crystal. The clock doubler is disabled automatically in the BIOS for crystals with a frequency above 12.9 MHz.

> The clock doubler may be disabled if 22.1 MHz clock speeds are not required. Disabling the Rabbit 2000 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.

> 1. Open the BIOS source code file, RABBITBIOS.C in the BIOS directory.
> 2. Change the line

>     #define CLOCK_DOUBLED 1 // set to 1 to double the clock if XTAL<=12.9MHz,

> to read as follows.

>     #define CLOCK_DOUBLED 0 // set to 1 to double the clock if XTAL<=12.9MHz,

> 1. Save the change using File > Save.

> #### 2.3.2 Backup Battery Circuit

> The RCM2300 does not have a battery, but there is provision for a customer-supplied battery to back up SRAM and keep the internal Rabbit 2000 real-time clock running.

> Header J5, shown in Figure 4, allows access to the external battery. This header makes it possible to connect an external 3 V lithium battery. This allows the internal Rabbit 2000 real-time clock to run and allows the SRAM to retain data when the RCM2300 is powered down.

> Figure 4. External Battery Connections
> at Header J5

> A lithium battery with a nominal voltage of 3 V and a minimum capacity of 950 mA·h is recommended. A lithium battery is needed because of its nearly constant nominal voltage over most of its life.

> The drain on the battery by the RCM2300 is typically 16 µA when no other power is supplied. If a 950 mA·h battery is used, the battery can last more than 6 years:

> The actual life in your application will depend on the current drawn by components not on the RCM2300 and the storage capacity of the battery. Note that the shelf life of a lithium battery is ultimately 10 years.

> The battery-backup circuit serves two purposes:

> - It reduces the battery voltage to the real-time clock, thereby reducing the current consumed by the real-time clock and lengthening the battery life.
> - It ensures that current can flow only out of the battery to prevent charging the battery.

> Figure 5 shows the RCM2300 battery backup circuit.

> Figure 5. RabbitCore RCM2300 Battery Backup Circuit

> It is important not to charge a lithium battery with any appreciable current. Resistor R5, shown in Figure 5, prevents any catastrophic failure of Q1 by limiting current to the customer-supplied battery. VRAM and Vcc are nearly equal (difference <100 mV, typically 10 mV) when power is supplied to the RCM2300.

> Resistors R3 and R4 make up a voltage divider that biases the base of Q1 to about 0.9 × VBAT. VBE on Q1 is about 0.55 V. Therefore, VRAM is about 0.9 × VBAT - 0.55 V, or about 2.15 V for a 3 V battery.

> #### 2.3.2.1 Power to VRAM Switch

> The VRAM switch, shown in Figure 6, allows a customer-supplied external battery to provide power when the external power goes off. The switch provides an isolation between Vcc and the battery when Vcc goes low. This prevents the Vcc line from draining the battery.

> Figure 6. VRAM Switch

> Transistor Q5 is needed to ensure a very small voltage drop between Vcc and VRAM (difference <100 mV, typically 10 mV) so that the processor lines powered by Vcc will not have a significantly different voltage than VRAM.

> When the RCM2300 is not resetting (pin 2 on U1 is high), the /RESET line will be high. This turns on Q2, causing its collector to go low. This turns on Q5, allowing VRAM to nearly equal Vcc.

> When the RCM2300 is resetting, the /RESET line will go low. This turns off Q2 and Q5, providing an isolation between Vcc and VRAM.

> The battery backup circuit keeps VRAM from dropping below 2 V.

> #### 2.3.2.2 Reset Generator

> The RCM2300 uses a reset generator, U1, to reset the Rabbit 2000 microprocessor when the voltage drops below the voltage necessary for reliable operation. The reset occurs between 4.50 V and 4.75 V, typically 4.63 V.

> The RCM2300 has a reset output, pin 9 on header J5. The reset output may be overdriven with at least 5 mA, essentially turning pin 9 on header J5 into a reset input, which may be used to reset the RCM2300.

> ### 2.4 Programming Cable

> The RCM2300 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.

> The DIAG connector of the programming cable may be used on header J1 of the RCM2300 with the board operating in the run mode. This allows the programming port to be used as an application port. See Appendix C, "Programming Cable," for more information.

> Figure 7. Switching Between Program Mode and Run Mode

> #### 2.4.1 Changing from Program Mode to Run Mode

> 1. Disconnect the programming cable from header J1 of the RCM2300.
> 2. Reset the RCM2300. You may do this as explained in Figure 7.

> The RCM2300 is now ready to operate in the run mode.

> #### 2.4.2 Changing from Run Mode to Program Mode

> 1. Attach the programming cable to header J1 on the RCM2300.
> 2. Reset the RCM2300 series. You may do this as explained in Figure 7.

> The RCM2300 is now ready to operate in the program mode.

Rabbit Semiconductor http://www.rabbitsemiconductor.com Voice: (530) 757-8400 FAX: (530) 757-8402 sales@rabbitsemiconductor.com