PIC16F887-I/ML - 8-bit MCU 14KB Flash 36 I/O QFN-44 | Microchip
MPN: PIC16F887-I/ML β Active| Qty | Unit Price | Extended |
|---|---|---|
| 1 | $4.92 | $4.92 |
| 10 | $4.43 | $44.30 |
| 100 | $3.94 | $394.00 |
| 500 | $3.55 | $1,775.00 |
| 1,000 | $3.16 | $3,160.00 |
PIC16F887-I/ML Overview
An 8-bit MCU is a microprocessor core optimized for embedded control, executing one byte-wide instruction per cycle. Within the broader taxonomy, 8-bit MCUs sit below 32-bit microcontrollers (e.g., ARM Cortex-M) in performance but excel in deterministic real-time behavior, lower cost, lower power, and simpler toolchains - making them dominant in consumer appliances, automotive body electronics, sensor nodes, and industrial control. The PIC16F887 belongs to Microchip's mid-range PIC16 enhanced family, sharing the PIC16 instruction set architecture with later PIC18 and dsPIC siblings.
Key features include an integrated 10-bit Analog-to-Digital Converter (ADC) with up to 14 channels, multiple communication peripherals (USART, MSSP for SPI/I2C), two 8-bit and one 16-bit timers, a 14-bit PWM module, and a nanoWatt power-managed sleep mode drawing less than 1 Β΅A. The 256-byte self-programmable EEPROM supports in-application data logging without external storage. Brown-out Reset (BOR), Power-on Reset (POR), and Watchdog Timer (WDT) provide robust field reliability.
Architecturally, the PIC16F887 uses a Harvard RISC core with separate program and data buses, enabling most instructions to complete in one instruction cycle. The 14-bit instruction word and 8-bit data path deliver predictable throughput, while the 20 MHz oscillator (5 MIPS performance) is adequate for control loops up to a few hundred kHz.
Typical applications include industrial sensor interfaces, home appliance control panels, battery-powered IoT sensor nodes, automotive body controllers, and consumer electronics. The wide operating voltage (2.0-5.5V) supports both 3.3V and 5V designs.
When designing with this device, allocate sufficient decoupling (100 nF + 10 Β΅F) near VDD and AVdd pins, and use Microchip's MPLAB X IDE with XC8 compiler for code development. The ICSP programming interface requires dedicated PGx and PGD pins reserved on the PCB layout.
This page synthesizes distributor pricing, drop-in alternatives, and practical design notes not found in the manufacturer datasheet alone.
Drop-in alternatives for PIC16F887-I/ML β same package, pin-to-pin compatible. Different-package parts requiring PCB rework are excluded.
Variants in this series
Same-series models that are drop-in compatible with PIC16F887-I/ML (same form factor and footprint) β differing in ADC, Package, Core Architecture, Timers, I/O Pins.
Quick Comparison Tool β Select alternative parts for side-by-side comparison:
PIC16F887-I/PT
β Drop-In β οΈ εζ°εΎ ιͺθ―β In Stock
$1.66 / Unit
View Datasheet βPIC16F887-E/ML
β Drop-Inπ Reference alternative (not in catalog)
PIC16F886-I/ML
β Drop-Inβ In Stock
$2.18 / Unit
View Datasheet βPIC16F884-I/ML
β Drop-In β οΈ εζ°εΎ ιͺθ―π Reference alternative (not in catalog)
PIC16F882-I/ML
β Drop-In β οΈ εζ°εΎ ιͺθ―π Reference alternative (not in catalog)
PIC16F877A-I/ML
β Drop-In β οΈ εζ°εΎ ιͺθ―π Reference alternative (not in catalog)
PIC16F887-I/ML Maximum Ratings & Electrical Characteristics
| Core Architecture | PIC16 8-bit RISC (Harvard) |
| Program Memory (Flash) | 14 KB (8K x 14 words) |
| SRAM | 368 bytes |
| EEPROM Data Memory | 256 bytes |
| Maximum CPU Speed | 20 MHz (5 MIPS) |
| Operating Voltage Range | 2.0 V to 5.5 V |
| I/O Pins | 36 |
| ADC | 10-bit, up to 14 channels |
| Timers | 2 x 8-bit, 1 x 16-bit |
| PWM Channels | 3 (CCP/ECCP modules) |
| Communication | EUSART, MSSP (SPI/I2C) |
| Package | QFN-44 (ML) 8x8 mm |
| Operating Temperature | -40C to +85C (Industrial) |
| Instruction Set | 35 single-word instructions |
| Instruction Cycle | 200 ns @ 20 MHz |
| Programming Interface | ICSP (In-Circuit Serial Programming) |
| RoHS Status | Compliant |
| Mounting Type | Surface Mount |
PIC16F887-I/ML Pin Configuration
| Pin 1 | MCLR/VPP/RE3 β Master Clear (reset) input / programming voltage / digital input RE3 |
| Pin 2 | RA0/AN0/ULPWU β PORTA bit 0 / analog input 0 / ultra-low-power wake-up |
| Pin 3 | RA1/AN1 β PORTA bit 1 / analog input 1 |
| Pin 4 | RA2/AN2/VREF- β PORTA bit 2 / analog input 2 / ADC negative reference |
| Pin 5 | RA3/AN3/VREF+ β PORTA bit 3 / analog input 3 / ADC positive reference |
| Pin 6 | RA4/AN4/T0CKI β PORTA bit 4 / analog input 4 / Timer0 clock input |
| Pin 7 | RA5/AN5/SS β PORTA bit 5 / analog input 5 / SPI slave select |
| Pin 8 | RE0/AN6 β PORTE bit 0 / analog input 6 |
| Pin 9 | RE1/AN7 β PORTE bit 1 / analog input 7 |
| Pin 10 | RE2/AN8 β PORTE bit 2 / analog input 8 |
| Pin 11 | VDD β Positive supply voltage |
| Pin 12 | VSS β Ground reference |
| Pin 13 | OSC1/CLKI/RA7 β Oscillator crystal input / external clock input / PORTA bit 7 |
| Pin 14 | OSC2/CLKO/RA6 β Oscillator crystal output / clock output / PORTA bit 6 |
| Pin 15 | RC0/T1OSO/T1CKI β PORTC bit 0 / Timer1 oscillator output / Timer1 clock input |
| Pin 16 | RC1/T1OSI β PORTC bit 1 / Timer1 oscillator input |
| Pin 17 | RC2/P1A/CCP1 β PORTC bit 2 / PWM output 1A / CCP1 I/O |
| Pin 18 | RC3/SCK/SCL β PORTC bit 3 / SPI clock / I2C clock |
| Pin 19 | RD0 β PORTD bit 0 |
| Pin 20 | RD1 β PORTD bit 1 |
| Pin 21 | RD2 β PORTD bit 2 |
| Pin 22 | RD3 β PORTD bit 3 |
| Pin 23 | RC4/SDI/SDA β PORTC bit 4 / SPI data in / I2C data |
| Pin 24 | RC5/SDO β PORTC bit 5 / SPI data out |
| Pin 25 | RC6/TX/CK β PORTC bit 6 / USART async transmit / USART sync clock |
| Pin 26 | RC7/RX/DT β PORTC bit 7 / USART async receive / USART sync data |
| Pin 27 | RD4 β PORTD bit 4 |
| Pin 28 | RD5/P1B β PORTD bit 5 / PWM output 1B |
| Pin 29 | RD6/P1C β PORTD bit 6 / PWM output 1C |
| Pin 30 | RD7/P1D β PORTD bit 7 / PWM output 1D |
| Pin 31 | VSS β Ground reference |
| Pin 32 | VDD β Positive supply voltage |
| Pin 33 | RB0/AN12/INT β PORTB bit 0 / analog input 12 / external interrupt |
| Pin 34 | RB1/AN10 β PORTB bit 1 / analog input 10 |
| Pin 35 | RB2/AN8 β PORTB bit 2 / analog input 8 |
| Pin 36 | RB3/AN9/PGM β PORTB bit 3 / analog input 9 / LVP programming |
| Pin 37 | RB4/AN11 β PORTB bit 4 / analog input 11 |
| Pin 38 | RB5/AN13 β PORTB bit 5 / analog input 13 |
| Pin 39 | RB6/PGC β PORTB bit 6 / ICSP clock |
| Pin 40 | RB7/PGD β PORTB bit 7 / ICSP data |
| Pin 41 | NC β Not connected (per datasheet) |
| Pin 42 | NC β Not connected (per datasheet) |
| Pin 43 | NC β Not connected (per datasheet) |
| Pin 44 | EP β Exposed thermal pad - connect to VSS |
Typical Applications
PIC16F887-I/ML is suitable for 6 applications: Industrial Sensor Interface Module, Home Appliance Control Panel, Battery-Powered IoT Sensor Node, Automotive Body Electronics (Non-Safety), Consumer Electronics Remote Control, Educational & Hobby Embedded Platform.
Industrial Sensor Interface Module
The PIC16F887-I/ML fits industrial sensor interface modules due to its 14-channel 10-bit ADC, 36 I/O pins, and 2.0-5.5 V supply range. The integrated ADC resolves 1024 discrete levels for accurate temperature, pressure, and flow sensor reading, while the MSSP peripheral supports SPI/I2C communication with digital sensors and DACs. At 5 MIPS throughput, the MCU handles 4-20 mA loop conditioning and Modbus RTU framing. nanoWatt sleep modes drawing under 1 Β΅A enable battery-backed operation during line-power outages, critical for field-deployed industrial telemetry. The -40C to +85C industrial temperature rating supports factory floor and outdoor cabinet installation. Recommended companion products include the MCP9700 analog temperature sensor, MCP4725 DAC, and MAX485 RS-485 transceiver for industrial bus connectivity.
Recommended
Home Appliance Control Panel
The PIC16F887-I/ML is well-suited for washing machine, dishwasher, and microwave oven control panels. Its 36 I/O pins drive 7-segment LED displays, keypads, and triac-controlled loads simultaneously. The 14 KB Flash accommodates state-machine firmware plus user-interface logic, while 256 bytes of EEPROM stores user settings across power cycles. Three PWM channels control motor speed and heater regulation without external driver logic. The 5 MIPS core runs real-time control loops at 50-100 Β΅s cycle time, more than adequate for thermal regulation. The QFN-44 package's small 8x8 mm footprint suits the compact PCBs behind appliance control panels. nanoWatt sleep mode reduces standby power below 0.1 W to meet energy-star regulations. Recommended companions include ULN2003A driver array and triac-based AC load switches.
Recommended
Battery-Powered IoT Sensor Node
The PIC16F887-I/ML is an excellent fit for battery-powered IoT sensor nodes thanks to its nanoWatt Technology sleep currents under 1 Β΅A and wide 2.0-5.5 V supply that runs directly from 3 V lithium coin cells. The 10-bit ADC with 14 channels reads multiple analog sensors without external multiplexing, and the integrated EUSART interfaces with low-power RF modules such as the MRF89XA sub-GHz transceiver. The 256-byte EEPROM stores sensor calibration coefficients and network IDs. The 20 MHz operation allows periodic wake-up, sensor read, RF transmit, and return-to-sleep cycles under 10 ms, achieving average current consumption below 50 Β΅A from a CR2032 cell for multi-year battery life. The QFN-44 package's 0.65 mm pitch requires careful PCB design but enables compact sensor node form factors.
Recommended
Automotive Body Electronics (Non-Safety)
The PIC16F887-I/ML supports non-safety automotive body electronics such as HVAC control heads, infotainment keypads, ambient lighting controllers, and seat-adjustment switches. While the part is industrial-grade (-40C to +85C) and not AEC-Q100 qualified, it performs reliably in cabin environments. Its 36 I/O drives multiple LED indicators, rotary encoders, and CAN-bus LIN bridges via the integrated EUSART. The 14 KB Flash stores vehicle-specific calibration, and 256-byte EEPROM retains user preferences across battery disconnects. The 5 MIPS core handles LIN protocol framing and button debouncing in real time. For AEC-Q100 safety-critical applications, Microchip recommends the PIC16F1939-I/ML upgrade path.
Recommended
Consumer Electronics Remote Control
The PIC16F887-I/ML powers advanced universal remote controls and smart-home keypads that combine IR transmission, RF pairing, capacitive touch sensing, and OLED displays. Its 36 I/O pins support IR LED drivers, multiple capacitive touch buttons via the integrated ADC, and SPI/OLED displays simultaneously. The 14 KB Flash stores device codes for hundreds of consumer brands, while 256-byte EEPROM saves user configurations. nanoWatt sleep mode drops quiescent current below 1 Β΅A for multi-year battery life on two AAA cells. The 20 MHz core handles NEC, RC5, and SIRC IR protocols with timing accuracy within 5 Β΅s, ensuring reliable consumer-device compatibility. The QFN-44 8x8 mm package fits inside slim remote enclosures.
Recommended
Educational & Hobby Embedded Platform
The PIC16F887-I/ML is a popular choice for educational embedded systems courses, Arduino-comparable prototyping platforms, and hobbyist projects. Its 35 single-word instruction set is easier to learn than complex 32-bit ARM cores, while the 14 KB Flash and 36 I/O provide substantial headroom for course projects involving sensor reading, motor control, and communication protocols. The ICSP interface enables in-circuit debugging and programming with low-cost tools like the PICkit 3. Extensive Microchip application notes, sample code libraries, and community tutorials accelerate the learning curve. The QFN-44 package is preferred for finished student projects requiring compact PCB layouts, though the PDIP-40 variant is recommended for breadboard prototyping. The MPLAB X IDE with XC8 compiler is available free of charge.
Recommended
Recommended Products Summary
Engineering reference data for PIC16F887-I/ML β comparison, design guidance, and compliance information.
Selection Guide
Comparison with Alternatives
| Parameter | This Product | PIC16F887-I/PT | PIC16F887-E/ML | PIC16F886-I/ML | PIC16F884-I/ML | PIC16F882-I/ML | PIC16F877A-I/ML |
|---|---|---|---|---|---|---|---|
| Brand | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology |
| Package | QFN-44 (ML) | TQFP-44 (PT) | QFN-44 (ML) - same | QFN-44 (ML) - same | QFN-44 (ML) - same | QFN-44 (ML) - same | QFN-44 (ML) - same |
| Flash Memory | 14 KB | 14 KB | 14 KB | 7 KB | 7 KB | 3.5 KB | 14 KB |
| SRAM | 368 bytes | 368 bytes | 368 bytes | 368 bytes | 256 bytes | 128 bytes | 368 bytes |
| I/O Pins | 36 | 36 | 36 | 28 | 24 | 24 | 33 |
| Maximum CPU Speed | 20 MHz | 20 MHz | 20 MHz | 20 MHz | 20 MHz | 20 MHz | 20 MHz |
| Operating Temperature | -40C to +85C | -40C to +85C | -40C to +125C | -40C to +85C | -40C to +85C | -40C to +85C | -40C to +85C |
| ADC | 10-bit, 14 ch | 10-bit, 14 ch | 10-bit, 14 ch | 10-bit, 11 ch | 10-bit, 14 ch | 10-bit, 11 ch | 10-bit, 8 ch |
Key Differentiators
- Highest I/O count and Flash in PIC16F88x family (vs PIC16F886-I/ML)
- Enhanced mid-range core with nanoWatt Technology (vs PIC16F877A-I/ML)
- Compact QFN-44 with integrated ADC and EEPROM (vs PIC16F884-I/ML)
Design Notes
Decouple VDD and AVdd separately. Place a 100 nF ceramic decoupling capacitor as close as possible to each VDD pin (pins 11 and 32) and a 10 Β΅F bulk capacitor within 5 mm. For AVdd, add a separate 10 Β΅F + 100 nF pair to keep analog supply noise below 5 mVpp, critical for ADC accuracy. When using the ADC, connect AVdd to VDD through a ferrite bead to isolate analog and digital switching noise. The MCU draws approximately 1.1 mA at 20 MHz active and under 1 Β΅A in sleep mode.
Do not leave the MCLR/VPP pin floating - this causes erratic resets and unreliable operation. Connect MCLR to VDD through a 10 kΞ© pull-up resistor and place a 100 nF decoupling capacitor close to the pin. For ICSP programming, ensure the PGC (RB6) and PGD (RB7) lines have no series resistance exceeding 100 Ξ©, or programming will fail. The 256-byte EEPROM supports 1 million erase/write cycles minimum - avoid unnecessary EEPROM writes in time-critical interrupt routines.
The QFN-44 (ML) package exposes a thermal pad (pin 44) that must be soldered to a PCB copper pour for proper heat dissipation. Without the thermal pad connected, junction temperature rises approximately 15-20Β°C above ambient at 20 MHz operation. Design the PCB with at least 1 square inch of 2 oz copper connected to the thermal pad, plus 4-6 thermal vias to the internal ground plane. At 20 MHz the device dissipates approximately 100 mW under typical I/O loading, well within thermal limits when the thermal pad is properly soldered.
The QFN-44 (ML) package has 0.65 mm pitch and exposed thermal pad requiring careful PCB layout. Use 0.4 mm pad width with 0.25 mm spacing per IPC-7351 nominal land pattern. Place at least 4 thermal vias (0.3 mm drill, 0.65 mm pad) under the exposed pad connecting to a ground plane for thermal dissipation. Keep high-speed traces (crystal, OSC1/OSC2) under 5 mm length and surrounded by ground copper to minimize EMI. The ICSP signals PGC (pin 39) and PGD (pin 40) should be routed to a 6-pin header with 0.1-inch pitch for in-circuit programming.
Compliance Information
RoHS compliant per Microchip product page. Industrial temperature grade only (-40C to +85C); not AEC-Q100 qualified - choose PIC16F1939-I/ML for automotive. Lead-free and halogen-free per Microchip material declaration.