Rabbit Fox LP3500 User Manual

C-programmable single-board computer
Table of Contents

Advertisement

Quick Links

Fox (LP3500)
C-Programmable Single-Board Computer
User's Manual
019–0111 • 081121–L

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the Fox LP3500 and is the answer not in the manual?

Questions and answers

Summary of Contents for Rabbit Fox LP3500

  • Page 1 Fox (LP3500) C-Programmable Single-Board Computer User’s Manual 019–0111 • 081121–L...
  • Page 2 Rabbit and Dynamic C are registered trademarks of Digi International Inc. Rabbit 2000 and RabbitCore are trademarks of Digi International Inc. The latest revision of this manual is available on the Rabbit Web site, www.rabbit.com, for free, unregistered download. Digi International Inc.
  • Page 3: Table Of Contents

    ABLE OF ONTENTS Chapter 1. Introduction 1.1 LP3500 Description ..........................1 1.2 LP3500 Features ...........................2 1.3 Optional Add-Ons..........................3 1.4 Development and Evaluation Tools......................4 1.4.1 Tool Kit ............................4 1.4.2 Software ............................5 1.5 CE Compliance .............................6 1.5.1 Design Guidelines .........................7 1.5.2 Interfacing the LP3500 to Other Devices ..................7 Chapter 2.
  • Page 4 A.1.2 Headers ............................76 A.2 Conformal Coating ..........................77 A.3 Jumper Configurations ........................78 A.4 Use of Rabbit 3000 Parallel Ports ..................... 81 Appendix B. Prototyping Board B.1 Mechanical Dimensions and Layout ....................86 B.2 Using the Prototyping Board ......................87 B.2.1 Interface to LP3500 ........................
  • Page 5 Appendix E. Power Management E.1 External Power Supply ........................123 E.2 Batteries and External Battery Connections..................125 E.2.1 Replacing the Backup Battery ....................126 E.2.2 Power to VRAM Switch......................126 E.2.3 Reset Generator ........................127 E.3 Chip Select Circuit ...........................127 Appendix F. Running a Sample Program Index Schematics User’s Manual...
  • Page 6 Fox (LP3500)
  • Page 7: Chapter 1. Introduction

    1.1 LP3500 Description The LP3500 is a low-power single-board computer that incorporates the powerful and low-EMI Rabbit 3000 microprocessor, flash memory, static RAM, digital I/O ports, A/D converter inputs, PWM outputs, RS-232/RS-485 serial ports, and both parallel and serial interfaces that allow other devices to be connected to the LP3500.
  • Page 8: Lp3500 Features

    • Watchdog supervisor. Two LP3500 models are available. Their standard features are summarized in Table 1. Table 1. LP3500 Models Feature LP3500 LP3510 Microprocessor Rabbit 3000 running at 7.4 MHz Static RAM 512K 128K Flash Memory 512K 256K A/D Converter Inputs (ranges from 0–1 V DC to 0–20 V DC, 4 channels...
  • Page 9: Optional Add-Ons

    1.3 Optional Add-Ons • Plastic enclosure (can be wall-mounted or panel-mounted), which consists of a base and a cover for either the LP3500 by itself or an assembly made up of the LP3500 and the LP3500 Prototyping Board. The base is also available separately. •...
  • Page 10: Development And Evaluation Tools

    PC’s CD-ROM drive. If the installation does not auto-start, run the setup.exe program in the root directory of the Dynamic C CD. Install any Dynamic C modules after you install Dynamic C . Rabbit and Dynamic C are registered trademarks of Digi International Inc. Figure 1. LP3500 Tool Kit...
  • Page 11: Software

    1.4.2 Software The LP3500 is programmed using version 7.26P or later of Rabbit’s Dynamic C. A com- Library functions provide an easy-to-use patible version is included on the Tool Kit CD-ROM. interface for the LP3500. Software drivers for digital and analog I/O, and for serial com- munication are included with Dynamic C.
  • Page 12: Ce Compliance

    These limits apply over the range of 30–230 MHz. The limits are 7 dB higher for frequencies above 230 MHz. Although the test range goes to 1 GHz, the emissions from Rabbit-based systems at frequencies above 300 MHz are generally well below background noise levels.
  • Page 13: Design Guidelines

    • When connecting the LP3500 to outdoor cables, the customer is responsible for provid- ing CE-approved surge/lightning protection. • Rabbit recommends placing digital I/O or analog cables that are 3 m or longer in a metal conduit to assist in maintaining CE compliance and to conform to good cable design practices.
  • Page 14 Fox (LP3500)
  • Page 15: Chapter 2. Getting Started

    2. G ETTING TARTED Chapter 2 explains how to connect the programming cable and power supply to the LP3500. 2.1 LP3500 Connections 1. Use the 4-40 screws supplied with the Tool Kit to attach the metal standoffs to your LP3500 series board as shown in Figure 2. RELAY C55 R44 RP13...
  • Page 16 2. Attach the LP3500 main board to the Prototyping Board as shown in Figure 3. Press the pins from the headers on the bottom side of the LP3500 board firmly into the corresponding header sockets located at J1, J2, and J4 on the Prototyping Board. NOTE: It is important that you line up the header pins on the LP3500 exactly with the header sockets J1, J2, and J4 corresponding...
  • Page 17 NOTE: Use only the programming cable that has a red shrink wrap around the RS-232 level converter (Part No. 101-0513), which is supplied with the LP3500 Tool Kit. Other Rabbit programming cables with clear or blue shrink wrap might not be voltage-com- patible or their connector sizes may be different.
  • Page 18 4. Connect the power supply. First, prepare the AC adapter for the country where it will be used by selecting the plug. The LP3500 Tool Kit presently includes Canada/Japan/U.S., Australia/N.Z., U.K., and European style plugs. Snap in the top of the plug assembly into the slot at the top of the AC adapter as shown in Figure 4, then press down on the spring-loaded clip below the plug assembly to allow the plug assembly to click into place.
  • Page 19: Remove Battery Tab

    EXT GND VIN GND Figure 6. Remove Battery Tab NOTE: Rabbit recommends that the battery tab not be removed until you are ready to place the LP3500 in normal service with regular power connected through header J2. The backup battery protects the contents of the SRAM and keeps the real-time clock running when regular power to the LP3500 is interrupted.
  • Page 20: Installing Dynamic C

    LP3500 and go through a sequence of steps to cold-boot the LP3500 and to compile the BIOS. If the error message “Rabbit Processor Not Detected” appears, you have probably connected to a different PC serial port such as COM2, COM3, or COM4. You can change...
  • Page 21: Pong.c

    This program shows that the CPU is working. 2.6 Where Do I Go From Here? NOTE: If you purchased your LP3500 through a distributor or Rabbit partner, contact the distributor or partner first for technical support. If there are any problems at this point: •...
  • Page 22 Fox (LP3500)
  • Page 23: Chapter 3. Subsystems

    • Power Modes • Digital I/O • Serial Communication • A/D Converter Inputs (LP3500 only) • PWM Outputs • Relay Output Circuit (LP3500 only) • Memory Figure 7 shows these Rabbit-based subsystems designed into the LP3500. Programming Digital Port Inputs Serial Interface...
  • Page 24: Lp3500 Pinouts

    3.1 LP3500 Pinouts The LP3500 pinouts are shown in Figure 8. 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 AIN0 AIN1 AIN2 AIN3 AIN4 RxC/CTS AIN5 TxC/RTS AIN6 AIN7 PWM0 PWM1 RS-485+ PWM2 RS-485–...
  • Page 25: Power Modes

    3.2 Power Modes See note User’s Manual...
  • Page 26: Setting The Power-Save Mode

    Table 2 lists the power modes based on clock frequency that can be defined in software using the function. powerMode The LP3500 can operate at various power levels, depending on the clock frequency and on which subsystems on the board are turned off using the function.
  • Page 27: Operating In The Power-Save Mode

    3.2.2 Operating in the Power-Save Mode VIN may be removed to allow the LP3500 to operate using the external battery once the LP3500 is in Mode 10. At this point, the LP3500 will draw 200 µA after the subsystems listed in Table 3 are turned off. The LP3500’s linear regulator may then be turned off using function call, and this will lower the current draw to 100 µA.
  • Page 28: Digital I/O

    +K in banks of eight, but they can also be pulled up to Vcc or down to 0 V in banks of eight by changing a surface-mounted 0 Ω resistor as shown in Figure 9. 22 kW 100 kW Rabbit 3000 ® 330 nF Microprocessor Figure 9. LP3500 Digital Inputs [Pulled Up—Factory Default]...
  • Page 29: Digital Outputs

    3.3.2 Digital Outputs The LP3500 has 10 digital outputs: OUT0–OUT7 can each sink up to 200 mA, and OUT8–OUT9 can each source up to 200 mA at 36 V. Figure 11 shows a wiring diagram for using the digital outputs in a sinking or a souring configuration. 1 MW Figure 11.
  • Page 30 When the LP3500 is connected to the Proto- typing Board, a 0 Ω resistor on the Prototyp- ing Board (R1) ties +K to VIN, the raw DC input voltage. Figure 12 shows the location of this 0 Ω resistor on the Prototyping Board. NOTE: R1 on the Prototyping Broad must be removed to avoid damage to the power supplies if you are using the...
  • Page 31: Serial Communication

    3.4 Serial Communication The LP3500 has three RS-232 serial ports that can set using the software function serMode call as one RS-232 serial channel (with RTS/CTS) and one 3-wire channel, or they may be set as three RS-232 (3-wire) channels. Table 4 summarizes the options. Table 4.
  • Page 32: Rs-232

    The LP3500 has one RS-485 serial channel, which is connected to Serial Port F on the Rabbit 3000 through an RS-485 transceiver. The half-duplex communication uses the Rabbit 3000’s PG0 pin to control the transmit enable on the communication line. The RS-485 transceiver used on the LP3500 is only capable of supporting a maximum baud rate of 64,000 bits/s.
  • Page 33 Ground recommended 485+ 485– OUT9 DISPLAY DISPLAY Figure 13. LP3500 Multidrop Network Zener diodes are used in lieu of termination and bias resistors to minimize power consumption. User’s Manual...
  • Page 34: Serial Interface Port

    3. It can also serve as a general-purpose CMOS output. The /RESET_IN pin is an external input that is used to reset the Rabbit 3000 and the LP3500 onboard peripheral circuits. The serial programming port can be used to force a hard reset on the LP3500 by asserting the /RESET_IN signal.
  • Page 35 The programming port may also be used as a serial port once the application is running. The SMODE pins may then be used as inputs and the status pin may be used as an output. Refer to the for more information. Rabbit 3000 Microprocessor User’s Manual User’s Manual...
  • Page 36: Display Interface

    3.5 Display Interface The LP3500 supports an interface with the parallel ports on the Rabbit 3000 via the Display Interface at header J9. The Display Interface may be used with Rabbit’s BFD6 BFD7 LCD/keypad module, which offers an operator interface...
  • Page 37: A/D Converter Inputs (Lp3500 Only)

    3.6 A/D Converter Inputs (LP3500 only) The single 8-channel A/D converter chip used in the LP3500 (the LP3510 does not have analog capabilities) has a resolution of 12 bits for differential measurements or 11 bits for single-ended measurements. Four of the channels can be jumpered individually for 4–20 mA using jumpers across pins on header J3, and all 8 channels can be used over several software-scaled voltage ranges.
  • Page 38 Single-ended measurements are made by connecting the analog signal between an analog input channel (AIN0–AIN7) and AGND. Differential measurements are made by connect- ing a pair of differential analog signals to an adjacent pair of analog input channels (AIN0–AIN1, …, AIN6–AIN7). The A/D converter is only capable of converting positive voltages, and so will convert the difference between an adjacent pair of input channels, and must be scaled for a voltage range appropriate for the voltage differences.
  • Page 39: Pwm Outputs

    The D/A conversion outputs are pulse-width modulated and scaled to provide an output from 0 V to Vcc (approx. 2.8 V). Figure 17 shows the PWM outputs. 1 kW PWM0 PWM1 Rabbit 3000 ® 1 nF Microprocessor Figure 17. PWM Outputs User’s Manual...
  • Page 40: Relay Output Circuit (Lp3500 Only)

    J8. The relay can switch up to 1 A at 30 V DC. The relay is set via Parallel Port PG4 on the Rabbit 3000, and is reset via Parallel Port PG5 by a 10 ms pulse. The relay resets when the LP3500 resets, and operates only in the nor- mal power modes.
  • Page 41: Serial Programming Cable

    PROG gramming cable is attached, and is automatically in Run Mode when no programming cable is attached. When the Rabbit 3000 is reset, the operating mode is determined by the state of the SMODE pins. When the programming cable’s connector is attached, PROG the SMODE pins are pulled high, placing the Rabbit 3000 in the Program Mode.
  • Page 42: Standalone Operation Of The Lp3500

    3.10 Other Hardware 3.10.1 Spectrum Spreader The Rabbit 3000 features a spectrum spreader, which helps to mitigate EMI problems. By default, the spectrum spreader is on automatically, but it may also be turned off or set to a stronger setting. The means for doing so is through a simple global macro as shown below.
  • Page 43: Memory

    The LP3500 is also designed to accept 256K to 512K of flash memory at U6 and U7. The standard LP3500 modules comes with two 256K flash memory chips. NOTE: Rabbit recommends that any customer applications should not be constrained by the sector size of the flash memory since it may be necessary to change the sector size in the future.
  • Page 44 Fox (LP3500)
  • Page 45: Chapter 4. Software

    Alternatively, users can compile a program to an image file for later loading. Dynamic C runs on PCs under Windows 2000/NT and later. ® ® Rabbit’s Technical Note TN257, Running Dynamic C With Windows Vista , in the ®...
  • Page 46 LCD display and keypad drivers. • Powerful language extensions for cooperative or preemptive multitasking • Loader utility program to load binary images into Rabbit targets in the absence of Dynamic C. • Provision for customers to create their own source code libraries and augment on-line help by creating “function description”...
  • Page 47: Upgrading Dynamic C

    The default installation of a patch or bug fix is to install the file in a directory (folder) dif- ferent from that of the original Dynamic C installation. Rabbit recommends using a differ- ent directory so that you can verify the operation of the patch without overwriting the existing Dynamic C installation.
  • Page 48: Sample Programs

    4.2 Sample Programs Sample programs are provided in the Dynamic C folder. The sample program Samples demonstrates the output to the window. STDIO PONG.C The various directories in the folder contain specific sample programs that illus- Samples trate the use of the corresponding Dynamic C libraries. folder provides sample programs specific to the LP3500.
  • Page 49: Serial Communication

    4.2.3 Serial Communication The following sample programs are found in the subdirectory in RS232 SAMPLES\LP3500 —This program demonstrates basic initialization for a simple RS-232 • SIMPLE3WIRE.C 3-wire loopback displayed in the window. STDIO The following sample programs are found in the subdirectory in RS485 SAMPLES\LP3500...
  • Page 50: Pwm Outputs

    4.2.5 PWM Outputs The following sample program is found in the subdirectory in SAMPLES\LP3500 —This program demonstrates the PWM functions. It will set the PWM chan- • PWMOUT.C nels, PWM0–PWM2, to the following duty cycles: PWM Channel 0 to 10% PWM Channel 1 to 25% PWM Channel 2 to 50% All activity will be displayed in the...
  • Page 51: Lcd/Keypad Module Sample Programs

    —This sample program demonstrates how to recalibrate one A/D con- • AD_CALMA_CH.C verter channel operating in the 4–20 mA current mode using two known currents to generate two coefficients, gain and offset, which are rewritten into the user block data area.
  • Page 52: Lp3500 Libraries

    Section 4.4, “LP3500 Function LIB\Rabbit3000\LP35xx.LIB Calls.” The LCD/keypad module functions are described in Section C.7. Other generic functions applicable to all devices based on the Rabbit 3000 microprocessor are described in the Dynamic C Function Reference Manual. Fox (LP3500)
  • Page 53: Lp3500 Function Calls

    4.4 LP3500 Function Calls 4.4.1 LP3500 Power Modes int devPowerSet(int devices, int state); Sets individual devices to low-power or fully active states in the order listed below. PARAMETERS devices is a list of the following macros, which are OR'ed together, that will be affected by the state parameter, e.g., RS232DEV|ADCDEV.
  • Page 54 int powerMode(int mode); Sets the LP3500 operating power. PARAMETERS mode is the operating mode based on the following macros. Typical Current Debug Mode Description Consumption Capable? CCLK = PCLK = MainOsc = 7.3728 MHz CCLK = PCLK = MainOsc/2 = 3.6864 MHz CCLK = PCLK = MainOsc/4 = 1.8423 MHz 5–16 mA CCLK = PCLK = MainOsc/6 = 1.2288 MHz...
  • Page 55 void serCommAlert(int lowpowermode, int maxpowermode, int powersource, unsigned long timeout); Use this function to poll Serial Port E for any activity or until a timeout occurs. The function call forces the LP3500 to enter the low-power mode using the battery for polling. Upon expiration of the timeout or the receipt of a serial byte, this function will enable the normal power mode and exit.
  • Page 56 void digInAlert(int channel, int value, int lowpowermode, int maxpowermode, int powersource, unsigned long timeout) Use this function to poll a selected digital input until a timeout occurs. The function call forces the LP3500 to enter the low-power mode using the battery for polling. Upon activation of the channel or expiration of the timeout, this function will enable the normal power mode and exit.
  • Page 57: Board Initialization

    4.4.2 Board Initialization void brdInit (void); Call this function at the beginning of your program. This function initializes the system I/O ports and loads all the A/D converter and D/A converter calibration constants from flash memory into SRAM for use by your program. If the LCD/keypad module is installed, this function will turn off LED DS1 to indi- cate that the initialization was successful.
  • Page 58: Digital I/O

    4.4.3 Digital I/O void digOut(int channel, int value); OUT0–OUT9) Sets the state of a digital output ( Remember to call brdInit before executing this function. A runtime error will occur for the following conditions: 1. channel or value out of range. 2.
  • Page 59 int digIn(int channel); Reads the state of an input channel (IN00–IN15). A run-time error will occur for the following conditions: 1. channel out of range. 2. brdInit was not executed before executing digIn. PARAMETER channel is the input channel number (0–15) RETURN VALUE The logic state of the input (0 or 1).
  • Page 60: Serial Communication

    For more information, see the Dynamic C User’s Manual and Rabbit’s Technical Note TN213, Rabbit 2000 Serial Port Softwar Use the following function calls with the LP3500.
  • Page 61 void ser485Tx(void); Enables the RS-485 transmitter. Transmitted data get echo'ed back into the receive data buffer. These echo'ed data could be used to know when to disable the transmitter by using one of the following methods: Byte mode—disable the transmitter after the same byte that is transmitted is detected in the receive data buffer.
  • Page 62: A/D Converter Inputs

    4.4.5 A/D Converter Inputs The functions in this section apply only to the LP3500 model. unsigned int anaInConfig(unsigned int instructionbyte, unsigned int cmd, long baud); Use this function to configure the ADS7870 A/D converter. This function will address the ADS7870 in Register Mode only, and will report an error if you try to use it in Direct Mode.
  • Page 63 PARAMETERS instructionbyte will initiate a read or write operation at 8 or 16 bits on the designated register address, for example: checkid = anaInConfig(0x5F, 0, 9600); read ID and set baud rate cmd is the command data that configure the registers addressed by the instruction byte. Enter 0 if per- forming a read operation.
  • Page 64 unsigned int anaInDriver(unsigned int cmd, unsigned int len); Reads the voltage of an analog input channel by serial-clocking an 8-bit command to the ADS7870 device by its Direct Mode method. The conversion begins as soon as the last data bit is transferred. An exception error will occur if Direct Mode bit D7 is not set.
  • Page 65 RETURN VALUE A value corresponding to the voltage on the analog input channel, which will be: 0–2047 for 11-bit A/D conversions (bit 12 for sign) -1 for overflow SEE ALSO anaInConfig, anaIn User’s Manual...
  • Page 66 int anaIn(unsigned int channel, int opmode, int gaincode); Reads the value of an analog input channel using the direct method of addressing the ADS7870 A/D converter. PARAMETERS channel is the analog input channel number (0 to 7) corresponding to AIN0–AIN7 opmode is the mode of operation: SINGLE—single-ended input line DIFF—differential input line...
  • Page 67 int anaInCalib(int channel, int opmode, int gaincode, int value1, float volts1, int value2, float volts2); Calibrates the response of the A/D converter channel as a linear function using the two conversion points provided. Four values are calculated and placed into global table _adcCalib to be stored later store into simulated EEPROM using the function anaInEEWr().
  • Page 68 gaincode is the gain code of 0 to 7: Voltage Gain Code Range 0–20 V 0–10 V 0–5 V 0–4 V 0–2.5 V 0–2 V 0–1.25 V 0–1 V value1 is the first A/D converter channel value (0–2047). volts1 is the voltage or current corresponding to the first A/D converter channel value (0 to +10 V or 4 to 20 mA).
  • Page 69 float anaInVolts(unsigned int channel, unsigned int gaincode); Reads the state of a single-ended analog input channel and uses the previously set calibration constants to convert it to volts. PARAMETER channel is the channel number (0–7): Single-Ended Channel Code Input Lines +AIN0 +AIN1 +AIN2...
  • Page 70 float anaInmAmps(unsigned int channel); Reads the state of an analog input channel and uses the previously set calibration constants to convert it to current. PARAMETER channel is 0–3: 4–20 mA Channel Input Lines AIN0 AIN1 AIN2 AIN3 * Negative input is ground. RETURN VALUE A current value between 4.00 and 20.00 mA corresponding to the current on the analog input channel.
  • Page 71 float anaInDiff(unsigned int channel, unsigned int gaincode); Reads the state of a differential analog input channel and uses the previously set calibration constants to convert it to volts. PARAMETER channel is the channel number (0, 2, 4, 6): Differential Channel Input Lines +AIN0 -AIN1 +AIN2 -AIN3...
  • Page 72 int anaInEERd(unsigned int channel, int opmode, unsigned int gaincode); Reads the calibration constants, gain, and offset for an input based on its designated channel code posi- tion into global table _adcCalib. The constants are stored in the top 1K of the reserved user block memory area 0x1C00–0x1FFF.
  • Page 73 int anaInEEWr(unsigned int channel, int opmode unsigned int gaincode); Writes the calibration constants, gain, and offset for an input based on its designated channel code posi- tion from global table _adcCalib. The constants are stored in the top 1K of the reserved user block memory area 0x1C00–0x1FFF.
  • Page 74: Vcc Monitoring (Lp3500 Only)

    4.4.6 Vcc Monitoring (LP3500 only) void VccMonitorInit(int state); PIO3 on the ADS7870 A/D converter enables or disables Vcc monitoring. If monitoring is enabled, ana- log input channel AIN7 is not available. PARAMETER state 1 = enable Vcc monitor 0 = disable Vcc monitor SEE ALSO VccMonitor, anaInConfig, brdInit float VccMonitor(void);...
  • Page 75: Pwm Outputs

    4.4.7 PWM Outputs The PWM functions in this section can be used to operate the analog outputs on the LP3500 model. int pwmOutConfig(unsigned long frequency); Sets the base frequency for the PWM pulses and enables the PWM driver on all four channels. The base frequency is the frequency without pulse spreading.
  • Page 76: Relay Output (Lp3500 Only)

    4.5 Relay Output (LP3500 only) int relayOut(int relay, int value) A 10 ms low-to-high pulse sets the state of a relay. On power-up or brdInit() the relay contact will go to the normally closed (NC) RESET contact. PARAMETERS relay 0 = the one relay value is a value used to connect the relay common contact: 0 = relay normally closed (NC or RESET) (Parallel Port PG5) 1 = relay normally open (NO or SET) (Parallel Port PG4)
  • Page 77: Appendix A. Lp3500 Specifications

    A. LP3500 S PPENDIX PECIFICATIONS Appendix A provides the specifications for the LP3500, and describes the conformal coating. User’s Manual...
  • Page 78: Electrical And Mechanical Characteristics

    A.1 Electrical and Mechanical Characteristics Figure A-1 shows the mechanical dimensions for the LP3500. 0.120 dia (3.05) RELAY C55 R44 RP13 C50 R36 R40 C54 RESET R20 R25 AIN0 AIN1 AIN2 AIN3 PROGRAM PORT VBAT AIN0 AIN1 AIN2 AIN3 AIN4 AIN5 AIN6 AIN7 GND EXT GND VIN GND 0.29 2.84...
  • Page 79 Table A-1 lists the electrical, mechanical, and environmental specifications for the LP3500. Table A-1. LP3500 Specifications Feature LP3500 LP3510 Microprocessor Rabbit 3000® at up to 7.4 MHz EMI Reduction Spectrum spreader for ultra-low EMI (radiated emissions) Flash Memory 512K (2 × 256K) 256K...
  • Page 80 Table A-1. LP3500 Specifications (continued) Feature LP3500 LP3510 6 shared high-speed, CMOS-compatible ports: • 1 RS-485 • 3 RS-232 (one 5-wire and one 3-wire or three 3-wire), jumper option for Serial Ports logic-level outputs; one RS-232 port needs to have wake-up capability •...
  • Page 81: Exclusion Zone

    A.1.1 Exclusion Zone It is recommended that you allow for an “exclusion zone” of 0.25" (6 mm) around the LP3500 in all directions when the LP3500 is incorporated into an assembly that includes other printed circuit boards. This “exclusion zone” that you keep free of other components and boards will allow for sufficient air flow, and will help to minimize any electrical or electromagnetic interference between adjacent boards.
  • Page 82: Headers

    A.1.2 Headers The LP3500 uses 0.1" IDC headers at J1–J4 for physical connection to other boards. J5, the programming port, is a 2 × 5 header with a 2 mm pin spacing. Figure A-3 shows the LP3500 footprint. These values are relative to the mounting hole. PROGRAM PORT 0.100...
  • Page 83: Conformal Coating

    A.2 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-4. The conformal coating protects these high-impedance circuits from the effects of moisture and contaminants over time.
  • Page 84: Jumper Configurations

    A.3 Jumper Configurations Figure A-5 shows the header locations used to configure the various LP3500 options via jumpers. IN00 IN01 IN02 IN03 IN04 IN05 IN06 IN07 IN08 IN09 IN10 JP13 IN11 IN12 IN13 IN14 4–20 mA IN15 PROGRAM PORT VBAT Figure A-5.
  • Page 85 Table A-2 lists the configuration options. Table A-2. LP3500 Jumper Configurations Factory Header Description Pins Connected Default × None Voltage Option 1–2 AIN0 4–20 mA Option A/D Converter Voltage/Current 3–4 AIN1 4–20 mA Option Measurement Options 5–6 AIN2 4–20 mA Option 7–8 AIN3 4–20 mA Option ×...
  • Page 86 Table A-2. LP3500 Jumper Configurations (continued) Factory Header Description Pins Connected Default × JP11 Manufacturing Use 1–2 × JP12 Manufacturing Use 1–2 × JP13 Manufacturing Use 1–2 NOTE: The jumper connections on header J3 are made using standard slip-on jumpers. All other jumper connections except those across JP11 and JP12 are made using 0 Ω...
  • Page 87: Use Of Rabbit 3000 Parallel Ports

    Backup Battery SMODE0 Flash Support SMODE1 Figure A-6. LP3500 Rabbit-Based Subsystems Table A-3 lists the Rabbit 3000 parallel ports and their use in the LP3500. Table A-3. Use of Rabbit 3000 Parallel Ports Port Signal Output Function State Input IN08...
  • Page 88 Table A-3. Use of Rabbit 3000 Parallel Ports (continued) Port Signal Output Function State Input IN05 Pulled up Input IN06 Pulled up Input IN07 Pulled up Output LCD Buffer Enable Inactive high Output Serial Device Select Inactive high Output TXD Serial Device Int.
  • Page 89 Table A-3. Use of Rabbit 3000 Parallel Ports (continued) Port Signal Output Function State Output ADC Serial Clock Inactive high Input ADC Busy Inactive low Input Not used Pulled up Output ADC Device Select Inactive high Output PWM0 Inactive high...
  • Page 90 Fox (LP3500)
  • Page 91: Appendix B. Prototyping Board

    B. P PPENDIX ROTOTYPING OARD Appendix B describes the features and accessories of the Proto- typing Board included with the LP3500 Tool Kit, and explains the use of the Prototyping Board to demonstrate the LP3500 and to build prototypes of your own circuits. The screw-terminal headers on the Prototyping Board facilitate access to the LP3500 connector pins, and the Prototyping Board is available for purchase separately.
  • Page 92: Mechanical Dimensions And Layout

    B.1 Mechanical Dimensions and Layout Figure B-1 shows the mechanical dimensions and layout for the LP3500 Prototyping Board. 3 V VBAT + 485 – OUT9 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1 OUT0 4.14 (105) Figure B-1. LP3500 Prototyping Board Dimensions Table B-1 lists the electrical, mechanical, and environmental specifications for the Proto- typing Board.
  • Page 93: Using The Prototyping Board

    B.2 Using the Prototyping Board B.2.1 Interface to LP3500 The Prototyping Board serves as a convenient interface for the LP3500, extending the IDC headers to convenient screw-terminal connectors, and provides interfaces to the AC adapter included with the Tool Kit and to a user-supplied external battery. Figure B-2 shows the pinouts for the Prototyping Board.
  • Page 94: Demonstration Board

    LP3500. Four LEDs (DS1–DS4) are connected to PD0–PD3, and four switches (S1–S4) are connected to PE0, PE1, PE4, and PE5 to demonstrate the interface to the Rabbit 3000 microprocessor. NOTE: Before running sample programs based on the LP3500, you will have to plug in the LP3500 to the Prototyping Board as described in Chapter 2, “Getting Started.”...
  • Page 95: Appendix C. Lcd/Keypad Module

    Figure C-1. LCD/Keypad Module Models LCD/keypad modules sold prior to the launch of the LP3500 might not be voltage- compatible with the LP3500. Contact your Rabbit sales representative or your authorized distributor for further assistance in purchasing an LCD/keypad module.
  • Page 96 Table C-1 lists the electrical, mechanical, and environmental specifications for the LCD/ keypad module. Table C-1. LCD/Keypad Specifications Parameter Specification 2.60" × 3.00" × 0.75" Board Size (66 mm × 76 mm × 19 mm) 4.50" × 3.60" × 0.30" Bezel Size (114 mm ×...
  • Page 97: Contrast Adjustment

    C.2 Contrast Adjustment 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 the LP3500 — these modules operate at 3.3 V. You may adjust the contrast using the potentiometer at R2 as shown in Figure C-3.
  • Page 98: Keypad Labeling

    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. 1.10 (28) 2.35 (60) Figure C-4. Keypad Template To replace the keypad legend, remove the old legend and insert your new legend prepared according to the template in Figure C-4.
  • Page 99: Header Pinouts

    C.4 Header Pinouts Figure C-6 shows the pinouts for the LCD/keypad module. Figure C-6. LCD/Keypad Module Pinouts NOTE: Note that there are no connections from headers J2 and J3 of the LCD/keypad module to the LP3500. These headers interface to the keypad and to the LEDs on the LCD/keypad module, and need to be interfaced to the digital I/O on the LP3500 if you need keypad or LED functionality.
  • Page 100: Bezel-Mount Installation

    C.5 Bezel-Mount Installation This section describes and illustrates how to bezel-mount the LCD/keypad module. Follow these steps for bezel-mount installation. 1. Cut mounting holes in the mounting panel in accordance with the recommended dimen- sions in Figure C-7, then use the bezel faceplate to mount the LCD/keypad module onto the panel.
  • Page 101 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. DISPLAY BOARD Figure C-8.
  • Page 102: Connect The Lcd/Keypad Module To Your Lp3500

    Note the locations and connections relative to pin 1 on both the LP3500 and the LCD/key- pad module. Rabbit offers two different lengths of ribbon cable–5" (127 mm) and 2 ft. (60 cm). Contact your authorized distributor or a Rabbit sales representative for more information.
  • Page 103: Lcd/Keypad Module Function Calls

    C.7 LCD/Keypad Module Function Calls The LCD/keypad module is normally off. Add the function call after devPowerSet to turn on the LCD/keypad buffers. brdInit brdInit(); // Initialize the LP3500 devPowerSet(DISPDEV, 1); // Enable LCD/keypad buffer C.7.1 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.
  • Page 104: Lcd Display

    C.7.2 LCD Display The functions used to control the LCD display are contained in the LIB\Rabbit3000\ library. When x and y coordinates on the display screen are DISPLAYS\GRAPHIC.LIB specified, x can range from 0 to 121, and y can range from 0 to 31. These numbers repre- sent pixels from the top left corner of the display.
  • Page 105 void glSetContrast(unsigned level); 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. void glFillScreen(char pattern); 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.
  • Page 106 void glPlotVPolygon(int n, int *pFirstCoord); 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.
  • Page 107 void glFillVPolygon(int n, int *pFirstCoord); 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.
  • Page 108 glFillCircle, glPlotPolygon, glFillPolygon Fox (LP3500)
  • Page 109 void glFillCircle(int xc, int yc, int rad); 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.
  • Page 110 unsigned long glFontCharAddr(fontInfo *pInfo, char letter); Returns the xmem address of the character from the specified font set. PARAMETERS *pInfo is the xmem address of the bitmap font set. letter is an ASCII character. RETURN VALUE xmem address of bitmap character font, column major, and byte-aligned. SEE ALSO glPutFont, glPrintf void glPutFont(int x, int y, fontInfo *pInfo,...
  • Page 111 int glGetPfStep(void); Gets the current glPrintf() printing step direction. Each step direction is independent of the other, and is treated as an 8-bit signed value. The actual step increments depends on the height and width of the font being displayed, which are multiplied by the step values. RETURN VALUE The x step is returned in the MSB, and the y step is returned in the LSB of the integer result.
  • Page 112 void glPrintf(int x, int y, fontInfo *pInfo, char *fmt, ...); 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, '\b', '\t', '\n' and '\r' (ASCII backspace, tab, new line, and carriage return, respectively) will be printed if they exist in the font set, but will not have any effect as control characters.
  • Page 113 void glSwap(void); 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 (located in the library specifically for the LCD glBuffUnlock, glBuffLock, _glSwapData that you are using) void glSetBrushType(int type);...
  • Page 114 void glPlotLine(int x0, int y0, int x1, int y1); Draws a line in the LCD buffer, and on the LCD if the buffer is unlocked. Any portion of the line that is beyond the LCD display area will be clipped. PARAMETERS x0 is the x coordinate of one endpoint of the line.
  • Page 115 void glUp1(int left, int top, int cols, int rows); Scrolls byte-aligned window up one pixel, bottom 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.
  • Page 116 void glHScroll(int left, int top, int cols, int rows, int nPix); 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 window must be byte-aligned. Parameters will be verified for the following: 1.
  • Page 117 void glVScroll(int left, int top, int cols, int rows, int nPix); 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.
  • Page 118 void glXPutFastmap(int left, int top, int width, int height, unsigned long bitmap); 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 will be clipped.
  • Page 119 void TextGotoXY(windowFrame *window, int col, int row); Sets the cursor location to display the next character. The display location is based on the height and width of the character to be displayed. NOTE: Execute the function before using this function. TextWindowFrame PARAMETERS *window is a pointer to a font descriptor.
  • Page 120 void TextPutChar(struct windowFrame *window, char ch); Displays a character on the display where the cursor is currently pointing. If any portion of a bitmap character is outside the LCD display area, the character will not be displayed. The cursor increments its position as needed.
  • Page 121: Keypad

    C.7.3 Keypad The functions used to control the keypad are contained in the Dynamic C LIB\ library. Rabbit3000\DISPLAYS\ KEYPADS\KEYPAD7.LIB void keyInit(void); Initializes keypad process RETURN VALUE None. SEE ALSO brdInit void keyConfig(char cRaw, char cPress, char cRelease, char cCntHold, char cSpdLo, char cCntLo, char cSpdHi);...
  • Page 122 cSpdHi is a high-speed repeat tick, which is approximately one debounce period or 5 µs. How many times to repeat after low speed repeat. 0 = None. RETURN VALUE None. SEE ALSO keyProcess, keyGet, keypadDef void keyProcess(void); Scans and processes keypad data for key assignment, debouncing, press and release, and repeat. NOTE: This function is also able to process an 8 x 8 matrix keypad.
  • Page 123 void keypadDef(); Configures the physical layout of the keypad with the default ASCII return key codes. Keypad physical mapping 1 x 7 ['L'] ['U'] ['D'] ['R'] ['–'] ['+'] ['E'] where 'D' represents Down Scroll 'U' represents Up Scroll 'R' represents Right Scroll 'L' represents Left Scroll '–' represents Page Down '+' represents Page Up...
  • Page 124: Sample Programs

    C.8 Sample Programs Sample programs illustrating the use of the LCD/keypad module with the LP3500 board are provided in the directory. SAMPLES\LP3500\Display_Keypad To run a sample program, open it with the menu (if it is not still open), compile it File using the menu, and then run it by selecting...
  • Page 125: Appendix D. Plastic Enclosure

    D. P PPENDIX LASTIC NCLOSURE The plastic enclosure provides a secure way to protect your LP3500. The enclosure itself may be mounted on any flat sur- face. The complete plastic enclosure consists of a base and a cover. The base alone is a convenient surface on which to mount the LP3500, and also provides a means to mount the LP3500 on any flat surface.
  • Page 126: Assembly Instructions

    D.1 Assembly Instructions 1. Remove any stand-offs on the LP3500 board or LP3500 board/Prototyping Board com- bination to be enclosed. RELAY C55 R44 RP13 RESET AIN0 AIN1 AIN2 AIN3 PROGRAM PORT GND VBAT AIN0 AIN1 AIN2 AIN3 AIN4 AIN5 AIN6 AIN7 GND EXT GND VIN GND Figure D-1.
  • Page 127 3. Mount plastic enclosure (optional). Use four #10 screws to attach the plastic enclosure at the four outer corner mounting holes to the surface on which it will be mounted. This step will be most suitable to production versions of LP3500 units once development has been completed. 4.
  • Page 128: Dimensions

    D.2 Dimensions Figure D-4 shows the dimensions for the plastic enclosure. 0.70 (18) 0.375" (9.5 mm) is cut off each corner 5.00 (127) 4.35 (110) 0.25 1.375 2.85 (6.4) (35) (72) 5.60 (142) Figure D-4. Plastic Enclosure Dimensions Fox (LP3500)
  • Page 129: Appendix E. Power Management

    E. P PPENDIX OWER ANAGEMENT Appendix E describes the power circuitry provided on the LP3500. The LP3500 can operate from an unregulated external power source, or from an external battery. There is onboard bat- tery backup for the SRAM and the real-time clock. E.1 External Power Supply Power is normally supplied to the LP3500 via pins 16 and 17 of header J2 on the LP3500.
  • Page 130 Table E-1 lists the sections. devPowerSet Table E-1. LP3500 Sections That Can Be Turned Off Controlled by LP3500 Section Power Consumption Rabbit 3000 Port RS-232 8 mA with load RS-485 0.1 mA with no load A/D Converter 0.45 mA at 1.5 ksample/s sampling rate...
  • Page 131: Batteries And External Battery Connections

    Parallel Port PF7 on the Rabbit 3000 chip controls whether the linear regulator is on or off. Parallel Port PB0 senses whether there is an output from the linear regulator, and shuts off the RS-232 (except RxE, which is used to “listen”), RS-485, A/D converter, and relay sec- tions via Parallel Ports PB6, PG0, PG1, PG4, and PG5 to conserve power.
  • Page 132: Replacing The Backup Battery

    E.2.1 Replacing the Backup Battery The battery is user-replaceable, and is fitted in a battery holder. To replace the battery, lift up on the spring clip and slide out the old battery. Use only a Panasonic CR2330 or equiv- alent replacement battery, and insert it into the battery holder with the + side facing up. NOTE: The SRAM contents and the real-time clock settings will be lost if the battery is replaced with no power applied to the LP3500.
  • Page 133: Reset Generator

    E.2.3 Reset Generator The LP3500 module uses a reset generator on the module, U11, to reset the Rabbit 3000 microprocessor when the voltage drops below the voltage necessary for reliable operation. The reset occurs between 2.55 V and 2.75 V, typically 2.63 V.
  • Page 134 Fox (LP3500)
  • Page 135: Appendix F. Running A Sample Program

    F. R PPENDIX UNNING A AMPLE ROGRAM Appendix G goes through the steps of running a sample program with the LP3500 connected to the Prototyping Board. Sample programs are provided in the Dynamic C folder. The various directories Samples in the folder contain specific sample programs that illustrate the use of the cor- Samples responding Dynamic C libraries.
  • Page 136 2. +K must be connected to an external power supply. A 0 Ω resistor on the Prototyping Board (R1) ties +K to VIN from the AC adapter and thus satisfies this requirement as long as the LP3500 is connected to the Prototyping Board. 3.
  • Page 137: Index

    .... 40 select) ......79 anaInDriver ....58 installation ......14 JP5 (RxB RS-232/logic level anaInEERd ....66 Rabbit Embedded Security select) ......79 anaInEEWr ....67 Pack ......5, 41 JP6 (TxB RS-232/logic level anaInmAmps ....64 standard features select) ......
  • Page 138 ..107 dimensions ......86 glGetPfStep ....105 specifications .....86 glHScroll ....110 pinout glInit ......98 LCD/keypad module ..93 glLeft1 .....108 Rabbit 3000 LP3500 headers ....18 glPlotCircle ....101 parallel ports ......81 plastic enclosure ....3, 119 glPlotDot ....107 real-time clock assembly instructions ..120 glPlotLine ....108 battery backup ....125...
  • Page 139 sample programs (continued) specifications LCD/keypad module . 45, 118 LCD/keypad module KEYBASIC.C ....92 dimensions ....90 PONG.C ......15 electrical ......90 power modes header footprint ..... 90 POWER.C ..... 42 mechanical ....90 PWM outputs relative pin 1 locations .. 90 PWMOUT.C ....
  • Page 140 Fox (LP3500)
  • Page 141: Schematics

    CHEMATICS 090-0150 LP3500 Schematic www.rabbit.com/documentation/schemat/090-0150.pdf 090-0151 LP3500 Prototyping Board Schematic www.rabbit.com/documentation/schemat/090-0151.pdf 090-0156 LCD/Keypad Module Schematic www.rabbit.com/documentation/schemat/090-0156.pdf 090-0128 Programming Cable Schematic www.rabbit.com/documentation/schemat/090-0128.pdf You may use the URL information provided above to access the latest schematics directly. User’s Manual...
  • Page 143 Mouser Electronics Authorized Distributor Click to View Pricing, Inventory, Delivery & Lifecycle Information: Rabbit Semiconductor 101-0526 101-0530...

Table of Contents