PIC16F84A-20I/SO - 20MHz 8-Bit Flash MCU 18-SOIC | Microchip
MPN: PIC16F84A-20I/SO ✓ Active| Qty | Unit Price | Extended |
|---|---|---|
| 1 | $3.5 | $3.50 |
| 10 | $3.2 | $32.00 |
| 100 | $2.8 | $280.00 |
| 500 | $2.5 | $1,250.00 |
| 1,000 | $2.2 | $2,200.00 |
PIC16F84A-20I/SO Overview
What is a PIC16F84A? The PIC16F84A is a classic member of Microchip's PIC mid-range 8-bit microcontroller family. Microcontrollers (MCUs) are single-chip computers that integrate CPU, program memory, data memory, and programmable I/O peripherals; this particular part belongs to the "enhanced Flash MCU" sub-family and is targeted at simple embedded control tasks where deterministic instruction execution and easy in-circuit serial programming matter more than raw MIPS. It sits in the taxonomy: microcontroller -> 8-bit MCU -> PIC16 family -> PIC16F84A.
Key features include 200 ns instruction execution (5 MIPS at 20 MHz), 35 single-word instructions, 14-bit wide instruction word, two hardware timers (Timer0 with 8-bit prescaler, Timer2), 10-bit resolution capture/compare/PWM, and a 4 MHz internal RC oscillator option. The 13 I/O pins source/sink up to 25 mA each, enabling direct LED or relay drive without external buffers.
Architecturally the PIC16F84A uses Harvard memory with separated code and data buses, 8-level deep hardware stack, and a 14-bit instruction word optimized for compact code density. The Flash program memory supports in-system serial programming (ICSP) via RB6/RB7, allowing firmware updates after PCB assembly without desoldering the device.
Typical applications include consumer appliances, automotive body electronics, industrial control modules, sensor signal conditioning, and educational/hobbyist designs. The device's small footprint and mature toolchain (MPLAB X + XC8) make it a frequent choice for cost-sensitive, low-pin-count embedded products.
When designing with this part, pair it with a 100 nF decoupling capacitor on VDD and an external 4 MHz or 20 MHz crystal between OSC1/OSC2 for timing-accurate applications; software delay loops are sufficient if only the internal 4 MHz RC oscillator is used.
This page synthesizes distributor pricing, drop-in alternatives, and practical design notes for the PIC16F84A-20I/SO that complement the manufacturer datasheet with concise, citation-ready engineering context.
Drop-in alternatives for PIC16F84A-20I/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 PIC16F84A-20I/SO (same form factor and footprint) — differing in Package, Core Architecture, I/O Pins, Operating Temperature, Instruction Set.
Quick Comparison Tool — Select alternative parts for side-by-side comparison:
PIC16F84A-20I/P
✅ Drop-In✓ In Stock
$2.43 / Unit
View Datasheet →PIC16F84A-20/SO
✅ Drop-In✓ In Stock
$1.78 / Unit
View Datasheet →PIC16F84A-20E/SO
✅ Drop-In✓ In Stock
$2.63 / Unit
View Datasheet →PIC16F628A-I/SO
✅ Drop-In✓ In Stock
$2.32 / Unit
View Datasheet →PIC16F818-I/SO
✅ Drop-In📋 Reference alternative (not in catalog)
PIC16F819-I/SO
✅ Drop-In✓ In Stock
$1.95 / Unit
View Datasheet →PIC16F84A-20I/SO Maximum Ratings & Electrical Characteristics
| Architecture | PIC16 RISC 8-bit |
| Core Size | 8-bit |
| Program Memory Size | 1.75 KB (1K x 14) Flash |
| RAM Size | 68 bytes |
| EEPROM Size | 64 bytes |
| Maximum CPU Frequency | 20 MHz |
| Instruction Word Width | 14-bit |
| Instruction Execution Time | 200 ns (at 20 MHz) |
| Number of Instructions | 35 single-word |
| Supply Voltage (VDD) | 4.0 V to 5.5 V |
| I/O Pins | 13 |
| Timers | 1 x 8-bit, 1 x 16-bit |
| Operating Temperature | -40C to +85C (Industrial) |
| Package | 18-SOIC |
| Mounting Type | Surface Mount |
PIC16F84A-20I/SO Pin Configuration
| Pin 1 | RA2 — PortA bit 2 (bidirectional digital I/O) |
| Pin 2 | RA3 — PortA bit 3 (bidirectional digital I/O) |
| Pin 3 | RA4 / T0CKI — PortA bit 4 / Timer0 clock input (open-drain) |
| Pin 4 | MCLR / VPP — Master Clear (reset) / programming voltage input |
| Pin 5 | VSS — Ground reference |
| Pin 6 | RB0 / INT — PortB bit 0 / external interrupt input |
| Pin 7 | RB1 — PortB bit 1 (bidirectional digital I/O) |
| Pin 8 | RB2 — PortB bit 2 (bidirectional digital I/O) |
| Pin 9 | RB3 — PortB bit 3 (bidirectional digital I/O) |
| Pin 10 | RB4 — PortB bit 4 (bidirectional digital I/O, interrupt-on-change) |
| Pin 11 | RB5 — PortB bit 5 (bidirectional digital I/O, interrupt-on-change) |
| Pin 12 | RB6 / PGC — PortB bit 6 / ICSP clock (interrupt-on-change) |
| Pin 13 | RB7 / PGD — PortB bit 7 / ICSP data (interrupt-on-change) |
| Pin 14 | Vdd — Positive supply voltage (4.0 V to 5.5 V) |
| Pin 15 | OSC2 / CLKOUT — Crystal output / clock out |
| Pin 16 | OSC1 / CLKIN — Crystal input / external clock input |
| Pin 17 | RA0 — PortA bit 0 (bidirectional digital I/O) |
| Pin 18 | RA1 — PortA bit 1 (bidirectional digital I/O) |
Typical Applications
PIC16F84A-20I/SO is suitable for 6 applications: Consumer Appliance Control, Automotive Body Electronics, Industrial Sensor Signal Conditioning, Educational and Hobbyist Projects, LED Display and Signage Controllers, Remote Control and Wireline Transmitters.
Consumer Appliance Control
The PIC16F84A-20I/SO's 1.75 KB Flash, 13 I/O pins, and 25 mA sink/source per pin are ideal for low-cost appliance modules such as coffee makers, washing machines, and small kitchen devices. In a typical washing-machine controller, the MCU drives 7-segment displays and reads mechanical pushbuttons via PortB while running a foreground PID loop for motor speed; the 5 MIPS at 20 MHz keeps the control loop budget under 1 ms. Because the 18-SOIC footprint is industry-standard, the same PCB can later migrate to PIC16F628A-I/SO when more peripherals are needed.
Recommended
Automotive Body Electronics
With an industrial temperature rating of -40C to +85C, the PIC16F84A-20I/SO is widely deployed in non-safety automotive body modules such as lighting controllers, seat-position memories, and HVAC fan drivers. Its 5 MIPS at 20 MHz handles multiplexed LED matrix dimming via hardware Timer2 + PWM, while the 64 B EEPROM preserves user preferences across battery disconnects. The 18-SOIC package suits through-hole-free, vibration-resistant SMT assemblies under dashboards where 3.3 V rails are not present.
Recommended
Industrial Sensor Signal Conditioning
The PIC16F84A-20I/SO's 8-bit ADC-free architecture combined with 200 ns instruction speed makes it a fit for simple digital sensor front-ends such as pulse counters, contact-debounce arrays, or RTD-to-frequency converters. In a flow-meter logger, it accumulates pulses on RA4/T0CKI with the on-chip Timer0 prescaler, then pulses high-IR LED drivers through PortB; the 35-instruction RISC set keeps the firmware under 800 words of Flash. Industrial temperature range ensures stable operation inside enclosures mounted near motors.
Recommended
Educational and Hobbyist Projects
The PIC16F84A-20I/SO is the canonical textbook microcontroller for 8-bit embedded education, supported by the free MPLAB X IDE + XC8 compiler and the open-source JDM programmer. In university and maker curricula, students drive LED arrays, character LCDs, and HC-05 Bluetooth modules from PortB while learning instruction-level register manipulation. The 1K-word instruction Flash is sized for lab exercises while remaining large enough for meaningful semester projects such as line-following robots or digital metronomes.
Recommended
LED Display and Signage Controllers
The 25 mA I/O drive of the PIC16F84A-20I/SO allows direct multiplex of 8x8 LED matrices without external transistors. Using Timer0 interrupts at configurable prescalers, the firmware refreshes the matrix at >100 Hz with no flicker, leaving the main loop for column data updates. Hardware PWM modes are not present on this device, so brightness control relies on software pulse-width modulation; the 5 MIPS throughput comfortably refeshes 64-LED panels while running serial update protocols.
Recommended
Remote Control and Wireline Transmitters
The PIC16F84A-20I/SO is often paired with RF or IR transmitter modules in low-cost garage-door openers, ceiling-fan remotes, and HVAC controllers. PortB drives a 38 kHz carrier for IR transmission while the EEPROM stores user-coded pairing IDs for security. The 4 MHz internal RC oscillator option is sufficient for non-time-critical fixed-code transmitters; for precision time-multiplexed protocols such as RC-5, designers typically upgrade to the 20 MHz crystal and the same chip.
Recommended
Recommended Products Summary
Engineering reference data for PIC16F84A-20I/SO — comparison, design guidance, and compliance information.
Selection Guide
Comparison with Alternatives
| Parameter | This Product | PIC16F84A-20I/P | PIC16F84A-20/SO | PIC16F628A-I/SO | PIC16F818-I/SO | PIC16F819-I/SO |
|---|---|---|---|---|---|---|
| Brand | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology |
| Package | 18-SOIC | PDIP-18 (through-hole) | 18-SOIC - same | 18-SOIC - same | 18-SOIC - same | 18-SOIC - same |
| Maximum CPU Frequency | 20 MHz | 20 MHz | 20 MHz | 20 MHz | 20 MHz | 20 MHz |
| Program Memory (Flash) | 1.75 KB | 1.75 KB | 1.75 KB | 3.5 KB (+100%) | 1.75 KB | 3.5 KB (+100%) |
| RAM | 68 bytes | 68 bytes | 68 bytes | 224 bytes (+229%) | 128 bytes (+88%) | 256 bytes (+276%) |
| EEPROM | 64 bytes | 64 bytes | 64 bytes | 128 bytes (+100%) | 128 bytes (+100%) | 256 bytes (+300%) |
| Operating Temperature | -40C to +85C (Industrial) | -40C to +85C (Industrial) | 0C to +70C (Commercial) | -40C to +85C (Industrial) | -40C to +85C (Industrial) | -40C to +85C (Industrial) |
| ADC | None | None | None | None | 10-bit ADC | 10-bit ADC |
| UART | None (software bit-bang only) | None | None | Hardware USART | None | Hardware USART |
| Timer Modules | Timer0 (8-bit), Watchdog | Timer0 (8-bit) | Timer0 (8-bit) | Timer0/1/2 + PWM | Timer0/1/2 + PWM | Timer0/1/2 + PWM |
Key Differentiators
- Original 8-bit Flash PIC16 mid-range with mature toolchain support across two decades (vs PIC16F84A-20I/P)
- Industrial temperature grade suitable for harsh embedded environments (vs PIC16F84A-20/SO)
- Same 18-SOIC footprint as the modern PIC16F628A family for migration paths (vs PIC16F628A-I/SO)
Design Notes
Place a 100 nF ceramic decoupling capacitor as close as physically possible to the VDD pin (pin 14) and VSS pin (pin 5), with the trace length not exceeding 5 mm. For battery-powered designs, add a 10 uF tantalum or aluminum bulk capacitor near the MCU to prevent voltage droop during EEPROM write cycles, which briefly sink extra current. Do not rely on internal POR for applications with slowly rising supplies; use the external MCLR reset circuit with a 10 kohm pull-up to VDD for reliable cold-start behavior.
Connect a 20 MHz fundamental-mode crystal between OSC1 (pin 16) and OSC2 (pin 15), with two 15 pF load capacitors to VSS. The 20 MHz crystal gives 200 ns instruction cycle (5 MIPS) when using a PLL-less PIC16 architecture. For cost-driven designs above 4 MHz, an external 4 MHz ceramic resonator with built-in capacitors can replace the crystal. Configuration bits must set the oscillator to HS mode (FOSC1/0 = 11) to enable the 20 MHz grade; the XT or RC modes cap the oscillator at lower frequencies.
Keep clock-trace lengths under 10 mm and route MCLR away from the crystal area to avoid coupling noise into the reset line. The RB6/RB7 ICSP pins require pull-up resistors of 10-50 kohm if not actively driven by the in-circuit programmer during normal operation; otherwise the pins can float and cause spurious PORTB interrupt-on-change wakeups. For robust ESD performance on the 13 GPIO pins serving as external connections, place a 100 ohm series resistor and a TVS diode array near the PCB header.
Avoid reading the EEPROM during a write cycle - polling the WR bit without the unlock sequence can corrupt data. The MCLR pin must be tied to VDD through a resistor (never directly) to allow the ICSP programmer's VPP high voltage to override the pull-up safely. When migrating the PIC16F84A-20I/SO to PIC16F628A-I/SO in production, verify that the new configuration bits match the application - the F84A defaults differ from the F628A defaults, especially around the oscillator mode and watchdog timer.
Compliance Information
RoHS compliant per Microchip product page. Not AEC-Q100 qualified - the part is intended for industrial and consumer use, not automotive safety-critical applications.