DLP-IO20 LEAD-FREE USB-Based 20-Channel Data-Acquisition Module FEATURES: • 20 Channels: 14 Analog Inputs 0-5V, Up to 20Ksps Sample Rate, 2 Latching Relays, Digital I/O Two Relay Driver Outputs (5V Coil) Digital Temperature Sensor Feature Supported on All Digital I/O’s Two 32-Bit Interrupt-Driven Event Counters USB Port Powered USB 1.1- and 2.0-Compatible Interface Small Footprint; Easily Fits On a Desktop Easy-To-Use Programming Interface • • • • • • • APPLICATIONS: • • • • • • • Robotics Control Motion Control/Presentation Data Acquisition Industrial/Process Control Process Monitoring Relay Control Audio Analysis 1.0 INTRODUCTION The DLP-IO20 Data-Acquisition Module is a low-cost, easy-to-use data-acquisition system for analyzing AC voltages, driving 5-volt relays, controlling and monitoring processes and measuring DC voltages in the range of 0-5 volts. This module provides topside wire terminal blocks for the wiring connections. The 20 channels on the DLP-IO20 are broken down as follows: 3 outputs with high current relay/LED drivers and 17 digital I/O; 14 of which can be set to analog input mode. The DLP-IO20 also provides two latching relay contacts. Each of the channels and relay contacts can be controlled via simple, multi-byte commands. All operational power is taken from the host PC via the USB port. Rev. 1.0 (September 2009) 1 © DLP Design, Inc. The mode of each I/O is automatically changed with each command sent. For example, if an I/O is set to Digital Output-High and then the Digital Input Mode is selected, the I/O is first changed to Input Mode and then the high/low state is read and returned to the host. 2.0 SPECIFICATIONS The DLP-IO20 is an all 5-volt system that derives its power from the host USB port. Channels have the following capabilities: Relay Contacts: There are two sets of relay contacts on the board. These contacts are latching and are capable of handling resistive loads of up to 4A @ 30 VDC, 0.6A @ 110 VDC and 1A @ 125 VAC. Each of the two on-board relays has two sets of SPDT contacts that have been connected in parallel to increase the current carrying capability. (These are detailed in Section 6 under the table describing K1 and K2.) Relay Drivers: There are three relay driver outputs on the board. These outputs connect to one side of a 5V relay coil, and the side of the coil is connected to the +5V terminal. Analog In: Fourteen inputs can read and return the voltage on the analog inputs using a 10-bit ADC. The maximum sample rate is 20Ksps. The input voltage range is 0-5 Volts. (Refer to Section 7 of this document for more details.) Digital Output: Set high, or clear low; configurable as digital outputs (5V). (The actual high/low voltage depends upon sink/source current.) Digital Input: Read the input’s high/low state. 3.0 ABSOLUTE MAXIMUM RATINGS Stresses beyond the ranges listed below may cause permanent damage to the DLP-IO20: Operating Temperature: 0-70°C Voltage on Digital Inputs with Respect to Ground: -0.3V to +5.3V Voltage on Analog Inputs with Respect to Ground: -0.3V to +5.3V Voltage on Relay Contacts with Respect to Ground/Return: 110VDC, 125VAC Sink/Source Current on Any I/O: 25mA Sink/Source Current on All I/O Combined: 90mA 4.0 WARNINGS • Unplug from the host PC before connecting to the I/O terminals on the DLP-IO20. • Isolate the bottom of the board from all conductive surfaces. • Observe static precautions to prevent damage to the DLP-IO20 module. Rev. 1.0 (September 2009) 2 © DLP Design, Inc. 5.0 USB DRIVERS USB drivers for the following operating systems are available for download from the DLP Design website: Windows XP x64 Windows Server 2003 Windows 2000 Windows 98, ME Mac OSX Mac OS9 Mac OS8 Linux These drivers are available for download from the following page: http://www.dlpdesign.com/DNLD8/. Note: If you are utilizing the dual-mode drivers from FTDI (CDM2.x.x) and you want to use the Virtual COM Port (VCP) drivers, then it may be necessary to disable the D2XX drivers first via Device Manager. To do so, right click on the entry under USB Controllers that appears when the DLP-IO20 is connected, select Properties, select the Advanced tab, put a check in the option for “Load VCP” and click OK. Then unplug and replug the DLP-IO20, and a COM port should appear in Device Manager under Ports (COM & LPT). 6.0 TERMINAL BLOCK PIN DEFINITIONS The wiring terminals on the DLP-IO20 are explained in the following table: TABLE 1 J1 Prototyping Terminal Block Pin Definitions PIN NAME R1 C1 S1 GND P7 P6 P5 +5V AN7 AN6 AN5 AN4 RA4 DESCRIPTION Latching Relay 1 Reset Contact (see Note 3) Latching Relay 1 Common Contact (see Note 3) Latching Relay 1 Set Contact (see Note 3) Ground Relay Driver Output P7. Driven by Darlington pair transistors powered by 5V from the USB port (see Note 4). Relay Driver Output P6. Driven by Darlington pair transistors powered by 5V from the USB port (see Note 4). Relay Driver Output P5. Driven by Darlington pair transistors powered by 5V from the USB port (see Note 4). VCC Output +5.0V. Limit current drawn from this pin to 100mA to avoid exceeding the available current from the host USB port. Analog Input AN7. Input voltage range is 0 to +5V (see Note 1). Digital I/O AN7; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Analog Input AN6. Input voltage range is 0 to +5V (see Note 1). Digital I/O AN6; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Analog Input AN5. Input voltage range is 0 to +5V (see Note 1). Digital I/O AN5; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Analog Input AN4. Input voltage range is 0 to +5V (see Note 1). Digital I/O AN4; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Digital I/O RA4; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Rev. 1.0 (September 2009) 3 © DLP Design, Inc. AN3 GND AN12 AN10 AN8 AN9 AN11 AN13 RB6 RB7 AN0 AN1 AN2 GND S2 C2 R2 Analog Input AN3. Input voltage range is 0 to +5V (see Note 1). Digital I/O AN3; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Ground Analog Input AN12. Input voltage range is 0 to +5V (see Note 1). Digital I/O AN12; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Analog Input AN10. Input voltage range is 0 to +5V (see Note 1). Digital I/O AN10; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Analog Input AN8. Input voltage range is 0 to +5V (see Note 1). Digital I/O AN8; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Analog Input AN9. Input voltage range is 0 to +5V (see Note 1). Digital I/O AN9; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Analog Input AN11. Input voltage range is 0 to +5V (see Note 1). Digital I/O AN11; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Analog Input AN13. Input voltage range is 0 to +5V (see Note 1). Digital I/O AN13; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Digital I/O RB6; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Digital I/O RB7; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Analog Input AN0. Input voltage range is 0 to +5V (see Note 1). Digital I/O AN0; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Analog Input AN1. Input voltage range is 0 to +5V (see Note 1). Digital I/O AN1; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Analog Input AN2. Input voltage range is 0 to +5V (see Note 1). Digital I/O AN2; configurable as a digital input, a digital output (5V) or an open-drain output (5V max pullup) (see Note 2). Ground Latching Relay 2 Set Contact (see Note 3) Latching Relay 2 Common Contact (see Note 3) Latching Relay 2 Reset Contact (see Note 3) Notes: 1. The Analog Input Range is 0-5V. The maximum sample rate is 20Ksps. Refer to Section 7 for more details. 2. Digital outputs can sink or source 25mA; 90mA for all combined. Open-drain outputs are implemented by making the I/O pin an input. The maximum pullup voltage is 5.3 volts. 3. Relay contacts can support resistive loads of up to 4A @ 30 VDC, 0.6A @ 110 VDC and 1 A @ 125 VAC. If this value is exceeded, the DLP-IO20 can be damaged. The relay is set and reset under software control. For a functional schematic of the relay connections, refer to Figure 8. Rev. 1.0 (September 2009) 4 © DLP Design, Inc. 4. The DLP-IO20 uses a single-package multi-device driver (ULN2003APW). If only one of the driver channels is being used, it can provide a peak current of 300mA at a 100% duty cycle; but if all three channels are being used, they can only provide a peak current of 100mA each at a 100% duty cycle. The 5V power source provided by the host USB interface has limited power. For this reason the amount of current drawn by the relay drivers MUST be limited to 300mA or there may not be enough current available to power the board, and the PC’s USB port could be damaged. 7.0 RELAY FUNCTIONAL SCHEMATIC The DLP-IO20 contains two latching relays. These are controlled by host software. The relay contacts R1, S1, C1, R2, S2 and C2 are described in Table 1. A functional view of how one of the relays works is shown here: Figure 1: Relay Functional Schematic Note: On power-up of the DLP-IO20, the relay states will be unknown. Each can power up in either the set or reset state. If a known initial state is required, the user will need to issue either a set or reset command upon power-up. 8.0 USING THE DLP-IO20 Simply connect the DLP-IO20 to the PC to initiate the loading of USB drivers. Once the USB drivers are loaded, the DLP-IO20 is ready for use. All commands are issued as multi-byte command packets consisting of at least two bytes. Figure 2: Multi-Byte Command Packets Rev. 1.0 (September 2009) 5 © DLP Design, Inc. You can either utilize the TestApp program provided with the DLP-IO20 (as described in Section 8), or you can write your own program in your language of choice. Begin by opening the COM port, and send multi-byte commands as shown in Table 2 below. There is no need to set the baud rate because the DLP-IO20 uses a parallel interface between the USB IC and the microcontroller. (The Ping command can be used to locate the correct COM port used for communicating with the DLP-IO20, or you can look in Device Manager to see which port was assigned by Windows.) TABLE 2 Command Packets Command Packet Ping Flash LED Description Issue Ping LED Control Flashes the D1 LED Turn the D1 LED On/Off Relay Control Set/Reset Relays Rev. 1.0 (September 2009) Hex Byte Value Return/Comments 0 0x02 2-Byte Packet 1 0x27 Y (0x59) will be returned if the DLP-IO20 is found on the selected port 0 0x02 2-Byte Packet 1 0x28 Nothing Returned 0 0x03 3-Byte Packet 1 0x29 LED Control Command 2 0x00 LED D1 port pin set Low (0) turns LED on 0x01 LED D1 port pin set High (1) turns LED off Nothing Returned 0 0x04 4-Byte Packet 1 0x30 Relay Control Command 2 0x01 Select Relay 1 0x02 Select Relay 2 3 0x00 Set Relay 0x01 Reset Relay Nothing Returned 6 © DLP Design, Inc. Digital I/O Command Control Direction and Output Value on Digital I/O 0 1 2 3 4 Enable/ Clear Event Counter Command Enable and Clear Event Counter on Channels RB6 and RB7 0 1 2 Read Event Read Event Counter Counter on Command Channels RB6 and RB7 0 1 2 3 0x05 0x35 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13 0x00 0x01 0x00 0x01 0x04 0x36 0x06 0x07 0x00 0x01 0x03 0x37 0x06 0x07 5-Byte Packet Digital I/O Command Select Channel AN0 Select Channel AN1 Select Channel AN2 Select Channel AN3 Select Channel AN4 Select Channel AN5 Select Channel AN6 Select Channel AN7 Select Channel AN8 Select Channel AN9 Select Channel AN10 Select Channel AN11 Select Channel AN12 Select Channel AN13 Select Channel RA4 Select Channel P5 Select Channel P6 Select Channel P7 Select Channel RB7 Select Channel RB6 Channel Configured as Digital Output Channel Configured as Digital Input Digital Output Set Low (0) Digital Output Set High (1) Note: Byte 4 is only used in output mode but must be included in all Digital IO Command Packets. When Byte 3 is set for input (0x01), a single byte is returned. 4-Byte Packet Enable and Clear Event Counter Command Channel RB6 Channel RB7 Trigger Event Count on Falling Edge Trigger Event Count on Rising Edge Nothing Returned 3-Byte Packet Read Event Counter Command Channel D6 Channel D7 32-bit count value returned as 4 bytes with the LS byte first. Rev. 1.0 (September 2009) 7 © DLP Design, Inc. Detect Sensor Command Determine if Temperature Sensor is Present and Retrieve the Serial Number 0 1 2 (Designed to work with the DS18B20+ sensor) 0x03 0x39 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 0x0E 0x12 0x13 3-Byte Packet Detect Sensor Command (see Note 3) Select Channel AN0 Select Channel AN1 Select Channel AN2 Select Channel AN3 Select Channel AN4 Select Channel AN5 Select Channel AN6 Select Channel AN7 Select Channel AN8 Select Channel AN9 Select Channel AN10 Select Channel AN11 Select Channel AN12 Select Channel AN13 Select Channel RA4 Select Channel RB7 Select Channel RB6 8 Bytes are Returned by the Detect Command: Convert Sensor Command Initiate Sensor Conversion 0 1 2 0x03 0x40 0x010x13 0 : LS Byte (0) of Sensor Serial Number, or the following: 1 = Error: Short Circuit; Data Always Low 2 = Error: No DS18B20+ Sensor Detected 1 : Byte (1) of Sensor Serial Number; 0x00 on Error 2 : Byte (2) of Sensor Serial Number; 0x00 on Error 3 : Byte (3) of Sensor Serial Number; 0x00 on Error 4 : Byte (4) of Sensor Serial Number; 0x00 on Error 5 : Byte (5) of Sensor Serial Number; 0x00 on Error 6 : Byte (6) of Sensor Serial Number; 0x00 on Error 7 : MS Byte (7) of Sensor Serial Number; 0x00 on Error 3-Byte Packet Convert Sensor Command (see Notes 1 & 2) Select Channel 0x00-0x13 (see Command 0x39 above) The host software must wait for conversion to complete before valid data can be read. Read Sensor Command 0 1 2 0x03 0x41 0x010x13 Nothing Returned 3-Byte Packet Read Sensor Command (see Note 3) Select Channel 0x00-0x13 (see Command 0x39 above) 2 bytes are returned: 0 : LS Byte Temperature Value (see Note 3) 1: MS Byte of Temperature Value (see Note 3) 0x00 returned for both bytes indicates conversion not complete. A successful read initiates another conversion. Rev. 1.0 (September 2009) 8 © DLP Design, Inc. Sensor Resolution Command Configure the Sensor’s Resolution 0 1 2 3 0x04 0x42 0x010x13 0x09 0x0A 0x0B 0x0C Single Channel A/D Conversion Command Convert and Read the Analog Voltage on Selected Channel 0 1 2 0x03 0x50 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C 0x0D 4-Byte Packet Set Resolution Command (see Note 3) Select Channel 0x00-0x13 (See Command 0x39 above) 9-Bit Resolution (0.5 OC); 94mS Max Convert Time 10-Bit Resolution (0.25 OC); 188mS Max Convert Time 11-Bit Resolution (0.125 OC); 375mS Max Convert Time 12-Bit Resolution (default) (0.0625 OC; 750mS Max Convert Time Nothing Returned 3-Byte Packet Single-Channel A/D Convert/Read Command Select Channel AN0 Select Channel AN1 Select Channel AN2 Select Channel AN3 Select Channel AN4 Select Channel AN5 Select Channel AN6 Select Channel AN7 Select Channel AN8 Select Channel AN9 Select Channel AN10 Select Channel AN11 Select Channel AN12 Select Channel AN13 2 Bytes are Returned by the A/D Command: SingleChannel A/D Multiple Conversion Command Perform Multiple A/D Conversions on the Selected Channel, and Return the Data after Each Conversion Rev. 1.0 (September 2009) 0 1 2 3 4 0x05 0x51 0x010x0D 0x00 0x01 0x02 0x03 0x04 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0 : Least Significant Byte of Voltage Value 1 : Most Significant Byte of Voltage Value 5-Byte Packet Single-Channel A/D Multiple Conversion Command Select Channel 0x00-0x0D (see Command 0x50) Rate = 1K Samples per Second Rate = 2K Samples per Second Rate = 4K Samples per Second Rate = 10K Samples per Second Rate = 20K Samples per Second Number of Samples = 128 Returns data in real time Number of Samples = 256 as each A/D conversion Number of Samples = 512 completes; 2 bytes are Number of Samples = 1024 returned for each Number of Samples = 2048 conversion. Number of Samples = 4096 Number of Samples = 8192 9 © DLP Design, Inc. Continuous Read Command Stream Voltage Data Collected from Selected Channel Until Commanded to Stop 0 1 2 3 0x04 0x52 0x010x0D 0x000x 01 0x02 0x03 0x04 Set External A/D Reference 0 1 0x02 0x53 Set Internal A/D Reference 0 1 0x02 0x54 4-Byte Packet Single-Channel A/D Multiple Conversion Command Select Channel 0x00-0x0D (see Command 0x50) Rate = 1K Samples per Second Rate = 2K Samples per Second Rate = 4K Samples per Second Rate = 10K Samples per Second Rate = 20K Samples per Second Data will be streamed to the host until any byte is sent, at which point this command will be terminated. 2-Byte Packet Select the A/D reference voltage connected to the AN3 pin. (The valid range is 2.7-5.0V.) This voltage sets the maximum voltage that can be measured by the A/D. 2-Byte Packet Use the USB host 5V power source as the reference voltage (default). Notes: 1. Requires DS18B20+ digital temperature sensor (purchased separately). See Section 9.0 of this document for connection details. 2. Before issuing a Convert Sensor Command, make sure that a digital temperature sensor is present on the selected digital I/O channel with a 1.5K-ohm pull-up resistor. 3. The temperature value returned is in OC and is assigned a 16-bit value. When the MS bit is high, this indicates a negative temperature. The user will need to handle the sign and convert the negative number before translating the binary representation into a decimal temperature value. One example of how to do this is shown in the DLP-IO20 demo code provided. Other examples are available from www.maxim-ic.com in Application Note AN162.pdf. Rev. 1.0 (September 2009) 10 Inc. © DLP Design, 9.0 CONNECTING THE DIGITAL TEMPERATURE SENSOR Up to 17 DS18B20+ digital temperature sensors can be connected to the DLP-IO20. For best performance, use Category 5/6 type computer cable to connect the sensors to the DLP-IO20. Two twisted-pair wires in the Cat 5/Cat 6 cable are required for the connection. The first pair are for Power (5V) and Ground, and the second pair are designated as Data and Ground. In addition, a 1.5K-ohm pull-up resistor is required for the data line. Figure 3 shows an example of this connection using Channel AN7: AN5 AN4 RA4 AN3 GND AN12 AN10 AN8 AN9 AN11 GND P6 P5 +5V AN7 AN6 AN13 RB6 RB7 AN0 AN1 Pin 1 1. GND 2. DATA 3. VCC AN7 +5V DS18B20+ 1.5K Ohm S1 S2 GND GND P7 AN2 C1 C2 R1 R2 DLP-IO20 Figure 3: Digital Temperature Sensor Connection Example To detect a sensor, send the DLP-IO20 the Detect Sensor Command (0x39) packet for the appropriate channel. Eight bytes will be returned from this command packet. If the channel is stuck Low, a “1” will be returned in the first byte. If no sensor is present, then a “2” will be returned in the first byte. In these two cases, the remaining seven bytes will be all zeroes. If a sensor is present and functional, its 8-byte serial number will be returned. Next, send a Convert Sensor Command (0x40) to initiate the temperature-conversion process. At this point, a Read Sensor Command (0x41) packet can be issued to obtain the temperature value. The conversion can take up to 750mS to complete depending upon the resolution setting. All commands are detailed in Table 2 under Section 8 of this datasheet. Rev. 1.0 (September 2009) 11 Inc. © DLP Design, 10.0 DEMO APPLICATION PROGRAM A test application program called IO20Demo is provided with the purchase of the DLP-IO20 that runs on Windows XP/Vista and can be used to interface with and control the DLP-IO20. (Note that the Visual C++ source is also available with the purchase of the DLP-IO20.) This application is designed to demonstrate all available features: Figure 4: Test Application GUI The version of the application provided for download with the DLP-IO20 targets Windows XP and Vista, but the Visual C++ 6.0 source code is available (upon purchase of the DLP-IO20) so that the application can be retargeted for different operating systems. Rev. 1.0 (September 2009) 12 Inc. © DLP Design, 11.0 MECHANICAL DIMENSIONS IN INCHES (MM) 1.90 typ (48.3 typ) 1.60 typ (40.7 typ) GND RA4 AN3 AN4 AN5 0.41 typ (10.3 typ) P6 P5 +5V AN7 AN6 AN13 RB6 RB7 AN0 AN1 3.60 typ (91.5 typ) AN12 AN10 AN8 AN9 AN11 3.30 typ (83.8 typ) 0.50 typ (12.7 typ) 4.88 typ (98.6 typ) S1 S2 GND GND P7 AN2 C1 C2 R1 R2 DLP-IO20 12.0 DISCLAIMER © DLP Design, Inc., 2000-2009 Neither the whole nor any part of the information contained herein nor the product described in this manual may be adapted or reproduced in any material or electronic form without the prior written consent of the copyright holder. This product and its documentation are supplied on an as-is basis, and no warranty as to their suitability for any particular purpose is either made or implied. DLP Design, Inc. will not accept any claim for damages whatsoever arising as a result of the use or failure of this product. Your statutory rights are not affected. This product or any variant of it is not intended for use in any medical appliance, device or system in which the failure of the product might reasonably be expected to result in personal injury. This document provides preliminary information that may be subject to change without notice. Rev. 1.0 (September 2009) 13 Inc. © DLP Design, 13.0 CONTACT INFORMATION DLP Design, Inc. 1605 Roma Lane Allen, TX 75013 Phone: Fax: Email Sales: Email Support: Website URL: 469-964-8027 415-901-4859 [email protected] [email protected] http://www.dlpdesign.com Rev. 1.0 (September 2009) 14 Inc. © DLP Design, USB CONN RST1 COM1 SET1 P7 P6 P5 SWVCC AN7 AN6 5 CN1 C7 .01uF 1 FB1 240-1018-1 2 C3 .1uF RD5 RD6 RD7 SET1 RST1 SET2 RST2 17 8 19 24 27 28 20 1 2 3 4 C2 10uF/10V C5 47pF C10 .1uF C1 C6 47pF SWVCC 16 15 RST2 COM2 SET2 AN11 AN9 AN8 AN10 AN12 AN1 AN0 PGD/RB7 PGC/RB6 AN13 AN2 .47uF 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 DLP-IO20 v1.0 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 4 VCC5 IN USBDM USBDP VCCIN/NC RESET# AVCC/NC OSCI OSCO U1 1C 2C 3C 4C 5C 6C 7C U3 ULN2003A/TSSOP 16 15 14 13 12 11 10 1B 2B 3B 4B 5B 6B 7B COM .1uF C? 9 1 2 3 4 5 6 7 3V3OUT FT245R 4 D0 D1 D2 D3 D4 D5 D6 D7 RXF# TXE# RD# WR PWREN P5 P6 P7 1 5 3 11 2 9 10 6 23 22 13 14 12 DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 RXF TXE RD WR 3 R1 30K 8 6 7 5 10 3 8 6 7 5 10 3 SWVCC C9 .1uF K2 r s r s set rst EE2-3TNU K1 r s 1 12 9 4 Q1 IRLML6402CT P COM2 COM1 4 r s EE2-3TNU set rst 9 1 12 3 NC2 NO2 NC1 NO1 SWVCC R3 5.1 SWVCC R2 47K MCLR PGC/RB6 PGD/RB7 2 2 AN0 AN1 AN2 AN3/VREF RA4 AN4 AN12 AN10 AN8 AN9 AN11 AN13 PGC/RB6 PGD/RB7 MCLR C8 18pF C13 18pF DB0 DB1 DB2 DB3 DB4 DCLK OSC2 OSC1 SWVCC RB6/PGC RB7/PGD RE3/MCLR/VPP RB0/AN12 RB1/AN10 RB2/AN8 RB3/AN9/PGM RB4/AN11 RB5/AN13 RA0/AN0/ RA1/AN1 RA2/AN2 RA3/AN3/VREF+ RA4/T0CKI RA5/AN4 U2 16F887 19 20 21 22 23 24 8 9 10 11 14 15 16 17 18 30 Y1 20MHz 31 Vpp Clock Vcc Gnd Data J1 PROGRAMMING HEADER 1 2 3 4 5 LED 3 4 7 8 13 14 17 18 1 11 MR CP 1 C11 .1uF RC0 RC1 RC2 RC3 RC4 RC5 RC6 RC7 RD0 RD1 RD2 RD3 RD4 RD5 RD6 RD7 RE2/AN7 RE1/AN6 RE0/AN5 C4 10uF D0 D1 D2 D3 D4 D5 D6 D7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 2 5 6 9 12 15 16 19 D1 GREEN 1 U4 74ACT273 SWVCC VSS VSS D C B A AN5 AN4 RA4 AN3/VREF 5 6 29 VCC 20 GND 10 4 VCCIO 7 28 NC NC NC NC VDD VDD 34 33 13 12 AGND GND GND GND TEST 25 7 18 21 26 GND 8 C12 .1uF 32 35 36 37 42 43 44 1 38 39 40 41 2 3 4 5 27 26 25 C? .1uF RST2 SET2 RST1 SET1 LED R50 150 5% DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 DCLK WR TXE RXF RD RD5 RD6 RD7 AN7 AN6 AN5 SWVCC D C B A