101-1006 Rabbit Semiconductor, 101-1006 Datasheet

no-image

101-1006

Manufacturer Part Number
101-1006
Description
MODULE POWERCORE FLEX 3800
Manufacturer
Rabbit Semiconductor
Datasheet

Specifications of 101-1006

Module/board Type
MPU Core Module
For Use With/related Products
RCM3800
Lead Free Status / RoHS Status
Contains lead / RoHS non-compliant
PowerCore FLEX™
C-Programmable PowerCore Module
with Mass Storage and Ethernet
User’s Manual
019–0141 • 070831–E

Related parts for 101-1006

101-1006 Summary of contents

Page 1

PowerCore FLEX™ C-Programmable PowerCore Module with Mass Storage and Ethernet User’s Manual 019–0141 • 070831–E ...

Page 2

... Rabbit and Dynamic C are registered trademarks of Rabbit Semiconductor Inc. Rabbit 3000 and PowerCore FLEX are trademarks of Rabbit Semiconductor Inc. The latest revision of this manual is available on the Rabbit Semiconductor Web site, www.rabbit.com, for free, unregistered download. Rabbit Semiconductor Inc. ...

Page 3

... Rabbit Semiconductor Inc. www.rabbit.com PowerCore FLEX ...

Page 4

... Rabbit Semiconductor Inc. www.rabbit.com PowerCore FLEX ...

Page 5

Chapter 1. Introduction 1.1 PowerCore Features ..............................................................................................................................2 1.1.1 Basic Features ...............................................................................................................................2 1.1.2 Options ..........................................................................................................................................2 1.2 Standard Configurations and PowerCore FLEX Options.....................................................................4 1.3 PowerCore FLEX Advantages..............................................................................................................5 1.4 Development and Evaluation Tools......................................................................................................6 1.4.1 Software ........................................................................................................................................7 1.4.2 Wi-Fi Add-On Kit.........................................................................................................................7 1.4.3 Online Documentation ...

Page 6

... Placing Your Device on the Network ................................................................................................ 98 6.4 Running TCP/IP Sample Programs.................................................................................................... 99 6.4.1 How to Set IP Addresses in the Sample Programs................................................................... 100 6.4.2 How to Set Up Your Computer for Direct Connect ................................................................. 101 6.5 Run the PINGME.C Sample Program.............................................................................................. 102 6.6 Running Additional Sample Programs............................................................................................. 102 6 ...

Page 7

Appendix B. Prototyping Board B.1 Introduction ......................................................................................................................................122 B.1.1 Prototyping Board Features......................................................................................................123 B.2 Mechanical Dimensions and Layout................................................................................................124 B.3 Power Supply ...................................................................................................................................126 B.4 Using the Prototyping Board............................................................................................................127 B.4.1 Adding Other Components.......................................................................................................128 B.4.2 Digital I/O.................................................................................................................................129 B.4.2.1 Digital Inputs ................................................................................................................... 129 B.4.3 Digital Outputs ...

Page 8

PowerCore FLEX ...

Page 9

The PowerCore is an easy-to-use core module with a networkable microprocessor system that has an optional onboard config- urable power supply. In addition to two standard preconfigured models, PowerCore FLEX™ modules can be built on a quick-turn basis based on ...

Page 10

PowerCore Features 1.1.1 Basic Features • Small size: 2.35" × 4.00" × 1.08" (60 mm × 102 mm × 28 mm) • 39 configurable 5 V tolerant general-purpose I/O lines • Three additional digital inputs, two additional digital outputs ...

Page 11

External power-supply options for PowerCore module and motherboard user-supplied regulated + supplied to the PowerCore module from the motherboard—the + regulated down to +3.45 V for driving the nominal 3.3 V components on the ...

Page 12

Standard Configurations and PowerCore FLEX Options There are two preconfigured PowerCore models. Table 1 below summarizes their main features. Table 1. Standard PowerCore Production Models Feature Microprocessor Rabbit 3000 running at 51.6 MHz Ethernet 10/100 compatible 10Base-T interface 512K ...

Page 13

PowerCore FLEX Advantages • Fast time-to-market using a fully engineered, “ready-to-run/ready-to-program” micro- processor core. • Competitive pricing when compared with the alternative of purchasing and assembling individual components. • Easy C-language program development and real-time debugging with integrated ® ...

Page 14

... Dynamic C CD-ROM with complete product documentation on disk. • Getting Started instructions. • A bag of accessory parts for use on the Prototyping Board. • Rabbit 3000 Processor Easy Reference poster. • Registration card. Rabbit and Dynamic C are registered trademarks of Rabbit Semiconductor Inc. 6 Figure 1. PowerCore Tool Kit PowerCore FLEX ...

Page 15

... PowerCore FLEX modules are programmed using version 9.20 or later of Rabbit Semi- conductor’s Dynamic C. A compatible version is included on the Tool Kit Rabbit Semiconductor also offers for purchase add-on Dynamic C modules including the popular µC/OS-II real-time operating system, as well as point-to-point protocol (PPP), Advanced Encryption Standard (AES), FAT file system, Secure Sockets Layer (SSL), RabbitWeb, and other select libraries ...

Page 16

PowerCore FLEX ...

Page 17

... Install Dynamic C To develop and debug programs for PowerCore FLEX modules (and for all other and Rabbit Semiconductor hardware), you must install and use Dynamic C. If you have not yet installed Dynamic C version 9.20 (or a later version now by inserting the Dynamic C CD from the Tool Kit in your PC’s CD-ROM drive. If autorun is enabled, the CD installation will begin automatically ...

Page 18

Hardware Connections There are three steps to connecting the PowerCore Prototyping Board for use with Dynamic C and the sample programs: 1. Attach the PowerCore module to the Prototyping Board. 2. Connect the programming cable between the PowerCore module ...

Page 19

... Attach the DE9 connector end of the programming cable to a COM (serial) port on the PC. NOTE: Be sure to use the programming cable (part number 101-0542) supplied with this Tool Kit—the programming cable has blue shrink wrap around the RS-232 converter section located in the middle of the cable ...

Page 20

Connect Power When all other connections have been made, you can connect power to the PowerCore module. In most cases where a locking power connector is stuffed at J3, connect the lock- ing plug from the wall transformer to ...

Page 21

Starting Dynamic C Once the PowerCore module is connected as described in the preceding pages, start Dynamic C by double-clicking on the Dynamic C icon or by double-clicking on dcrabXXXX.exe in the Dynamic C root directory, where XXXX are ...

Page 22

... NOTE: If you purchased your PowerCore through a distributor or through a Rabbit Semi- conductor partner, contact the distributor or partner first for technical support. If there are any problems at this point: • Use the Dynamic C Help • Check the Rabbit Semiconductor Technical Bulletin Board at www.rabbit.com/support/bb/. • Use the Technical Support e-mail form at www.rabbit.com/support/. 14 PowerCore module ...

Page 23

... R To develop and debug programs for the PowerCore (and for all other Rabbit Semiconductor hardware), you must install and use Dynamic C. 3.1 Introduction To help familiarize you with the PowerCore FLEX modules, Dynamic C includes several sample programs. Loading, executing and studying these programs will give you a solid hands-on overview of the PowerCore’ ...

Page 24

Sample Programs Of the many sample programs included with Dynamic C, several are specific to the PowerCore FLEX modules. Sample programs illustrating the general operation of the PowerCore FLEX modules, serial communication, the serial flash, A/D conversion, D/A conversion, ...

Page 25

These connections are illustrated below. After you compile and run this program, select an output channel and logic level via the Dynamic C window. You can see the logic level with a voltmeter connected to STDIO the output channel you ...

Page 26

A/D Converter The following sample programs can be found in the folder. • ADC_CALIB_EXTERNAL.c using two known voltages to generate two coefficients, gain and offset, which will be written to the simulated EEPROM in the flash memory. The program ...

Page 27

ADC_MUX_EXTERNAL1.c tine for designs with multiple external A/D channels. This sample program will also read and display the voltage of the external A/D channel that is located on pin 7 of header J3 on the PowerCore Prototyping Board. Since ...

Page 28

ADC_MUX_EXTERNAL2.c external A/D channels randomly in your application program. This sample program will also read and display the voltage of the external A/D channel that is located on pin 7 of header J3 on the PowerCore Prototyping Board. Since ...

Page 29

ADC_RD_RAMP.c PowerCore ramp-generator A/D channels. Channel 0—2.5 V reference voltage Channel 1—end-of-ramp voltage Channel 2—thermistor The voltage is calculated using coefficients read from the simulated EEPROM in flash ...

Page 30

D/A Converter The following sample programs can be found in the folder. —Demonstrates how to calibrate a D/A converter channel using two • DAC_CAL.c known voltages to generate the two coefficients, gain and offset, which will be written to ...

Page 31

Serial Communication The following sample programs can be found in the folder. —This program demonstrates the use of parity modes by repeatedly sending • PARITY.c byte values 0–127 from Serial Port E to Serial Port F. The program will ...

Page 32

Triacs The following sample programs can be found in the folder. 3.2.6.1 Phase-Angle Triac Control The sample programs demonstrate phase-angle triac control for the PowerCore module and its Prototyping Board. Phase-angle triac control provides you with the ability to ...

Page 33

Time-Proportional Triac Control The sample programs demonstrate time-proportional triac control for the PowerCore mod- ule and its Prototyping Board. Time-proportional triac control provides you with the abil- ity to control a triac over a fixed number of 50/60 Hz ...

Page 34

TCP/IP TCP/IP sample programs and complete instructions on how to run them are provided in Chapter 6, “Using the TCP/IP Features.” 3.2.8 LCD/Keypad Module Appendix C, “LCD/Keypad Module,” provides sample programs for the optional LCD/ keypad module, and includes ...

Page 35

Chapter 4 describes the PowerCore hardware components and princi- pal hardware subsystems. Appendix A, “PowerCore Specifications,” provides complete physical and electrical specifications. Figure 4 shows the Rabbit-based subsystems designed into the PowerCore FLEX mod- ules. Figure 4. PowerCore Subsystems User’s ...

Page 36

PowerCore Digital Inputs and Outputs Figure 5 shows the PowerCore pinout for header J4. standard IDC header with a nominal 0.1" pitch. Header Figure 5. PowerCore Pinout PowerCore FLEX ...

Page 37

Figure 6 shows the use of the Rabbit 3000 microprocessor ports in the PowerCore module. Figure 6. Use of Rabbit 3000 Ports The ports on the Rabbit 3000 microprocessor used in the PowerCore module are config- urable, and so the ...

Page 38

Table 2. PowerCore Pinout Configurations Pin Pin Name 1 AC1_DCIN 2 AC2 3 not connected 4 DC+ 5 GND not connected 8 PE7 Input/Output 9 PE6 Input/Output 10 PE4 Input/Output 11 PE3 Input/Output 12 PE0 Input/Output ...

Page 39

Table 2. PowerCore Pinout Configurations (continued) Pin Pin Name 26 PB7 Input/Output 27 PB6 Input/Output 28 PB5 Input/Output 29 PB4 Input/Output 30 PB3 Input/Output 31 PB2 Input/Output 32–39 PA[7:0] Parallel I/O 40 PF3* Input/Output 41 PF2 Input/Output 42 PF1* Input/Output ...

Page 40

Internal and External Buses The Rabbit 3000 address lines (A0–A19) and all the data lines (D0–D7) are routed inter- nally to the onboard flash memory, SRAM, and Ethernet chips. These lines do not appear on header J4. It would ...

Page 41

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

Page 42

Serial Communication The PowerCore module does not have any serial transceivers directly on the board. However, a serial interface may be incorporated into the board the PowerCore module is mounted on. For example, the PowerCore Prototyping Board has RS-422 ...

Page 43

Programming Port The PowerCore module’s programming port is accessed using header J2 or when pro- gramming with a RabbitLink EG2110 through the Ethernet jack. The programming port uses the Rabbit 3000’s Serial Port A for communication. Dynamic C uses ...

Page 44

Programming Cable A special programming cable is used to connect the PowerCore module’s programming port to a serial COM port on the PC that hosts Dynamic C. The programming cable has a small circuit board in the cable that ...

Page 45

Figure 8. Switching Between Program Mode and Run Mode A program “runs” in either mode, but can only be downloaded and debugged when the PowerCore module is in the Program Mode. Refer to the Rabbit 3000 Microprocessor User’s Manual gramming ...

Page 46

Ramp Generator The PowerCore module has an onboard ramp generator that provides a a continuous sawtooth function with a precision rising ramp. The calibration of the ramp is tied to an onboard 2.5 V voltage reference. The 400 Hz ...

Page 47

W thermistor W Figure 11. PowerCore Temperature-Measurement Circuit A similar, more general A/D measurement circuit can be designed. An example is the A/D measurement circuit on the PowerCore Prototyping Board, which is shown in Figure 12. The circuit is designed ...

Page 48

The interrupt routine can be set up to average inputs and to detect out-of-range signals. A/D conversion can be provided sequentially on additional channels by adding a multi- plexer between the comparators and the Rabbit 3000 PG5 input capture ...

Page 49

The input capture software runs as an interrupt routine that is triggered by the end-of-ramp interrupt. The interrupt routine will read the time delay from the start of the ramp to the signal measured and store memory ...

Page 50

Other Hardware 4.5.1 Clock Doubler The PowerCore 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 51.6 MHz frequency specified for the PowerCore ...

Page 51

... Core modules is 256K–512K. 4.6.2 Flash EPROM PowerCore modules also have 512K of flash EPROM installed at U3. NOTE: Rabbit Semiconductor 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. ...

Page 52

Power Supply Options and Requirements Appendix D provides a complete description of the onboard power supply, and the options and requirements for both onboard and external power supplies used with PowerCore modules. 44 PowerCore FLEX ...

Page 53

... Dynamic integrated development system for writing embedded software. It runs on an IBM-compatible PC and is designed for use with Rabbit Semiconductor single-board com- puters and other devices based on the Rabbit microprocessor. Chapter 5 describes the libraries and function calls related to the PowerCore FLEX modules. 5.1 More About Dynamic C Dynamic C has been in use worldwide since 1989 ...

Page 54

Dynamic C has a number of standard features: • Full-feature source and/or assembly-level debugger, no in-circuit emulator required. • Royalty-free TCP/IP stack with source code and most common protocols. • Hundreds of functions in source-code libraries and sample programs: Exceptionally ...

Page 55

Compile Options Dynamic C offers three compile options: • Compile to attached target (default, used when a PowerCore module is connected running Dynamic C via the programming cable) • Compile defined target configuration to .bin file ...

Page 56

Dynamic C Functions 5.2.1 Digital I/O PowerCore FLEX modules were designed to interface with other systems, and so there are no drivers written specifically for the digital I/O; there are sample drivers for the triacs and the A/D converter ...

Page 57

Serial Communication Drivers Library files included with Dynamic C provide a full range of serial communications sup- port. The library provides a set of circular-buffer-based serial functions. The RS232.LIB library provides packet-based serial functions where packets can be delimited ...

Page 58

A/D Converter Ramp-Generator Drivers The functions described in this section support the PowerCore ramp generator. The source code is in the Dynamic C LIB\PowerCoreFLEX\ADCRAMP.LIB provides the functions for the onboard A/D converter circuit to read the PowerCore ther- mistor, ...

Page 59

DESCRIPTION Reads the state of a ramp A/D channel. The state being read is placed in memory, and is updated by the A/D converter interrupt. The update interval is 7.5 ms for each A/D converter channel. Use ...

Page 60

DERSCRIPTION Reads the state of a ramp A/D channel and uses the previously set calibration constants to convert it to volts. The state being read is placed in memory, and is updated by the A/D converter ...

Page 61

DESCRIPTION Calibrates the response of the analog ramp circuit as a linear function using the two con- version points provided. The gain, offset and A/D converter resolution constants are calculated and ...

Page 62

DESCRIPTION Writes the gain and offset calibration constants for the ramp A/D converter to the simulated EEPROM in flash memory located at the top 2K of the reserved user block memory area. RETURN VALUE 0 if successful. -1 ...

Page 63

DESCRIPTION Creates an offset for any temperature difference between the thermistor and the external reference temperature, and writes the offset data to the simulated EEPROM in flash memory located at the top 2K of the ...

Page 64

DESCRIPTION Disables A/D ramp interrupt when writing to flash memory and to exit applications while using Dynamic C for a user interface. RETURN VALUE None. SEE ALSO anaInRamp, anaInRampVolts, anaInCalibRamp, anaInEERdRamp, anaInEEWrRamp, anaInEnable void anaInEnable(void); DESCRIPTION Re-enables A/D ...

Page 65

DESCRIPTION Initializes the A/D converter low-level driver to read an external A/D converter. You must call the anaInRampInit function to initialize the A/D converter ramp circuit before you call anaInExternalInit. PARAMETERS identifies the ...

Page 66

DESCRIPTION Reads the state of an external analog channel. To read the ramp channels synchronously, use the ref_conversion_done flag. The adc_rd_external function provides an example. The state being read is located in memory, and is updated by ...

Page 67

The following steps explain how to implement random-channel-selection MUX control. 1. Set the maximum number of external A/D converter channels: #define MAX_ADCHANNELS <new value> 2. Provide an application function that will do the following: • Select the A/D converter channel ...

Page 68

DESCRIPTION Reads the state of an external analog channel and uses the previously set calibration constants to convert the value to volts. The state being read is located in memory, and is updated by the A/D converter ...

Page 69

The following steps explain how to implement random-channel-selection MUX control. 1. Set the maximum number of external A/D converter channels: #define MAX_ADCHANNELS <new value> 2. Provide an application function that will do the following: • Select the A/D ...

Page 70

DESCRIPTION Calibrates the response of the selected external A/D converter channel as a linear func- tion using the two conversion points provided. The gain and offset constants are calcu- ...

Page 71

DESCRIPTION Reads the gain and offset calibration constants for an external A/D converter from the simulated EEPROM in flash memory located at the top 2K of the reserved user block memory area. PARAMETER the analog input channel ...

Page 72

DESCRIPTION Writes the gain and offset calibration constants for an external A/D converter to the simulated EEPROM in flash memory located at the top 2K of the reserved user block memory area. PARAMETER the analog input channel ...

Page 73

Prototyping Board Functions The functions described in this section are for use with the PowerCore Prototyping Board features. The source code is in the Dynamic C library if you need to modify it for your own board design. FLEX.LIB ...

Page 74

Digital I/O int digIn(int channel); DESCRIPTION Reads the input state of a digital input on the PowerCore Prototyping Board. PARAMETER the channel number corresponding to the digital input channel: channel 0—IN0 (pin 16 on header J4 or switch SW2 ...

Page 75

DESCRIPTION Sets the state of digital outputs OUT00–OUT03 on Prototyping Board header J2. PARAMETERS the digital output channel OUT00–OUT03: channel the output logic value ( output: state Sinking driver Sourcing driver RETURN ...

Page 76

LEDs void ledOut(int led, int value); DESCRIPTION Controls LEDs DS3 and DS4 on the PowerCore Prototyping Board. PARAMETERS the LED to control: led the value used to control the LED: value RETURN VALUE None. SEE ALSO brdInit 68 ledOut ...

Page 77

D/A Converter void anaOut(int channel, int rawdata); DESCRIPTION Sets the voltage on a given analog output channel on the Prototyping Board. PARAMETERS the analog output channel (0–2). channel a value corresponding to the voltage on the analog output. Valid ...

Page 78

DESCRIPTION Calibrates the response of the specified D/A converter channel on the Prototyping Board as a linear function using the two calibration points provided. Gain and offset constants are ...

Page 79

DESCRIPTION Reads the gain and offset calibration constants from the simulated EEPROM in flash memory located at the top 2K of the reserved user block memory area. NOTE: This function cannot be run in RAM. PARAMETERS channel ...

Page 80

Serial Communication void serMode(int mode); DESCRIPTION Sets up serial communication lines for the PowerCore FLEX modules. Remember to call the serXopen() function before running this function before you start using any of the serial ports. PARAMETER the defined serial ...

Page 81

RabbitNet Port The function calls described in this section are used to configure the RabbitNet port on the PowerCore Prototyping Board for use with RabbitNet peripheral cards. The user’s manual for the specific peripheral card you are using contains ...

Page 82

DESCRIPTION Deactivates the PowerCore Prototyping Board RabbitNet port as a clocked serial port. This call is also used by rn_init(). PARAMETER = 0 portnum RETURN VALUE None void rn_sp_enable(int portnum); DESCRIPTION This is a macro that enables ...

Page 83

DESCRIPTION This is a macro that disables or deasserts the RabbitNet port chip select on the Power- Core Prototyping Board to invalidate data transfer. PARAMETER = 0 portnum RETURN VALUE None. User’s Manual rn_sp_disable 75 ...

Page 84

Triac Control The functions described in this section support the triacs on the PowerCore Prototyping Board. The library can also be used in conjunction with other triac installations that incor- porate a zero-crossing crossover detection circuit. The source code ...

Page 85

Phase-Angle Triac Control void triac_PhaseInit(int ext_interrupt, int interrupt_pin); DESCRIPTION Initializes the triac phase-angle control interrupt. Phase-angle triac control provides you with the ability to fire a triac at a given phase angle of a positive and negative 50 ...

Page 86

PARAMETERS ext_interrupt selects the external interrupt vector. interrupt_pin selects the external interrupt I/O pin. RETURN VALUE None. SEE ALSO triac_PhaseCntrlPin, triac_PhaseCntrl, triac_PhaseLock, triac_PhaseUnlock, triac_PhaseEnable, triac_PhaseDisable external interrupt external interrupt ...

Page 87

DESCRIPTION Initializes a PWM channel for triac gate-signal power reduction. PARAMETERS the PWM channel (0–3) to use for triac gate-power reduction. channel the PWM static output state ...

Page 88

DESCRIPTION Initializes the port and the I/O pin that is going to be used by the specified triac. For multiple triacs, the control pins must be on the same ...

Page 89

DESCRIPTION Locks the triac update buffer for synchronous operation of multiple triacs. The se- quence is as follows. 1. Lock buffer via triac_PhaseLock—a low-level driver will use the last triac state until the buffer is unlocked via a ...

Page 90

DESCRIPTION Disables the triac control interrupt to allow your application to do flash-write opera- tions. Call the triac_PhaseInit function before calling this function. Remember to call triac_PhaseDisable before doing any flash-write operations. Once you have completed the flash-write ...

Page 91

DESCRIPTION Sets the sine-wave phase angle at which to fire the specified triac. Phase-angle triac control provides you with the ability to fire a triac at a given phase angle of ...

Page 92

Time-Proportional Triac Control void triac_TimePropInit(int ext_interrupt, int interrupt_pin); DESCRIPTION Initializes the triac time-proportional control interrupt. Time-proportional triac control provides control of a triac for a fixed period of time, with the application setting the ON and OFF times within this ...

Page 93

PARAMETERS ext_interrupt selects the external interrupt vector. interrupt_pin selects the external interrupt I/O pin. RETURN VALUE None. SEE ALSO triac_TimePropCntrl User’s Manual 0 = external interrupt external interrupt I/O pin PE0, only ...

Page 94

DESCRIPTION Initializes the port and the I/O pin that is going to be used by the specified triac. For multiple triacs, the control pins can be on any combination of ...

Page 95

DESCRIPTION Disables the triac control interrupt to allow your application to do flash-write opera- tions. Call the triac_TimePropInit function before calling this function. Remember to call triac_TimePropDisable before doing any flash-write opera- tions. Once you have completed ...

Page 96

DESCRIPTION Sets the on time of the specified triac initialized for time-proportional control. The specified triac will be turned on at the zero-crossing point of the 50/60 Hz A/C power cycles, and ...

Page 97

... Add-On Modules Dynamic C installations are designed for use with the board they are included with, and are included at no charge as part of our low-cost kits. Rabbit Semiconductor offers for pur- chase add-on Dynamic C modules including the popular µC/OS-II real-time operating system, as well as PPP, Advanced Encryption Standard (AES), FAT file system, Secure Sockets Layer (SSL), RabbitWeb, and other select libraries ...

Page 98

PowerCore FLEX ...

Page 99

U 6.1 TCP/IP Connections Programming and development can be done with the PowerCore FLEX modules without connecting the Ethernet port to a network. However, if you will be running the sample programs that use the Ethernet capability or will ...

Page 100

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 PowerCore module’s Ethernet port to an existing LAN, preferably • one to which the ...

Page 101

TCP/IP Primer on IP Addresses Obtaining IP addresses to interact over an existing, operating, network can involve a number of complications, and must usually be done with cooperation from your ISP and/or network systems administrator. For this reason, it ...

Page 102

T1 in Adapter Ethernet Typical Corporate Network 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 without having ...

Page 103

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

Page 104

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

Page 105

Dynamically Assigned Internet Addresses In many instances, devices on a network do not have 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 ...

Page 106

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

Page 107

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 PowerCore module together on the same network. This ...

Page 108

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. You will see a Dynamic C to select ...

Page 109

... NOTE: Your network interface card will likely have a different name. 3. Now select the IP Address click on “Properties” to assign an IP address to your computer (this will disable “obtain an IP address automatically”): IP Address : 10.10.6.101 Netmask : 255.255.255.0 Default gateway : 10.10.6.1 4. Click or to exit the various dialog boxes. ...

Page 110

... Start > Run and typing the entry ping 10.10.6.101 Notice that the yellow DS1 LED flashes on the PowerCore module while the ping is tak- ing place, and indicates the transfer of data. The ping routine will ping the board four times and write a summary message on the screen describing the operation. ...

Page 111

... Board to close the Telnet connection; DS5 should stop blinking, indicating that the Telnet connection has been closed. 6.7 Where From Here? NOTE: If you purchased your PowerCore module through a distributor or through a Rabbit Semiconductor partner, contact the distributor or partner first for technical support. If there are any problems at this point: • Use the Dynamic C Help • ...

Page 112

PowerCore FLEX ...

Page 113

Appendix A provides the specifications for the PowerCore, and describes the conformal coating. User’s Manual PPENDIX S PECIFICATIONS C OWER ORE 105 ...

Page 114

A.1 Electrical and Mechanical Characteristics Figure A-1 shows the mechanical dimensions for the PowerCore. Figure A-1. PowerCore Dimensions NOTE: All measurements are in inches followed by millimeters enclosed in parentheses. All dimensions have a manufacturing tolerance of ±0.01" (0.25 mm). ...

Page 115

It is recommended that you allow for an “exclusion zone” of 0.04" (1 mm) around the PowerCore module in all directions when the PowerCore module is incorporated into an assembly that includes other printed circuit boards. An “exclusion zone” of ...

Page 116

Table A-1 lists the electrical, mechanical, and environmental specifications for the PowerCore. Table A-1. PowerCore Specifications Parameter Microprocessor Rabbit 3000 EMI Reduction 10/100 compatible 10Base-T interface, Ethernet Port 512K program (fast SRAM) SRAM Flash Memory (program) Serial Flash Memory Backup ...

Page 117

Table A-1. PowerCore Specifications (continued) Parameter Unregulated 8– (draws 13.3 W) Input 24– with center-tapped Power transformer (draws 13 Options AC 12– with untapped standard transformer (draws 13.3 W) Current Limits ...

Page 118

Example Current Calculation Let’s look power supply where the user’s circuit consumes 300 mA @ +3.45 V, 550 and 1500 AC. Can a PowerCore 3810 supply these ...

Page 119

A.1.1 Headers and Spacers The PowerCore module uses one header at J4 for physical connection to other boards × 25 SMT header with a 0.1" pin spacing. J2, the programming port × 5 ...

Page 120

A.2 Bus Loading You must pay careful attention to bus loading when designing an interface to the Power- Core module. This section provides bus loading information for external devices. Table A-2 lists the capacitance for the various PowerCore module I/O ...

Page 121

Figure A-4 shows a typical timing diagram for the Rabbit 3000 microprocessor external I/O read and write cycles. Figure A-4. I/O Read and Write Cycles—No Extra Wait States NOTE: /IOCSx can be programmed to be active low (default) or active ...

Page 122

Table A-4 lists the delays in gross memory access time at 3.3 V. Table A-4. Data and Clock Delays VIN ±10%, Temp, -40°C–+85°C (maximum) Clock to Address Output Delay (ns) VIN 3 The measurements ...

Page 123

A.3 Rabbit 3000 DC Characteristics Table A-5. Rabbit 3000 Absolute Maximum Ratings Symbol T Operating Temperature A T Storage Temperature S Maximum Input Voltage: • Oscillator Buffer Input • 5-V-tolerant I/O V Maximum Operating Voltage DD Stresses beyond those listed ...

Page 124

A.4 I/O Buffer Sourcing and Sinking Limit Unless otherwise specified, the Rabbit I/O buffers are capable of sourcing and sinking 6 current per pin at full AC switching speed. Full AC switching assumes a 22.1 MHz CPU clock ...

Page 125

A.5 Jumper Configurations Figure A-5 shows the jumper locations used to configure the various PowerCore options. The black square indicates pin 1. Figure A-5. Location of PowerCore Configurable Positions User’s Manual 117 ...

Page 126

Table A-8 lists the configuration options. Table A-8. PowerCore Jumper Configurations Header Description JP1 Data SRAM Size JP2 Flash Memory Bank Select JP3 Ethernet LEDs JP4 Ethernet LEDs NOTE: The jumper connections are made using surface-mounted resistors. 118 Pins Connected ...

Page 127

A.6 Conformal Coating The areas around the 32 kHz real-time clock crystal oscillator have had the Dow Corning silicone-based 1-2620 conformal coating applied. The conformally coated area is shown in Figure A-6. The conformal coating protects these high-impedance circuits from ...

Page 128

PowerCore FLEX ...

Page 129

A PPENDIX Appendix B describes the features and accessories of the Proto- typing Board. User’s Manual B. P ROTOTYPING B OARD 121 ...

Page 130

B.1 Introduction The Prototyping Board included in the Development Kit provides some basic I/O periph- erals (RS-232, triacs, LEDs, and switches), as well as a prototyping area for more advanced hardware development. For the most basic level of evaluation and ...

Page 131

... Two user LEDs (DS5–DS6) are connected to I/O pins PD5 and PC2 of the PowerCore module. LCD/Keypad Module —Rabbit Semiconductor’s LCD/keypad module may be plugged • in directly to headers LCD1:JA, LCD1:JB, and LCD1:JC. The signals on headers LCD1:JB and LCD1:JC will be available only if the LCD/keypad module is plugged in to header LCD1:JA ...

Page 132

B.2 Mechanical Dimensions and Layout Figure B-2 shows the mechanical dimensions and layout for the PowerCore Prototyping Board. Figure B-2. Prototyping Board Dimensions NOTE: All measurements are in inches followed by millimeters enclosed in parentheses. NOTE: The RJ-45 RabbitNet jack ...

Page 133

Table B-1 lists the electrical, mechanical, and environmental specifications for the Power- Core Prototyping Board. Table B-1. PowerCore Prototyping Board Specifications Parameter Board Size 4.50" × 5.60" × 0.88" (114 mm × 142 mm × 22 mm) Operating Temperature –40°C ...

Page 134

B.3 Power Supply The PowerCore Prototyping Board uses the regulated and unregulated power from the PowerCore module. • regulated +3.45 V (+V) • regulated +5 V • unregulated DC voltage (DC+) • AC voltage (AC1_DCIN) 126 PowerCore FLEX ...

Page 135

B.4 Using the Prototyping Board The Prototyping Board is actually both a demonstration board and a prototyping board demonstration board, it can be used with the sample programs to demonstrate the func- tionality of the PowerCore module right ...

Page 136

The Prototyping Board comes with the basic components necessary to demonstrate the operation of the PowerCore module. Two user LEDs (DS5 and DS6) are connected to PowerCore module’s pins PC2 and PD5, and may be driven as output indicators as ...

Page 137

B.4.2 Digital I/O B.4.2.1 Digital Inputs The PowerCore Prototyping Board has two digital inputs connected to a switch, IN0 and IN2. The inputs are pulled up to +3. shown in Figure B-4. Figure B-4. PowerCore Prototyping Board Digital ...

Page 138

B.4.3 Digital Outputs Four digital outputs, two sinking and two sourcing, are available on header J2. The sinking outputs, OUT00 and OUT01, can each sink the sourcing outputs, OUT02 and OUT03, can each source up to ...

Page 139

B.4.4 Triac Outputs The Prototyping Board has two triacs, each of which can handle The Rabbit 3000 can enable or disable the triacs via software calls. Figure B-6 shows a schematic diagram for the two triac ...

Page 140

The zero-crossover interrupt circuit on the PowerCore module, shown below in Figure B-7, allows the turning on of the triac output to be synchronized with the AC waveform. An interrupt is sent to the microprocessor when the AC voltage crosses ...

Page 141

B.4.5 Analog I/O B.4.5.1 A/D Converter Input The Prototyping Board has one A/D converter circuit, shown below in Figure B- Figure B-8. PowerCore Prototyping Board A/D Converter Circuit The ramp generator makes it possible to measure analog voltages ...

Page 142

B.4.5.2 D/A Converter Circuits The Prototyping Board has three D/A converter circuits, each with a different settling time: • DAC0—settling time 0.4 ms • DAC1—settling time 0.9 ms • DAC2—settling time 2.5 ms Figure B-9 shows a schematic for the ...

Page 143

B.4.6 Serial Communication The PowerCore Prototyping Board allows you to access three of the serial ports on the Pow- erCore module. Table B-2 summarizes the use of the three serial ports. Table B-2. PowerCore Prototyping Board Serial Ports Serial Port ...

Page 144

Standard 3-wire RS-232 communication using Serial Ports E and F is illustrated in the following sample code. #define EINBUFSIZE 15 #define EOUTBUFSIZE 15 #define FINBUFSIZE 15 #define FOUTBUFSIZE 15 #ifndef _232BAUD #define _232BAUD 115200 #endif main(){ serEopen(_232BAUD); serFopen(_232BAUD); serEwrFlush(); serErdFlush(); ...

Page 145

B.5 Use of Rabbit 3000 Parallel Ports Table B-3 lists the Rabbit 3000 parallel ports and their use for the PowerCore Prototyping Board. Table B-3. PowerCore Prototyping Board Use of Rabbit 3000 Parallel Ports Port I/O PA0–PA7 Input/Output PB2–PB5 Output ...

Page 146

PowerCore FLEX ...

Page 147

A PPENDIX An optional LCD/keypad is available for the Prototyping Board. Appendix C describes the LCD/keypad and provides the soft- ware APIs to make full use of the LCD/keypad. C.1 Specifications Two optional LCD/keypad modules—with or without a panel-mounted NEMA ...

Page 148

Mounting hardware and (24") extension cable are also available for the LCD/keypad module through your Rabbit Semiconuctor sales representative or authorized distributor. Table C-1 lists the electrical, mechanical, and environmental specifications for the LCD/ keypad module. Table ...

Page 149

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 KDU3V LCD/keypad module for use with ...

Page 150

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. To replace the keypad legend, remove the old legend and insert ...

Page 151

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

Page 152

C.5 Install Connectors on Prototyping Board Before you can use the LCD/keypad module with the PowerCore Prototyping Board, you will need to install connectors to attach the LCD/keypad module to the Prototyping Board. These connectors are included with the PowerCore ...

Page 153

C.6 Mounting LCD/Keypad Module on the Prototyping Board Install the LCD/keypad module on header sockets LCD1:JA, LCD1:JB, and LCD1:JC of the Prototyping Board as shown in Figure C-8. Be careful to align the pins over the head- ers, and do ...

Page 154

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

Page 155

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

Page 156

... Figure C-11. Connecting LCD/Keypad Module to PowerCore Prototyping Board Note the locations and connections relative to pin 1 on both the Prototyping Board and the LCD/keypad module. Rabbit Semiconductor offers 2 ft. (60 cm) extension cables. Contact your authorized dis- tributor or a Rabbit Semiconductor sales representative for more information. 148 ...

Page 157

C.8 Sample Programs Sample programs illustrating the use of the LCD/keypad module with the Prototyping Board are provided in the SAMPLES\PowerCoreFLEX\LCD_KEYPAD These sample programs use the auxiliary I/O bus on the Rabbit 3000 chip, and so the line is already ...

Page 158

C.9 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 ...

Page 159

C.9.2 LEDs When power is applied to the LCD/keypad module for the first time, the red LED (DS1) will come on, indicating that power is being applied to the LCD/keypad module. The red LED is turned off when the brdInit ...

Page 160

C.9.3 LCD Display The functions used to control the LCD display are contained in the located in the Dynamic C LIB\DISPLAYS\GRAPHIC nates on the display screen are specified, x can range from 0 to 121, and y can range from ...

Page 161

DESCRIPTION Sets the LCD screen on or off. Data will not be cleared from the screen. PARAMETER turns the LCD screen on or off onOff RETURN VALUE None. SEE ALSO glInit, glSetContrast, glBackLight void glSetContrast(unsigned level); DESCRIPTION ...

Page 162

DESCRIPTION Fills the LCD display screen with a pattern. PARAMETER The screen will be set to all black if pattern is 0xFF, all white if pattern is 0x00, and vertical stripes for any other pattern. RETURN VALUE ...

Page 163

DESCRIPTION Fills a rectangular block in the LCD buffer with the pattern specified. Any portion of the block that is outside the LCD display area will be clipped.. PARAMETERS ...

Page 164

DESCRIPTION Fills a rectangular block in the LCD buffer with the pattern specified. The block left and width parameters must be byte-aligned. Any portion of the block that is ...

Page 165

DESCRIPTION Clears a region on the LCD display. The block left and width parameters must be byte- aligned. Any portion of the block that is outside the LCD display area will ...

Page 166

DESCRIPTION Draws a rectangular block in the page buffer and on the LCD if the buffer is unlocked. Any portion of the block that is outside the LCD display area will ...

Page 167

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

Page 168

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

Page 169

DESCRIPTION Fills 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 ...

Page 170

DESCRIPTION Draws the outline of a 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 ...

Page 171

DESCRIPTION Initializes the font descriptor structure, where the font is stored in xmem. Each font character's bitmap is column major and byte aligned. PARAMETERS a pointer ...

Page 172

DESCRIPTION Returns the xmem address of the character from the specified font set. PARAMETERS the xmem address of the bitmap font set. *pInfo an ASCII character. letter RETURN VALUE xmem address of bitmap character ...

Page 173

DESCRIPTION Sets the glPrintf() printing step direction. The x and y step directions are indepen- dent signed values. The actual step increments depend on the height and width of the font being displayed, which are ...

Page 174

DESCRIPTION Provides an interface between the STDIO string-handling functions and the graphic li- brary. The STDIO string-formatting function will call this function, one character at a time, until the entire formatted ...

Page 175

DESCRIPTION Prints a formatted string (much like printf) on the LCD screen. Only the character codes that exist in the font set are printed, all others are skipped. For example, ...

Page 176

DESCRIPTION Increments LCD screen locking counter. Graphic calls are recorded in the LCD mem- ory buffer and are not transferred to the LCD if the counter is non-zero. NOTE: glBuffLock() sure to balance the calls not ...

Page 177

DESCRIPTION Checks the LCD screen locking counter. The contents of the LCD buffer are transferred to the LCD if the counter is zero. RETURN VALUE None. SEE ALSO glBuffUnlock, glBuffLock, _glSwapData the LCD that you are using) void ...

Page 178

DESCRIPTION Gets the current method (or color) of pixels drawn by subsequent graphic calls. RETURN VALUE The current brush type. SEE ALSO glSetBrushType void glXGetBitmap(int x, int y, int bmWidth, int bmHeight, unsigned long xBm); DESCRIPTION Gets a ...

Page 179

DESCRIPTION Draws bitmap in the specified space. The data for the bitmap are stored in xmem. This function is similar to glXPutBitmap, except that it's faster. The bitmap ...

Page 180

DESCRIPTION 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. PARAMETERS the ...

Page 181

DESCRIPTION Scrolls byte-aligned window left one pixel, right column is filled by current pixel type (color). PARAMETERS the top left corner of bitmap, must be evenly divisible by 8, other- left ...

Page 182

DESCRIPTION Scrolls byte-aligned window right one pixel, left column is filled by current pixel type (color). PARAMETERS the top left corner of bitmap, must be evenly divisible by 8, other- left ...

Page 183

DESCRIPTION Scrolls byte-aligned window up one pixel, bottom column is filled by current pixel type (color). PARAMETERS the top left corner of bitmap, must be evenly divisible by 8, other- left ...

Page 184

DESCRIPTION Scrolls byte-aligned window down one pixel, top column is filled by current pixel type (color). PARAMETERS the top left corner of bitmap, must be evenly divisible by 8, other- left ...

Page 185

DESCRIPTION Scrolls right or left, within the defined window by x number of pixels. The opposite edge of the scrolled window will be filled in with white pixels. The ...

Page 186

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

Page 187

DESCRIPTION Draws bitmap in the specified space. The data for the bitmap are stored in xmem. This function calls glXPutFastmap automatically if the bitmap is byte-aligned (the left ...

Page 188

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

Page 189

TextWindowFrame(windowFrame *window, fontInfo *pFont, int x, int y, int winWidth, int winHeight); DESCRIPTION Defines a text-only display window. This function provides a way to display characters within the text window using only character row and column coordinates. The text ...

Page 190

TextBorderInit(windowFrame *wPtr, int border, char *title); DESCRIPTION This function initializes the window frame structure with the border and title information. NOTE: Execute the TextWindowFrame PARAMETERS a pointer to the window frame descriptor. wPtr the border style: border a pointer ...

Page 191

TextBorder(windowFrame *wPtr); DESCRIPTION This function displays the border for a given window frame. This function will auto- matically adjust the text window parameters to accommodate the space taken by the text border. This adjustment will only occur once after ...

Page 192

TextCursorLocation(windowFrame *window, int *col, int *row); DESCRIPTION Gets the current cursor location that was set by a Graphic Text... function. NOTE: Execute the TextWindowFrame PARAMETERS a pointer to a font descriptor. window a pointer to cursor column variable. col ...

Page 193

TextPutChar(struct windowFrame *window, char ch); DESCRIPTION Displays a character on the display where the cursor is currently pointing. Once a char- acter is displayed, the cursor will be incremented to the next character position. If any portion of a ...

Page 194

TextPrintf(struct windowFrame *window, char *fmt, ...); DESCRIPTION Prints a formatted string (much like printf) on the LCD screen. Only printable char- acters in the font set are printed; escape sequences '\r' and '\n' are also recognized. All other escape ...

Page 195

TextMaxChars(windowFrame *wPtr); DESCRIPTION This function returns the maximum number of characters that can be displayed within the text window. NOTE: Execute the TextWindowFrame PARAMETER a pointer to the window frame descriptor. wPtr RETURN VALUE The maximum number of characters ...

Page 196

C.9.4 Keypad The functions used to control the keypad are contained in the Dynamic C library. KEYPAD7.LIB void keyInit(void); DESCRIPTION Initializes keypad process. RETURN VALUE None. SEE ALSO brdInit 188 keyInit LIB\KEYPADS\ PowerCore FLEX ...

Page 197

DESCRIPTION Assigns each key with keypress and release codes, and hold and repeat ticks for auto repeat and debouncing. PARAMETERS a raw key code index. ...

Page 198

RETURN VALUE None. SEE ALSO keyProcess, keyGet, keypadDef 190 PowerCore FLEX ...

Page 199

DESCRIPTION Scans and processes keypad data for key assignment, debouncing, press and release, and repeat. NOTE: This function is also able to process matrix keypad. RETURN VALUE None. SEE ALSO keyConfig, keyGet, keypadDef char ...

Page 200

DESCRIPTION Pushes the value of cKey to the top of the input queue, which is 16 bytes deep. PARAMETER cKey RETURN VALUE None. SEE ALSO keyGet 192 keyUnget PowerCore FLEX ...

Related keywords