PIC16F870-I/SO - 8-Bit 20MHz 3.5KB Flash MCU | Microchip
MPN: PIC16F870-I/SO β Active| Qty | Unit Price | Extended |
|---|---|---|
| 1 | $5.2 | $5.20 |
| 10 | $4.68 | $46.80 |
| 100 | $4.16 | $416.00 |
| 500 | $3.74 | $1,870.00 |
| 1,000 | $3.32 | $3,320.00 |
PIC16F870-I/SO Overview
A microcontroller (MCU) is a single-chip computer containing a CPU, RAM, non-volatile program memory (Flash/ROM), EEPROM data memory, and a set of configurable peripherals such as timers, ADCs, and communication interfaces. Microcontrollers sit at the bottom of the embedded computing hierarchy: MCU -> embedded controller -> electronic system. PIC16F870-class parts are 'mid-range' 8-bit MCUs optimized for cost-sensitive applications that need more compute than a basic PIC12/PIC16C5X but do not require a 16-bit or 32-bit core.
Key features include 64 bytes of EEPROM data memory, 128 bytes of RAM, 22 I/O pins, 5 channels of 10-bit A/D converter, two additional timers (Timer0/1/2), Capture/Compare/PWM (CCP) peripherals, a Universal Asynchronous Receiver Transmitter (USART) with support for RS-232/RS-485, an ICD (In-Circuit Debugger) interface, and self-programming support. The wide 4V-5.5V supply range and -40C to +85C industrial temperature span make it suitable for consumer, industrial, and automotive subsystems.
The PIC16F870's Harvard architecture separates program and data buses, allowing simultaneous fetch and access. The 14-bit instruction word and 8-bit data path keep the core compact while the integrated 10-bit ADC sampling at programmable rates provides analog signal conditioning for sensor interfaces. The Flash memory enables in-application reprogramming, eliminating UV-erase steps.
Typical applications include home appliance control, battery chargers, small motor control (DC brushed, unidirectional BLDC), automotive interior accessories, smart sensors with UART output, low-cost data loggers, and white goods user interfaces where the 28-pin SOIC is friendly to hand-soldering and PCB prototypes.
When designing with this MCU, verify oscillator configuration (HS/LP/RC/XT modes), allocate adequate decoupling (100 nF + 10 uF bulk near VDD/AVDD), and budget Flash endurance (~100K erase/write cycles) and EEPROM endurance (~1M cycles) against firmware update frequency. Industrial designers should also confirm Pin and Code Compatibility Chart DS00148J2 when migrating across PIC16F87x family members.
This page synthesizes distributor pricing (DigiKey/Mouser), same-package drop-in alternatives, AEC-Q100 automotive notes, and practical design considerations beyond any single datasheet lookup.
Drop-in alternatives for PIC16F870-I/SO β 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 PIC16F870-I/SO (same form factor and footprint) β differing in Mounting Type, Package, Timers, Program Memory (Flash), Self-Programming.
Quick Comparison Tool β Select alternative parts for side-by-side comparison:
PIC16F870-I/SP
β Drop-In β οΈ εζ°εΎ ιͺθ―β In Stock
$2.18 / Unit
View Datasheet βPIC16LF870-I/SO
β Drop-Inπ Reference alternative (not in catalog)
PIC16F870T-I/SO
β Drop-In β οΈ εζ°εΎ ιͺθ―β In Stock
$4.2 / Unit
View Datasheet βPIC16F870-E/SO
β Drop-In β οΈ εζ°εΎ ιͺθ―π Reference alternative (not in catalog)
PIC16F873-I/SO
β Drop-Inπ Reference alternative (not in catalog)
PIC16F870-I/SO Maximum Ratings & Electrical Characteristics
| Core Architecture | PIC 8-bit Harvard |
| Program Memory (Flash) | 3.5 KB (2K x 14) |
| RAM | 128 bytes |
| EEPROM Data Memory | 64 bytes |
| Maximum CPU Frequency | 20 MHz |
| Instruction Execution Time | 200 ns |
| Number of Instructions | 35 single-word |
| Supply Voltage (VDD) | 4 V to 5.5 V |
| I/O Pins | 22 |
| ADC | 10-bit, 5 channels |
| Timers | 3 (Timer0, Timer1, Timer2) |
| Communication | USART (RS-232/RS-485) |
| CCP / PWM Modules | Yes (Capture/Compare/PWM) |
| In-Circuit Debug (ICD) | Yes |
| Self-Programming | Yes (Flash) |
| Package | 28-pin SOIC (7.50 mm body) |
| Operating Temperature (Industrial) | -40 C to +85 C |
| RoHS Status | Compliant |
PIC16F870-I/SO Pin Configuration
| Pin 1 | MCLR/VPP/THV β Master Clear (reset) input / programming voltage |
| Pin 2 | RA0/AN0 β PORTA bit 0 / Analog input 0 |
| Pin 3 | RA1/AN1 β PORTA bit 1 / Analog input 1 |
| Pin 4 | RA2/AN2 β PORTA bit 2 / Analog input 2 |
| Pin 5 | RA3/AN3/VREF+ β PORTA bit 3 / Analog input 3 / positive voltage reference |
| Pin 6 | RA4/T0CKI β PORTA bit 4 / Timer0 clock input |
| Pin 7 | RA5/AN4/SS β PORTA bit 5 / Analog input 4 / SPI slave select |
| Pin 8 | VSS β Ground reference |
| Pin 9 | OSC1/CLKI β Oscillator crystal input / external clock input |
| Pin 10 | OSC2/CLKO β Oscillator crystal output / clock output |
| Pin 11 | RC0/T1OSO/T1CKI β PORTC bit 0 / Timer1 oscillator output or clock input |
| Pin 12 | RC1/T1OSI/CCP2 β PORTC bit 1 / Timer1 oscillator input / CCP2 |
| Pin 13 | RC2/CCP1 β PORTC bit 2 / Capture/Compare/PWM 1 |
| Pin 14 | RC3/SCK/SCL β PORTC bit 3 / SPI clock / I2C clock |
| Pin 15 | RC4/SDI/SDA β PORTC bit 4 / SPI data in / I2C data |
| Pin 16 | RC5/SDO β PORTC bit 5 / SPI data out |
| Pin 17 | RC6/TX/CK β PORTC bit 6 / USART TX / clock |
| Pin 18 | RC7/RX/DT β PORTC bit 7 / USART RX / data |
| Pin 19 | VSS β Ground reference |
| Pin 20 | VDD β Positive supply voltage (4.0 V to 5.5 V) |
| Pin 21 | RB0/INT β PORTB bit 0 / external interrupt |
| Pin 22 | RB1 β PORTB bit 1 |
| Pin 23 | RB2 β PORTB bit 2 |
| Pin 24 | RB3/PGM β PORTB bit 3 / low-voltage programming |
| Pin 25 | RB4 β PORTB bit 4 |
| Pin 26 | RB5 β PORTB bit 5 |
| Pin 27 | RB6/PGC β PORTB bit 6 / ICD clock |
| Pin 28 | RB7/PGD β PORTB bit 7 / ICD data |
Typical Applications
PIC16F870-I/SO is suitable for 6 applications: Home Appliance Control (Washing Machines, Microwaves), Battery Chargers (Lead-Acid, NiMH, Li-Ion CC/CV), Small DC Motor and Fan Control, Smart Sensors with UART Output, White Goods User Interfaces (Dishwasher Panels, Oven HMI), Automotive Interior Accessories.
Home Appliance Control (Washing Machines, Microwaves)
The PIC16F870-I/SO delivers reliable 8-bit control for home appliances where cost is critical and the 22 I/O pins suffice for user-interface scanning, relay drivers, and sensor inputs. Its 3.5 KB Flash easily accommodates appliance firmware (typically 1-2 KB), and the 5-channel 10-bit ADC handles temperature, water-level, and humidity sensing at 8-bit effective resolutions up to a few ksps. The CCP/PWM module drives low-frequency solenoids and buzzer tones without extra hardware. The industrial -40C to +85C temperature range accommodates laundry-room and kitchen environments. Compared to 32-bit alternatives that add unnecessary cost, the PIC16F870 keeps the BOM under USD 5 in volume while offering decades of stable field firmware.
Recommended
Battery Chargers (Lead-Acid, NiMH, Li-Ion CC/CV)
The PIC16F870-I/SO fits low-to-mid-power battery chargers thanks to its 10-bit ADC for precise current/voltage sensing and CCP/PWM for switching-element control or LED status indication. With USART support, the charger can also report telemetry to a host system or Bluetooth bridge. The 4-5.5V supply range is matched to 6V lead-acid stacks with simple linear regulation. Charge-termination algorithms (dV/dt, timer, temperature) fit within 3.5 KB Flash. Industrial temperature grade ensures reliable operation in garage or outdoor enclosures. For higher-current Li-Ion packs, the same code can migrate upward to PIC16F873-I/SO with no layout changes for additional ADC channels.
Recommended
Small DC Motor and Fan Control
The PIC16F870-I/SO drives small DC brushed motors and 12 V fans using its CCP/PWM module for soft-start and speed regulation. The 22 I/O pins handle direction-control H-bridge logic, tachometer feedback, and over-current shutdown from a sense amplifier into the 10-bit ADC. With 20 MHz clock and 200 ns instruction cycle, the control loop runs comfortably at 1 kHz PID bandwidth even with UART-based debug telemetry. Industrial temperature rating and wide 4-5.5 V supply suit 12 V vehicle and industrial bus applications. The 5 ADC channels enable dual-loop current+voltage sensing for safety shutdown without adding an external analog MUX.
Recommended
Smart Sensors with UART Output
The PIC16F870-I/SO is well-suited as a smart-signal-conditioning front-end: a sensor's analog signal is sampled by the 10-bit ADC, linearized or averaged in firmware, then transmitted via the integrated USART as a calibrated digital readout. The 128-byte RAM and 35-instruction core keep the response loop tight for sub-millisecond updates over 115200 baud. Industrial temperature range allows deployment in process-control cabinets, and the small 28-SOIC package fits inside most sensor housings. Self-programming Flash permits field recalibration without disassembly when paired with a bootloader over the same UART pins.
Recommended
White Goods User Interfaces (Dishwasher Panels, Oven HMI)
In dishwasher, oven, and refrigerator user-interface modules, the PIC16F870-I/SO scans 7-segment / matrix keypads, drives LCD or LED indicators, and communicates with the main appliance controller over UART. Its 22 I/O pins typically suffice for 4-digit 7-segment drive plus a 4x4 key matrix, leaving headroom for buzzer, LED backlight PWM, and a service-mode UART. The CCP/PWM provides backlight dimming at 1 kHz without flicker. Wide 4-5.5V supply rides 5 V linear rails cleanly, and -40C to +85C industrial grade covers both hot oven interiors and cold freezer compartments. Same firmware can be reused across models by changing only the configuration fuses.
Recommended
Automotive Interior Accessories
For non-safety automotive interior accessories such as seat-heater controllers, mirror adjusters, ambient lighting, and USB charger monitors, the PIC16F870-I/SO offers the right mix of cost, peripherals, and industrial temperature range. The USART communicates with the body-control module, the ADC reads current/voltage feedback from the load, and PWM drives MOSFET gates for dimming or heating. While PIC16F870 is not AEC-Q100 qualified, it is widely used in non-safety subsystems that operate behind another AEC-qualified SBC. Designers targeting stricter automotive qualification should consult Microchip's PIC18 automotive portfolio.
Recommended
Recommended Products Summary
Engineering reference data for PIC16F870-I/SO β comparison, design guidance, and compliance information.
Selection Guide
Comparison with Alternatives
| Parameter | This Product | PIC16F870-I/SP | PIC16LF870-I/SO | PIC16F873-I/SO |
|---|---|---|---|---|
| Brand | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology |
| Package | 28-SOIC | 28-PDIP | 28-SOIC (same) | 28-SOIC (same) |
| Program Memory | 3.5 KB Flash | 3.5 KB Flash | 3.5 KB Flash | 7.2 KB Flash (+106%) |
| RAM | 128 bytes | 128 bytes | 128 bytes | 192 bytes (+50%) |
| EEPROM | 64 bytes | 64 bytes | 64 bytes | 128 bytes (+100%) |
| Max Frequency | 20 MHz | 20 MHz | 20 MHz (with FVR on - LF grade) | 20 MHz |
| Supply Voltage | 4.0 V to 5.5 V | 4.0 V to 5.5 V | 2.0 V to 5.5 V (wider) | 4.0 V to 5.5 V |
| I/O Pins | 22 | 22 | 22 | 22 |
| ADC Channels | 5 (10-bit) | 5 (10-bit) | 5 (10-bit) | 5 (10-bit) |
| CCP/PWM Modules | 1 | 1 | 1 | 2 (+100%) |
| Temperature Grade | -40 C to +85 C (industrial) | -40 C to +85 C (industrial) | -40 C to +85 C (industrial) | -40 C to +85 C (industrial) |
Key Differentiators
- PIC16F87x family compatibility with more Flash headroom (vs PIC16F873-I/SO)
- Same SOIC-28 footprint but wider 2.0V-5.5V supply range (vs PIC16LF870-I/SO)
- Extended temperature variant in same package (vs PIC16F870-E/SO)
Design Notes
Estimated: PIC16F870-I/SO VDD current draw at 20 MHz HS oscillator mode with all peripherals enabled is roughly 15 mA, so budget a regulator that can deliver at least 25 mA headroom. Place a 100 nF X7R decoupling cap directly across VDD/VSS pins (within 5 mm trace length) plus a 10 uF bulk capacitor near the supply pin. For mixed-signal designs, use separate AVSS/VDD pins (the PIC16F870 routes analog and digital on different pins) to avoid digital switching noise coupling into ADC readings.
Choose the oscillator mode via CONFIG1 register: HS for 4-20 MHz crystal, XT for 1-4 MHz, LP for low-power 32-200 kHz, RC for cost-sensitive applications using an external resistor. A 20 MHz crystal with 15-33 pF loading capacitors is typical for HS mode. Series resistance Rs (10-50 ohm) may be required for AT-cut crystals above 20 MHz to limit drive level. Avoid routing the crystal traces near switching nodes or high-current traces to prevent jitter and EMC issues.
Do not forget to disable the low-voltage programming (LVP) bit (LVP=OFF) in CONFIG if your design uses RB3/PGM as a normal digital I/O - leaving LVP enabled locks RB3 into a programming-only function. Also ensure MCLR is pulled up to VDD via a 10 kohm resistor with a 100 nF cap to ground for noise filtering; floating MCLR is a common cause of phantom resets in electrically noisy environments. When migrating from PIC16F84A, note the new ADC channels on PORTA and the additional CCP1/USART pins - not all pins are bit-for-bit compatible across families.
The 28-SOIC package has a typical theta_JA of about 80 C/W. At maximum 5.5 V supply, 20 MHz operation, and all I/O driving 20 mA loads, internal dissipation is under 200 mW, giving a junction temperature rise of roughly 16 C above ambient - well within the industrial 85 C limit. Most application circuits dissipate far less. For sealed enclosures with no airflow, derate by 30-40% or add a small copper heatsink pad under the exposed die attach (not present on this package variant).
Keep the ICD clock (RB6/PGC) and ICD data (RB7/PGD) traces short and away from analog signals so the debug interface does not inject noise into ADC readings. Use a 4-layer PCB with a dedicated ground plane if possible; for 2-layer designs, route a ground grid on the bottom layer. Place the MCLR pull-up resistor and decoupling capacitors on the same side as the IC to minimize vias. Reserve space for a 2x5 0.1-inch header for the ICD connector for in-circuit debugging convenience.
Compliance Information
RoHS compliant per Microchip product page. Halogen-free status confirmed by third-party distributor listings. Not AEC-Q100 qualified - not recommended for automotive safety-critical applications. PIC16F870-I/SO is widely used in non-safety automotive interior subsystems where the upstream SBC or ECU handles qualification.