MCP 23016
MCP 23016
MCP23016
GP1.3 5 24 GP0.3
eight devices
INT 6 23 GP0.2
• High-current drive capability per I/O: ±25 mA GP1.4 7 22 GP0.1
VSS 8 21 GP0.0
• Open-drain interrupt output on input change CLK 9 20 VDD
• Interrupt port capture register TP 10 19 VSS
GP1.5 11 18 A2
• Internal Power-On Reset (POR) GP1.6 12 17 A1
GP1.7 13 16 A0
• Polarity inversion register to configure the polarity SCL 14 15 SDA
of the input port data
GP1.1
GP1.0
GP0.7
GP0.6
GP0.5
GP0.4
• Compatible with most microcontrollers QFN
Vss
• Available temperature range:
- Industrial (I): -40°C to +85°C
28 27 26 2524 23 22
GP1.2 1 21 GP0.3
CMOS Technology GP1.3 2 20 GP0.2
INT 3 19 GP0.1
• Operating Supply Voltage: 2.0V to 5.5V GP1.4 4 MCP23016 18 GP0.0
VSS 5 17 VDD
• Low standby current CLK 6 16 VSS
TP 7 15 A2
8 9 10 11 121314
Packages GP1.5
GP1.6
GP1.7
SCL
A0
A1
SDA
• 28-pin PDIP, 300 mil; 28-pin SOIC, 300 mil
• 28-pin SSOP, 209 mil; 28-pin QFN, 6x6 mm
Block Diagram
Port Registers
GP0 GP0.7 GP0.6 GP0.5 GP0.4 GP0.3 GP0.2 GP0.1 GP0.0 0000 0000
GP1 GP1.7 GP1.6 GP1.5 GP1.4 GP1.3 GP1.2 GP1.1 GP0.0 0000 0000
OLAT0 OL0.7 OL0.6 OL0.5 OL0.4 OL0.3 OL0.2 OL0.1 OL0.0 0000 0000
OLAT1 OL1.7 OL1.6 OL1.5 OL1.4 OL1.3 OL1.2 OL1.1 OL1.0 0000 0000
Configuration Registers
IPOL0 IGP0.7 IGP0.6 IGP0.5 IGP0.4 IGP0.3 IGP0.2 IGP0.1 IGP0.0 0000 0000
IPOL1 IGP1.7 IGP1.6 IGP1.5 IGP1.4 IGP1.3 IGP1.2 IGP1.1 IGP1.0 0000 0000
IODIR0 IOD0.7 IOD0.6 IOD0.5 IOD0.4 IOD0.3 IOD0.2 IOD0.1 IOD0.0 1111 1111
IODIR1 IOD1.7 IOD1.6 IOD1.5 IOD1.4 IOD1.3 IOD1.2 IOD1.1 IOD1.0 1111 1111
INTCAP0 ICP0.7 ICP0.6 ICP0.5 ICP0.4 ICP0.3 ICP0.2 ICP0.1 ICP0.0 xxxx xxxx
INTCAP1 ICP1.7 ICP1.6 ICP1.5 ICP1.4 ICP1.3 ICP1.2 ICP1.1 ICP1.0 xxxx xxxx
IOCON0 — — — — — — — IARES ---- ---0
IOCON1 — — — — — — — IARES ---- ---0
Legend: ‘1’ bit is set, ‘0’ bit is cleared, x = unknown, — = unimplemented.
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
- n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
- n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
bit 7-0 OL0.0:O0.7: Reflects the logic level on the output latch.
1 = Logic ‘1’
0 = Logic ‘0’
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
- n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
bit 7-0 OL1.0:O1.7: Reflects the logic level on the output latch.
1 = Logic ‘1’
0 = Logic ‘0’
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
- n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
bit 7-0 IGP0.0:IGP0.7: Controls the polarity inversion for the input pins
1 = Corresponding GP0 bit is inverted
0 = Corresponding GP0 bit is not inverted
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
- n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
bit 7-0 IGP1.0:IGP1.7: Controls the polarity inversion for the input pins
1 = Corresponding GP1 bit is inverted
0 = Corresponding GP1 bit is not inverted
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
- n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
- n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
- n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
bit 7-0 ICP0.0:ICP0.7: Reflects the logic level on the GP0 pins at the time of interrupt due to pin
change
1 = Logic ‘1’
0 = Logic ‘0’
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
- n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
bit 7-0 ICP1.0:ICP1.7: Reflects the logic level on the GP1 pins at the time of interrupt due to pin
change
1 = Logic ‘1’
0 = Logic ‘0’
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
- n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Legend:
R = Readable bit W = Writable bit U = Unimplemented bit, read as ‘0’
- n = Value at POR ‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
IOCON1 is a shadow register for IOCON0. Access to IOCON1 results in access to IOCON0.
P
Figure 1-3. First, the device is selected by sending the
slave address and setting the R/W bit to logic ‘0’. The
D7 D6 D5 D4 D3 D2 D1 D0 ACK
command byte is sent after the address and
9
determines which register will be written. Table 1-3
8
shows the relationship of the command byte and
7
register.
6
The MCP23016 has twelve 8-bit registers. They are
configured to operate as six 16-bit register pairs,
Data 2
5
supporting the device’s 16-bit port. These pairs are
4
formed based on their functions (e.g., GP0 and GP1
are grouped together). The I2C commands apply to one
3
register pair to provide faster access. The first data byte
2
following a command byte is written into the register
1
pointed to by the command byte, while the second data
ACK
is written into another register in the same pair. For
9
example, if the first byte is sent to OLAT1 (command
D7 D6 D5 D4 D3 D2 D1 D0
byte 03h), the next data byte will be written into the sec-
8
ond register of that pair, OLAT0. If the first byte is writ-
7
ten to OLAT0 (command byte 02h), the second byte
6
will be written to OLAT1.
5
There is no limitation on the number of data bytes in
Data 1
one write transmission. Figure 1-4 shows the case of
4
multiple byte writes in one write operation. In this case,
3
the multiple writes are made to the same data pair.
1
ninth clock pulse for a minimum of 12 µs
(see Table 2-5 and Figure 2-4). ACK
9
D7 D6 D5 D4 D3 D2 D1 D0
8
7
6
Command Byte
5
4
3
2
1
ACK
9
R/W=0
8
A2 A1 A0
7
6
5
4
Address
0
0
3
2
1
1
0
DS20090C-page 14
S 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9
Data 1 Data 2
D7 D6 D5 D4 D3 D2 D1 D0 ACK D7 D6 D5 D4 D3 D2 D1 D0 ACK
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 P
REGISTERS (CASE 2)
SCL S 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 P
Data on GP0
DATA VALID
t GPV0
t GPV1
WRITE TO OUTPUT PORTS
P
sent after the address and determines which register
will be read. A restart condition is generated and the
device address is sent again with the R/W bit set to
D7 D6 D5 D4 D3 D2 D1 D0 ACK
9
logic ‘1’. The data register defined by the command
byte will be sent first, followed by the other register in
8
the register pair. The logic for register selection is the
same as explained in Write mode (Section 1.9.2,
7
Data from MSB or
“Writing the Registers”).
LSB of register
6
The falling edge of the ninth clock initiates the register
read action. The SCL clock will be held low while the
5
data is read from the register and is transferred to the
4
I2C bus control block by the Serializer/Deserializer
block.
3
The MCP23016 holds the clock low after the falling
2
edge of the ninth clock pulse. The configuration
registers (or port control registers) are read and the
1
value is stored. Finally, the clock is released to enable
the next transmission.
ACK
ACK
There is no limitation on the number of data bytes in
9
9
D7 D6 D5 D4 D3 D2 D1 D0
8
8
multiple byte read in one read operation. In this case,
the multiple writes are made to the same data pair.
7
Data from LSB or
SCL held low until
data is processed
MSB of register
Note: The bus must remain free until after the
6
6
Command Byte
5
5
4
4
3
3
2
2
1
1
ACK
ACK
9
R/W=0
R/W=0
8
A0
A0
7
A1
A1
6
A2
A2
5
4
4
0
0
Address
Address
3
0
0
2
1
1
1
0
0
SCL S
S
SDA
DS20090C-page 16
SCL S 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 P
MCP23016
Data in GP0
tRDd0
READ FROM INPUT PORTS (CASE 1)
Data in GP1
tRDd1
INT
tIsd tIcd0 tIcd1
SCL S 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9
D7 D6 D5 D4 D3 D2 D1 D0 ACK D7 D6 D5 D4 D3 D2 D1 D0 ACK
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 P
DS20090C-page 17
MCP23016
MCP23016
NOTES:
† NOTICE: Stresses above those listed under “Absolute Maximum Ratings” may cause permanent damage to the
device. This is a stress rating only and functional operation of the device at those or any other conditions above those
indicated in the operation listings of this specification is not implied. Exposure to maximum rating conditions for
extended periods may affect device reliability.
VDD
TTP
SCL
91 93
90 92
SDA
START STOP
Condition Condition
SDA
Out
DS20090C-page 26
SCL S 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 P
MCP23016
Data in GP0
tRDd0
Data in GP1
tRDd1
INT
tIsd tIcd0 tIcd1
XXXXXXXXXXXXXXXXX MCP23016-I/SO e3
XXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXX
YYWWNNN 0710017
XXXXXXXXXXXX MCP23016
XXXXXXXXXXXX -I/SS e3
YYWWNNN 0720017
XXXXXXXX MCP23016
XXXXXXXX -I/ML e3
YYWWNNN 0710017
Note: In the event the full Microchip part number cannot be marked on one line, it will
be carried over to the next line, thus limiting the number of available
characters for customer-specific information.
NOTE 1
E1
1 2 3
A A2
L c
A1 b1
b e eB
Units INCHES
Dimension Limits MIN NOM MAX
Number of Pins N 28
Pitch e .100 BSC
Top to Seating Plane A – – .200
Molded Package Thickness A2 .120 .135 .150
Base to Seating Plane A1 .015 – –
Shoulder to Shoulder Width E .290 .310 .335
Molded Package Width E1 .240 .285 .295
Overall Length D 1.345 1.365 1.400
Tip to Seating Plane L .110 .130 .150
Lead Thickness c .008 .010 .015
Upper Lead Width b1 .040 .050 .070
Lower Lead Width b .014 .018 .022
Overall Row Spacing § eB – – .430
Notes:
1. Pin 1 visual index feature may vary, but must be located within the hatched area.
2. § Significant Characteristic.
3. Dimensions D and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed .010" per side.
4. Dimensioning and tolerancing per ASME Y14.5M.
D
N
E
E1
NOTE 1
1 2 3
e
b
h
α
h
φ c
A A2
L
A1 L1 β
Units MILLMETERS
Dimension Limits MIN NOM MAX
Number of Pins N 28
Pitch e 1.27 BSC
Overall Height A – – 2.65
Molded Package Thickness A2 2.05 – –
Standoff § A1 0.10 – 0.30
Overall Width E 10.30 BSC
Molded Package Width E1 7.50 BSC
Overall Length D 17.90 BSC
Chamfer (optional) h 0.25 – 0.75
Foot Length L 0.40 – 1.27
Footprint L1 1.40 REF
Foot Angle Top φ 0° – 8°
Lead Thickness c 0.18 – 0.33
Lead Width b 0.31 – 0.51
Mold Draft Angle Top α 5° – 15°
Mold Draft Angle Bottom β 5° – 15°
Notes:
1. Pin 1 visual index feature may vary, but must be located within the hatched area.
2. § Significant Characteristic.
3. Dimensions D and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed 0.15 mm per side.
4. Dimensioning and tolerancing per ASME Y14.5M.
BSC: Basic Dimension. Theoretically exact value shown without tolerances.
REF: Reference Dimension, usually without tolerance, for information purposes only.
Microchip Technology Drawing C04-052B
D
N
E
E1
1 2
b
NOTE 1
e
c
A A2
φ
A1
L1 L
Units MILLIMETERS
Dimension Limits MIN NOM MAX
Number of Pins N 28
Pitch e 0.65 BSC
Overall Height A – – 2.00
Molded Package Thickness A2 1.65 1.75 1.85
Standoff A1 0.05 – –
Overall Width E 7.40 7.80 8.20
Molded Package Width E1 5.00 5.30 5.60
Overall Length D 9.90 10.20 10.50
Foot Length L 0.55 0.75 0.95
Footprint L1 1.25 REF
Lead Thickness c 0.09 – 0.25
Foot Angle φ 0° 4° 8°
Lead Width b 0.22 – 0.38
Notes:
1. Pin 1 visual index feature may vary, but must be located within the hatched area.
2. Dimensions D and E1 do not include mold flash or protrusions. Mold flash or protrusions shall not exceed 0.20 mm per side.
3. Dimensioning and tolerancing per ASME Y14.5M.
BSC: Basic Dimension. Theoretically exact value shown without tolerances.
REF: Reference Dimension, usually without tolerance, for information purposes only.
Microchip Technology Drawing C04-073B
D D2
EXPOSED
PAD
E
b
E2
2 2
1 1 K
N N
NOTE 1 L
TOP VIEW BOTTOM VIEW
A3 A1
Units MILLIMETERS
Dimension Limits MIN NOM MAX
Number of Pins N 28
Pitch e 0.65 BSC
Overall Height A 0.80 0.90 1.00
Standoff A1 0.00 0.02 0.05
Contact Thickness A3 0.20 REF
Overall Width E 6.00 BSC
Exposed Pad Width E2 3.65 3.70 4.20
Overall Length D 6.00 BSC
Exposed Pad Length D2 3.65 3.70 4.20
Contact Width b 0.23 0.30 0.35
Contact Length L 0.50 0.55 0.70
Contact-to-Exposed Pad K 0.20 – –
Notes:
1. Pin 1 visual index feature may vary, but must be located within the hatched area.
2. Package is saw singulated.
3. Dimensioning and tolerancing per ASME Y14.5M.
BSC: Basic Dimension. Theoretically exact value shown without tolerances.
REF: Reference Dimension, usually without tolerance, for information purposes only.
Microchip Technology Drawing C04-105B
• Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
intended manner and under normal conditions.
• There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data
Sheets. Most likely, the person doing so is engaged in theft of intellectual property.
• Microchip is willing to work with the customer who is concerned about the integrity of their code.
• Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable.”
Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.
12/08/06