DLP-IO20 USB-Based 20-Channel Data-Acquisition

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