Rabbit RCM3000 User Manual

Other manuals for RCM3000: User Manual
Manual is about: C-Programmable Module with Ethernet

Summary of RCM3000

  • Page 1

    Rabbitcore rcm3000 c-programmable module with ethernet user’s manual 019–0110 • 070831–h downloaded from elcodis.Com electronic components distributor.

  • Page 2

    Rabbitcore rcm3000 rabbit semiconductor inc. Www.Rabbit.Com rabbitcore rcm3000 user’s manual part number 019-0110 • 070831–h • printed in u.S.A. ©2002–2007 rabbit semiconductor inc. • all rights reserved. Rabbit semiconductor reserves the right to make changes and improvements to its products withou...

  • Page 3

    Rabbitcore rcm3000 rabbit semiconductor inc. Www.Rabbit.Com downloaded from elcodis.Com electronic components distributor.

  • Page 4

    Rabbitcore rcm3000 rabbit semiconductor inc. Www.Rabbit.Com downloaded from elcodis.Com electronic components distributor.

  • Page 5: Able

    User’s manual t able of c ontents chapter 1. Introduction 1 1.1 rcm3000 features ...............................................................................................................................1 1.2 advantages of the rcm3000 ...............................................................

  • Page 6

    Rabbitcore rcm3000 chapter 5. Software reference 29 5.1 more about dynamic c ..................................................................................................................... 29 5.2 dynamic c functions..................................................................................

  • Page 7

    User’s manual c.7 lcd/keypad module function calls ................................................................................................82 c.7.1 lcd/keypad module initialization............................................................................................82 c.7.2 leds..........

  • Page 8

    Rabbitcore rcm3000 downloaded from elcodis.Com electronic components distributor.

  • Page 9: 1.  I

    User’s manual 1 1. I ntroduction the rcm3000 rabbitcore module is designed to be the heart of embedded control systems. The rcm3000 features an inte- grated ethernet port and provides for lan and internet-enabled systems to be built as easily as serial-communication systems. Throughout this manual, ...

  • Page 10

    2 rabbitcore rcm3000 • provision for customer-supplied backup battery via connections on header j2 • 10/100-compatible rj-45 ethernet port with 10base-t interface • 10-bit free-running pwm counter and four width registers • two-channel input capture can be used to time input signals from various por...

  • Page 11

    User’s manual 3 1.2 advantages of the rcm3000 • fast time to market using a fully engineered, “ready to run” microprocessor core. • competitive pricing when compared with the alternative of purchasing and assembling individual components. • easy c-language program development and debugging • utility...

  • Page 12

    4 rabbitcore rcm3000 1.4.2 online documentation the online documentation is installed along with dynamic c, and an icon for the docu- mentation menu is placed on the workstation’s desktop. Double-click this icon to reach the menu. If the icon is missing, use your browser to find and load default.Htm...

  • Page 13: 2.  H

    User’s manual 5 2. H ardware s etup this chapter describes the rcm3000 hardware in more detail, and explains how to set up and use the accompanying prototyping board. Note: this chapter (and this manual) assume that you have the rcm3000 development kit. If you purchased an rcm3000 module by itself, ...

  • Page 14

    6 rabbitcore rcm3000 2.2 hardware connections 2.2.1 attach module to prototyping board turn the rcm3000 module so that the ethernet connector end of the module extends off the prototyping board, as shown in figure 1 below. Align the pins from headers j1 and j2 on the bottom side of the module into h...

  • Page 15

    User’s manual 7 2.2.2 connect programming cable the programming cable connects the rcm3000 module to the pc running dynamic c to download programs and to monitor the module for debugging. Connect the 10-pin connector of the programming cable labeled prog to header j3 on the rcm3000 module as shown i...

  • Page 16

    8 rabbitcore rcm3000 2.2.3 connect power when all other connections have been made, you can connect power to the prototyping board. Connect the wall transformer to jack j11 on the prototyping board as shown in figure 3 below. Figure 3. Power supply connections plug in the wall transformer. The power...

  • Page 17

    User’s manual 9 2.3 run a sample program if you already have dynamic c installed, you are now ready to test your programming connections by running a sample program. If you are using a usb port to connect your computer to the rcm3000 module, choose options > project options and select “use usb to se...

  • Page 18

    10 rabbitcore rcm3000 2.4 where do i go from here? We recommend that you proceed to the next chapter and install dynamic c (if you do not already have it installed), then run the pong.C sample program to verify that the rcm3000 module and the prototyping board are set up and functioning correctly. I...

  • Page 19: 3.  R

    User’s manual 11 3. R unning s ample p rograms to develop and debug programs for the rcm3000 (and for all other rabbit semiconductor hardware), you must install and use dynamic c. 3.1 introduction to help familiarize you with the rcm3000 modules, dynamic c includes several sample programs. Loading, ...

  • Page 20

    12 rabbitcore rcm3000 3.2 sample programs of the many sample programs included with dynamic c, several are specific to the rcm3000. Sample programs illustrating the general operation of the rcm3000, and serial communication are provided in the samples\rcm3000 folder. Each sample pro- gram has commen...

  • Page 21

    User’s manual 13 3.2.1 serial communication the following sample programs can be found in the samples\rcm3000\serial folder. • flowcontrol.C —this program demonstrates hardware flow control by configuring serial port c (pc3/pc2) for cts/rts with serial data coming from txb at 115,200 bps. One charac...

  • Page 22

    14 rabbitcore rcm3000 • switchchar.C —this program demonstrates transmitting and then receiving an ascii string on serial ports b and c. It also displays the serial data received from both ports in the stdio window. To set up the prototyping board, you will need to tie txb and rxc together on the rs...

  • Page 23: 4.  H

    User’s manual 15 4. H ardware r eference chapter 3 describes the hardware components and principal hardware subsystems of the rcm3000. Appendix a, “rcm3000 specifica- tions,” provides complete physical and electrical specifications. Figure 4 shows these rabbit-based subsystems designed into the rcm3...

  • Page 24

    16 rabbitcore rcm3000 4.1 rcm3000 digital inputs and outputs the rcm3000 has 52 parallel i/o lines grouped in seven 8-bit ports available on headers j1 and j2. The 44 bidirectional i/o lines are located on pins pa0–pa7, pb0, pb2–pb7, pd2–pd7, pe0–pe1, pe3–pe7, pf0–pf7, and pg0–pg7. Figure 5 shows th...

  • Page 25

    User’s manual 17 figure 6 shows the use of the rabbit 3000 ports in the rcm3000 modules. Figure 6. Use of rabbit 3000 ports the ports on the rabbit 3000 microprocessor used in the rcm3000 are configurable, and so the factory defaults can be reconfigured. Table 2 lists the rabbit 3000 factory default...

  • Page 26

    18 rabbitcore rcm3000 table 2. Rcm3000 pinout configurations pin pin name default use alternate use rcm3000 use header j 1 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...

  • Page 27

    User’s manual 19 header j 2 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 4 pb3 input/output ia1 /srd external address 1 5 pb4 input/output ia2 sa0 external address 2 6 pb5 input/output ia3 sa1 external addres...

  • Page 28

    20 rabbitcore rcm3000 note: ports pd0 and pe2 are used for the ethernet interface. Locations r38–r43 allow the population of 0 Ω resistors (jumpers) that will be used to enable future options. These locations are currently unused. Head er j 2 20 pg7 input/output rxe 21 pg6 input/output txe 22 pg5 in...

  • Page 29

    User’s manual 21 4.1.1 memory i/o interface the rabbit 3000 address lines (a0–a19) and all the data lines (d0–d7) are routed inter- nally to the onboard flash memory and sram chips. I/0 write (/iowr) and i/0 read (/iord) are available for interfacing to external devices. Parallel port a can also be ...

  • Page 30

    22 rabbitcore rcm3000 4.2 serial communication the rcm3000 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 transce...

  • Page 31

    User’s manual 23 4.2.3 serial programming port the rcm3000 serial programming port is accessed using header j3 or over an ethernet connection via the rabbitlink eg2110. The programming port uses the rabbit 3000’s serial port a for communication. Dynamic c uses the programming port to download and de...

  • Page 32

    24 rabbitcore rcm3000 4.3 serial programming cable the programming cable is used to connect the serial programming port of the rcm3000 to a pc serial com port. The programming cable converts the rs-232 voltage levels used by the pc serial port to the cmos voltage levels used by the rabbit 3000. When...

  • Page 33

    User’s manual 25 figure 9. Switching between program mode and run mode a program “runs” in either mode, but can only be downloaded and debugged when the rcm3000 is in the program mode. Refer to the rabbit 3000 microprocessor user’s manual for more information on the pro- gramming port and the progra...

  • Page 34

    26 rabbitcore rcm3000 4.4 other hardware 4.4.1 clock doubler the rcm3000 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 rcm3000 is ...

  • Page 35

    User’s manual 27 4.5 memory 4.5.1 sram the rcm3000 can accept 128k to 512k of sram at u4. 4.5.2 flash eprom the rcm3000 can accept 256k to 512k of flash eprom. Note: rabbit semiconductor recommends that any customer applications should not be constrained by the sector size of the flash eprom since i...

  • Page 36

    28 rabbitcore rcm3000 downloaded from elcodis.Com electronic components distributor.

  • Page 37: 5.  S

    User’s manual 29 5. S oftware r eference dynamic c is an integrated development system for writing embedded software. It runs on an ibm-compatible pc and is designed for use with rabbit semiconductor controllers and other controllers based on the rabbit microprocessor. Chapter 4 provides the librari...

  • Page 38

    30 rabbitcore rcm3000 developing software with dynamic c is simple. Users can write, compile, and test c and assembly code without leaving the dynamic c development environment. Debugging occurs while the application runs on the target. Alternatively, users can compile a program to an image file for...

  • Page 39

    User’s manual 31 5.2 dynamic c functions 5.2.1 digital i/o the rcm3000 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 e...

  • Page 40

    32 rabbitcore rcm3000 5.2.4 prototyping board functions the function described in this section is for use with the prototyping board. The source code is in the rcm3000.Lib library in the dynamic c samples\rcm3000 folder if you need to modify it for your own board design. Other generic functions appl...

  • Page 41

    User’s manual 33 5.3 upgrading dynamic c dynamic c patches that focus on bug fixes are available from time to time. Check the web sites www.Rabbit.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 (fo...

  • Page 42

    34 rabbitcore rcm3000 downloaded from elcodis.Com electronic components distributor.

  • Page 43: 6.  U

    User’s manual 35 6. U sing the tcp/ip f eatures 6.1 tcp/ip connections programming and development can be done with the rcm3000 rabbitcore modules without con- necting the ethernet port to a network. However, if you will be running the sample programs that use the ethernet capability or will be doin...

  • Page 44

    36 rabbitcore rcm3000 the following options require more care in address selection and testing actions, as conflicts with other users, servers and systems can occur: • lan — connect the rcm3000’s ethernet port to an existing lan, preferably one to which the development pc is already connected. You w...

  • Page 45

    User’s manual 37 6.2 tcp/ip primer on ip addresses obtaining ip addresses to interact over an existing, operating, network can involve a num- ber of complications, and must usually be done with cooperation from your isp and/or network systems administrator. For this reason, it is suggested that the ...

  • Page 46

    38 rabbitcore rcm3000 if your system administrator can give you an ethernet cable along with its ip address, the netmask and the gateway address, then you may be able to run the sample programs with- out having to setup a direct connection between your computer and the rcm3000 board. You will also n...

  • Page 47

    User’s manual 39 6.3 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 sh...

  • Page 48

    40 rabbitcore rcm3000 6.4 how ip addresses are used the actual hardware connection via an ethernet uses ethernet adapter addresses (also called mac addresses). These are 48-bit addresses and are unique for every ethernet adapter manufactured. In order to send a packet to another computer, given the ...

  • Page 49

    User’s manual 41 6.5 dynamically assigned internet addresses in many instances, there are no fixed ip addresses. This is the case when, for example, you are assigned an ip address dynamically by your dial-up internet service provider (isp) or when you have a device that provides your ip addresses us...

  • Page 50

    42 rabbitcore rcm3000 6.6 placing your device on the network in many corporate settings, users are isolated from the internet by a firewall and/or a proxy server. These devices attempt to secure the company from unauthorized network traffic, and usually work by disallowing traffic that did not origi...

  • Page 51

    User’s manual 43 6.7 running tcp/ip sample programs we have provided a number of sample programs demonstrating various uses of tcp/ip for networking embedded systems. These programs require you to connect your pc and the rcm3000 board together on the same network. This network can be a local private...

  • Page 52

    44 rabbitcore rcm3000 6.8 how to set ip addresses in the sample programs with the introduction of dynamic c 7.30 we have taken steps to make it easier to run many of our sample programs. Instead of the my_ip_address and other macros, you will see a tcpconfig macro. This macro tells dynamic c to sele...

  • Page 53

    User’s manual 45 6.9 how to set up your computer’s ip address for direct connect when your computer is connected directly to the rcm3000 board via an ethernet connec- tion, you need to assign an ip address to your computer. To assign the pc the address 10.10.6.101 with the netmask 255.255.255.0 , do...

  • Page 54

    46 rabbitcore rcm3000 6.10 run the pingme.C sample program connect the crossover cable from your computer’s ethernet port to the rcm3000 board’s rj-45 ethernet connector. Open this sample program from the samples\tcpip\icmp folder, compile the program, and start it running under dynamic c. When the ...

  • Page 55

    User’s manual 47 • enet_menu.C —this program demonstrates how to implement a menu system using a highlight bar on a graphic lcd display and to communicate it to another single-board computer via ethernet. Use enet_ad.C to program the other single-board computer with analog inputs and outputs. • mbox...

  • Page 56

    48 rabbitcore rcm3000 downloaded from elcodis.Com electronic components distributor.

  • Page 57: Ppendix

    User’s manual 49 a ppendix a. Rcm3000 s pecifications appendix a provides the specifications for the rcm3000, and describes the conformal coating. Downloaded from elcodis.Com electronic components distributor.

  • Page 58

    50 rabbitcore rcm3000 a.1 electrical and mechanical characteristics figure a-1 shows the mechanical dimensions for the rcm3000. Figure a-1. Rcm3000 dimensions note: all measurements are in inches followed by millimeters enclosed in parentheses. All dimensions have a manufacturing tolerance of ±0.01"...

  • Page 59

    User’s manual 51 it is recommended that you allow for an “exclusion zone” of 0.04" (1 mm) around the rcm3000 in all directions when the rcm3000 is incorporated into an assembly that includes other printed circuit boards. This “exclusion zone” that you keep free of other components and boards will al...

  • Page 60

    52 rabbitcore rcm3000 table a-1 lists the electrical, mechanical, and environmental specifications for the rcm3000. Table a-1. Rabbitcore rcm3000 specifications feature rcm3000 rcm3010 microprocessor rabbit 3000 at 29.4 mhz emi reduction spectrum spreader for reduced emi (radiated emissions) etherne...

  • Page 61

    User’s manual 53 a.1.1 headers the rcm3000 uses headers at j1 and j2 for physical connection to other boards. J1 and j2 are 2 × 17 smt headers with a 2 mm pin spacing. J3, the programming port, is a 2 × 5 header with a 2 mm pin spacing. Figure a-3 shows the layout of another board for the rcm3000 to...

  • Page 62

    54 rabbitcore rcm3000 a.2 bus loading you must pay careful attention to bus loading when designing an interface to the rcm3000. This section provides bus loading information for external devices. Table a-2 lists the capacitance for the various rcm3000 i/o ports. Table a-3 lists the external capaciti...

  • Page 63

    User’s manual 55 figure a-4 shows a typical timing diagram for the rabbit 3000 microprocessor external i/o read and write cycles. Figure a-4. External i/o read and write cycles—no extra wait states note: /iocsx can be programmed to be active low (default) or active high. Tadr tadr memory read (no wa...

  • Page 64

    56 rabbitcore rcm3000 table a-4 lists the delays in gross memory access time for v dd = 3.3 v. The measurements are taken at the 50% points under the following conditions. • t = -40°c to 85°c, v = v dd ±10% • internal clock to nonloaded clk pin delay ≤ 1 ns @ 85°c/3.0 v the clock to address output d...

  • Page 65

    User’s manual 57 a.3 rabbit 3000 dc characteristics table a-5 outlines the dc characteristics for the rabbit 3000 at 3.3 v over the recom- mended operating temperature range from t a = –55°c to +125°c, v dd = 3.0 v to 3.6 v. Note that while the rabbit 3000 is rated to operate over a voltage range fr...

  • Page 66

    58 rabbitcore rcm3000 a.4 i/o buffer sourcing and sinking limit unless otherwise specified, the rabbit 3000 i/o buffers are capable of sourcing and sink- ing 6.8 ma of current per pin at full ac switching speed. Full ac switching assumes a 29.4 mhz cpu clock and capacitive loading on address and dat...

  • Page 67

    User’s manual 59 a.5 conformal coating the areas around the 32 khz real-time clock crystal oscillator has had the dow corning silicone-based 1-2620 conformal coating applied. The conformally coated area is shown in figure a-5. The conformal coating protects these high-impedance circuits from the eff...

  • Page 68

    60 rabbitcore rcm3000 a.6 jumper configurations figure a-6 shows the header locations used to configure the various rcm3000 options via jumpers. Figure a-6. Location of rcm3000 configurable positions table a-7 lists the configuration options. Note: the jumper connections are made using 0 Ω surface-m...

  • Page 69: Ppendix

    User’s manual 61 a ppendix b. P rototyping b oard appendix b describes the features and accessories of the proto- typing board, and explains the use of the prototyping board to demonstrate the rcm3000 and to build prototypes of your own circuits. Downloaded from elcodis.Com electronic components dis...

  • Page 70

    62 rabbitcore rcm3000 b.1 introduction the prototyping board included in the development kit makes it easy to connect an rcm3000 module to a power supply and a pc workstation for development. It also pro- vides some basic i/o peripherals (switches and leds), as well as a prototyping area for more ad...

  • Page 71

    User’s manual 63 b.1.1 prototyping board features • power connection —a power-supply jack and a 3-pin header are provided for con- nection to the power supply. Note that the 3-pin header is symmetrical, with both outer pins connected to ground and the center pin connected to the raw v+ input. The ca...

  • Page 72

    64 rabbitcore rcm3000 • rs-232 —two 3-wire or one 5-wire rs-232 serial port are available on the prototyping board. Refer to the prototyping board schematic (090-0137) for additional details. A 10-pin 0.1-inch spacing header strip is installed at j5 to permit connection of a ribbon cable leading to ...

  • Page 73

    User’s manual 65 b.2 mechanical dimensions and layout figure b-2 shows the mechanical dimensions and layout for the prototyping board. Figure b-2. Rcm30/31/32xx prototyping board dimensions note: all measurements are in inches followed by millimeters enclosed in parentheses. All dimensions have a ma...

  • Page 74

    66 rabbitcore rcm3000 table b-1 lists the electrical, mechanical, and environmental specifications for the proto- typing board. B.3 power supply the rcm3000 requires a regulated 3.3 v ± 0.15 v dc power source to operate. Depend- ing on the amount of current required by the application, different reg...

  • Page 75

    User’s manual 67 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 rcm3000 right out of the box without any modifications to either board. There are no...

  • Page 76

    68 rabbitcore rcm3000 b.4.1 adding other components there are pads that can be used for surface-mount prototyping involving soic devices. There is provision for seven 16-pin devices (six on one side, one on the other side). There are 10 sets of pads that can be used for 3- to 6-pin sot23 packages. T...

  • Page 77

    User’s manual 69 b.4.3 other prototyping board modules and options with the rcm3000 plugged into the master slots, it has full access to the rs-232 trans- ceiver, and can act as the “master” relative to another rabbitcore rcm3000, rcm3100, or rcm3200 plugged into the slave slots, which acts as the “...

  • Page 78

    70 rabbitcore rcm3000 b.5 use of rabbit 3000 parallel ports table b-2 lists the rabbit 3000 parallel ports and their use for the rcm30/31/32xx prototyping board. Table b-2. Rcm30/31/32xx prototyping board use of rabbit 3000 parallel ports port i/o use initial state pa0–pa7 output configurable extern...

  • Page 79

    User’s manual 71 pf0–pf7 input reserved for future use pulled up on prototyping board pg0 input switch s3 (normally open) high pg1 input switch s2 (normally open) high pg2 output txf irda serial port f pulled down pg3 input rxf irda driven by irda driver pg4 input irda md1 pulled up on prototyping b...

  • Page 80

    72 rabbitcore rcm3000 downloaded from elcodis.Com electronic components distributor.

  • Page 81: Ppendix

    User’s manual 73 a ppendix c. Lcd/k eypad m odule an optional lcd/keypad is available for the prototyping board. Appendix c describes the lcd/keypad and provides the soft- ware function calls to make full use of the lcd/keypad. C.1 specifications two optional lcd/keypad modules—with or without a pan...

  • Page 82

    74 rabbitcore rcm3000 mounting hardware and a 60 cm (24") extension cable are also available for the lcd/key- pad module through your sales representative or authorized distributor. Table c-1 lists the electrical, mechanical, and environmental specifications for the lcd/ keypad module. Table c-1. Lc...

  • Page 83

    User’s manual 75 c.2 contrast adjustments for all boards starting in 2005, lcd/keypad modules were factory-configured to optimize their contrast based on the voltage of the system they would be used in. Be sure to select a kdu5v lcd/keypad module for use with the rcm3000/3100/3200 prototyping board ...

  • Page 84

    76 rabbitcore rcm3000 c.3 keypad labeling the keypad may be labeled according to your needs. A template is provided in figure c-4 to allow you to design your own keypad label insert. Figure c-4. Keypad template to replace the keypad legend, remove the old legend and insert your new legend prepared a...

  • Page 85

    User’s manual 77 c.4 header pinouts figure c-6 shows the pinouts for the lcd/keypad module. Figure c-6. Lcd/keypad module pinouts c.4.1 i/o address assignments the lcd and keypad on the lcd/keypad module are addressed by the /cs strobe as explained in table c-2. Table c-2. Lcd/keypad module address ...

  • Page 86

    78 rabbitcore rcm3000 c.5 mounting lcd/keypad module on the prototyping board install the lcd/keypad module on header sockets j7, j8, and j10 of the prototyping board as shown in figure c-7. Be careful to align the pins over the headers, and do not bend them as you press down to mate the lcd/keypad ...

  • Page 87: Cutout

    User’s manual 79 c.6 bezel-mount installation this section describes and illustrates how to bezel-mount the lcd/keypad module. Fol- low these steps for bezel-mount installation. 1. Cut mounting holes in the mounting panel in accordance with the recommended dimen- sions in figure c-8, then use the be...

  • Page 88

    80 rabbitcore rcm3000 3. Fasten the unit with the four 4-40 screws and washers included with the lcd/keypad module. If your panel is thick, use a 4-40 screw that is approximately 3/16" (5 mm) longer than the thickness of the panel. Figure c-9. Lcd/keypad module mounted in panel (rear view) carefully...

  • Page 89

    User’s manual 81 c.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 rcm30/31/ 32xx prototyping board, and is connected via a ribbon cable as shown in figure c-10. Figure c-10. Connecting lcd/keypad module to rcm30/...

  • Page 90

    82 rabbitcore rcm3000 c.7 lcd/keypad module function calls when mounted on the prototyping board, the lcd/keypad module uses the auxiliary i/o bus on the rabbit 3000 chip. Remember to add the line #define porta_aux_io to the beginning of any programs using the auxiliary i/o bus. C.7.1 lcd/keypad mod...

  • Page 91

    User’s manual 83 c.7.3 lcd display the functions used to control the lcd display are contained in the graphic.Lib library located in the dynamic c displays\graphic library directory. Initializes the display devices, clears the screen. Return value none. See also gldisponoff, glbacklight, glsetcontra...

  • Page 92

    84 rabbitcore rcm3000 sets display contrast. Note: this function is not used with the lcd/keypad module since the support circuits are not available on the lcd/keypad module. Fills the lcd display screen with a pattern. Parameter the screen will be set to all black if pattern is 0xff, all white if p...

  • Page 93

    User’s manual 85 plots the outline of a polygon in the lcd page buffer, and on the lcd if the buffer is unlocked. Any portion of the polygon that is outside the lcd display area will be clipped. If fewer than 3 vertices are specified, the function will return without doing anything. Parameters n is ...

  • Page 94

    86 rabbitcore rcm3000 fills a polygon in the lcd page buffer and on the lcd screen if the buffer is unlocked. Any portion of the polygon that is outside the lcd display area will be clipped. If fewer than 3 vertices are specified, the function will return without doing anything. Parameters n is the ...

  • Page 95

    User’s manual 87 draws a filled circle in the lcd page buffer and on the lcd if the buffer is unlocked. Any portion of the circle that is outside the lcd display area will be clipped. Parameters xc is the x coordinate of the center of the circle. Yc is the y coordinate of the center of the circle. R...

  • Page 96

    88 rabbitcore rcm3000 puts an entry from the font table to the page buffer and on the lcd if the buffer is unlocked. Each font character's bitmap is column major and byte-aligned. Any portion of the bitmap character that is outside the lcd display area will be clipped. Parameters x is the x coordina...

  • Page 97

    User’s manual 89 provides an interface between the stdio 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 ...

  • Page 98

    90 rabbitcore rcm3000 increments lcd screen locking counter. Graphic calls are recorded in the lcd memory buffer and are not transferred to the lcd if the counter is non-zero. Note: glbufflock() and glbuffunlock() can be nested up to a level of 255, but be sure to balance the calls. It is not a requ...

  • Page 99

    User’s manual 91 gets the current method (or color) of pixels drawn by subsequent graphic calls. Return value the current brush type. See also glsetbrushtype 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...

  • Page 100

    92 rabbitcore rcm3000 scrolls byte-aligned window left one pixel, right column is filled by current pixel type (color). Parameters left is the top left corner of bitmap, must be evenly divisible by 8, otherwise truncates. Top is the top left corner of the bitmap. Cols is the number of columns in the...

  • Page 101

    User’s manual 93 scrolls byte-aligned window down one pixel, top column is filled by current pixel type (color). Parameters left is the top left corner of bitmap, must be evenly divisible by 8, otherwise truncates. Top is the top left corner of the bitmap. Cols is the number of columns in the window...

  • Page 102

    94 rabbitcore rcm3000 scrolls up or down, within the defined window by x number of pixels. The opposite edge of the scrolled window will be filled in with white pixels. The window must be byte-aligned. Parameters will be verified for the following: 1. The left and cols parameters will be verified th...

  • Page 103

    User’s manual 95 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 w...

  • Page 104

    96 rabbitcore rcm3000 sets the cursor location on the display of where to display the next character. The display location is based on the height and width of the character to be displayed. Note: execute the textwindowframe function before using this function. Parameters *window is a pointer to a fo...

  • Page 105

    User’s manual 97 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 '' are recognized. All other escape sequences will be skipped over; for example, '\b' and 't' will print if they exist in the fon...

  • Page 106

    98 rabbitcore rcm3000 c.7.4 keypad the functions used to control the keypad are contained in the dynamic c lib\keypads\ keypad7.Lib library. Initializes keypad process return value none. See also brdinit assigns each key with key press and release codes, and hold and repeat ticks for auto repeat and...

  • Page 107

    User’s manual 99 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 scans and processes keypad data for key assignment, debouncing, press and release, and repeat. Note: this function is also able to...

  • Page 108

    100 rabbitcore rcm3000 configures the physical layout of the keypad with the desired ascii return key codes. Keypad physical mapping 1 × 7 where 'e' represents the enter key 'd' represents down scroll 'u' represents up scroll 'r' represents right scroll 'l' represents left scroll example: do the fol...

  • Page 109

    User’s manual 101 c.8 sample programs sample programs illustrating the use of the lcd/keypad module with the prototyping board are provided in the samples\rcm3000 directory. These sample programs use the auxiliary i/o bus on the rabbit 3000 chip, and so the #define porta_aux_io line is already inclu...

  • Page 110

    102 rabbitcore rcm3000 downloaded from elcodis.Com electronic components distributor.

  • Page 111: Ppendix

    User’s manual 103 a ppendix d. P ower s upply appendix d provides information on the current requirements of the rcm3000, and includes some background on the chip select circuit used in power management. D.1 power supplies the rcm3000 requires a regulated 3.3 v ± 0.15 v dc power source. The rabbitco...

  • Page 112

    104 rabbitcore rcm3000 the drain on the battery by the rcm3000 is typically 5 µa when no other power is sup- plied. If a 165 ma·h battery is used, the battery can last more than 3 years: the actual life in your application will depend on the current drawn by components not on the rcm3000 and the sto...

  • Page 113: Ppendix

    User’s manual 105 a ppendix e. M otor c ontrol f eatures the rcm30/31/32xx prototyping board has a header at j6 for a motor control connection. While rabbit semiconductor does not have the drivers or a compatible stepper motor control board at this time, this appendix provides additional information...

  • Page 114

    106 rabbitcore rcm3000 e.2 header j6 the connector is a 2 × 5, 0.1" pitch header suitable for connecting to an idc receptacle with the following pin allocations. All eight parallel port f lines are pulled up internally to +3.3 v via 100 k Ω resistors. When used as outputs, the port pins will sink up...

  • Page 115

    User’s manual 107 e.3 using parallel port f parallel port f is a byte-wide port with each bit programmable for data direction and drive. These are simple inputs and outputs controlled and reported in the port f data register. As outputs, the bits of the port are buffered, with the data written to th...

  • Page 116

    108 rabbitcore rcm3000 table e-2. Parallel port f registers register name mnemonic i/o address r/w reset value port f data register pfdr 00111000 (0x38) r/w xxxxxxxx bits value description 0:7 read current state of pins write port buffer. Value transferred to o/p register on next rising edge of tran...

  • Page 117

    User’s manual 109 port f data direction register pfddr 00111111 (0x3f) w 00000000 bits value description 0:7 0 corresponding port bit is an input 1 corresponding port bit is an output table e-2. Parallel port f registers (continued) register name mnemonic i/o address r/w reset value downloaded from ...

  • Page 118

    110 rabbitcore rcm3000 e.4 pwm outputs the pulse-width modulator consists of a 10-bit free-running counter and four width regis- ters. Each pwm output is high for n + 1 counts out of the 1024-clock count cycle, where n is the value held in the width register. The pwm output high time can optionally ...

  • Page 119

    User’s manual 111 e.5 pwm registers there are no default values on reset for any of the pwm registers. Table e-4. Pwm registers pwm lsbs register address pwl0r 10001000 (0x88) pwl1r 10001010 (0x8a) pwl2r 10001100 (0x8c) pwl3r 10001110 (0x8e) bit(s) value description 7:6 write the least significant t...

  • Page 120

    112 rabbitcore rcm3000 e.6 quadrature decoder the two-channel quadrature decoder accepts inputs via parallel port f from two external optical incremental encoder modules. Each channel of the quadrature decoder accepts an in-phase (i) and a quadrature-phase (q) signal, and provides 8-bit counters to ...

  • Page 121

    User’s manual 113 the quadrature decoder generates an interrupt when the counter increments from 0x00 to 0x01 or when the counter decrements from 0x00 to 0xff. Note that the status bits in the qdcsr are set coincident with the interrupt, and the interrupt (and status bits) are cleared by reading the...

  • Page 122

    114 rabbitcore rcm3000 quad decode control register qdcr address = 10010001 (0x91) bit value description 7:6 0x disable quadrature decoder 2 inputs. Writing a new value to these bits will not cause quadrature decoder 2 to increment or decrement. 10 quadrature decoder 2 inputs from port f bits 3 and ...

  • Page 123: Ndex

    User’s manual 115 i ndex a additional information getting started manual ....... 3 online documentation .......... 4 auxiliary i/o bus ................... 21 software ................. 21, 31, 82 b battery backup battery life ....................... 104 external battery connec- tions ..................

  • Page 124

    116 rabbitcore rcm3000 l lcd/keypad module bezel-mount installation ....79 dimensions .........................73 function calls dispinit ...........................82 header pinout .....................77 i/o address assignments ....77 keypad function calls keyconfig ...................98 keyget .....

  • Page 125

    User’s manual 117 s sample programs ................... 12 getting to know the rcm3000 controlled.C ........ 12 flashled1.C ............ 12 flashled2.C ............ 12 ir_demo.C ................. 12 toggleswitch.C .... 12 how to run tcp/ip sample programs ................. 43, 44 how to set ip addre...

  • Page 126

    118 rabbitcore rcm3000 downloaded from elcodis.Com electronic components distributor.

  • Page 127: Chematics

    User’s manual 119 s chematics 090-0136 rcm3000 schematic www.Rabbit.Com/documentation/schemat/090-0136.Pdf 090-0137 rcm30/31/32xx prototyping board schematic www.Rabbit.Com/documentation/schemat/090-0137.Pdf 090-0156 lcd/keypad module schematic www.Rabbit.Com/documentation/schemat/090-0156.Pdf 090-0...

  • Page 128

    Downloaded from elcodis.Com electronic components distributor.