PIC16F873AT-I/SO - 8-Bit 20MHz MCU 7KB Flash 28-SOIC | Microchip
MPN: PIC16F873AT-I/SO ✓ Active| Qty | Unit Price | Extended |
|---|---|---|
| 1 | $4.85 | $4.85 |
| 10 | $4.36 | $43.60 |
| 100 | $3.62 | $362.00 |
| 500 | $3.05 | $1,525.00 |
| 1,000 | $2.62 | $2,620.00 |
PIC16F873AT-I/SO Overview
A PIC (Peripheral Interface Controller) microcontroller is a Harvard-architecture RISC device designed for deterministic, low-power embedded control. PIC16 mid-range parts sit between the baseline PIC10/12/16 families and the enhanced PIC18 family, balancing low cost with a broad peripheral mix. The PIC16F873A specifically is one of the original 28/40/44-pin enhanced flash MCUs introduced by Microchip and remains a long-life product for industrial and consumer designs.
Key features include an ICD (In-Circuit Debug) capability, self-programming Flash, a 10-bit ADC with up to five input channels (28-pin package variant), hardware USART for asynchronous serial, and two analog comparators with programmable reference. The device operates from 2.0 V to 5.5 V, allowing both 3.3 V and 5 V system designs. In-circuit serial programming (ICSP) is supported via RB6/RB7, allowing firmware updates without removing the part from the board.
The PIC16F873A's architecture uses a 14-bit instruction word and an 8-bit data path, with separate program and data buses for deterministic interrupt latency. The 7 KB Flash can be re-written up to 100,000 times per the manufacturer endurance spec. Internal oscillator calibration and a wide analog feature set make it popular for sensor-interface and human-interface designs.
Typical applications include industrial sensor signal conditioning, HVAC thermostat controllers, battery chargers, motor-driver front-ends, security-system keypads, and small appliance controls. The 28-pin SOIC footprint is convenient for hand-solderable through-hole-replacement designs and dense surface-mount boards alike.
When designing with this MCU, ensure decoupling capacitors (100 nF) are placed within 5 mm of each power pin, and reserve RB6/RB7 for ICSP to preserve in-field firmware update capability. The 'A' revision adds brown-out-reset, oscillator-startup-timer, and power-on-timer improvements over the legacy PIC16F873.
This page synthesizes distributor pricing, drop-in same-family alternatives, datasheet pinout, and practical design notes not found in the manufacturer datasheet alone.
Drop-in alternatives for PIC16F873AT-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 PIC16F873AT-I/SO (same form factor and footprint) — differing in Package, ADC, Core Architecture, Serial Interfaces, Timers.
Quick Comparison Tool — Select alternative parts for side-by-side comparison:
PIC16F873A-I/SO
✅ Drop-In✓ In Stock
$2.65 / Unit
View Datasheet →PIC16F873A-I/SS
✅ Drop-In✓ In Stock
$1.78 / Unit
View Datasheet →PIC16F873A-I/ML
✅ Drop-In✓ In Stock
$2.32 / Unit
View Datasheet →PIC16F873A-E/SS
✅ Drop-In✓ In Stock
$3.55 / Unit
View Datasheet →PIC16F876A-I/SO
✅ Drop-In📋 Reference alternative (not in catalog)
PIC16F873-10I/SO
✅ Drop-In📋 Reference alternative (not in catalog)
PIC16F873AT-I/SO Maximum Ratings & Electrical Characteristics
| Core Architecture | PIC16 8-bit RISC (Harvard) |
| Instruction Set | 35 single-word instructions, 14-bit instruction word |
| Maximum Clock Frequency | 20 MHz |
| Instruction Execution Time | 200 ns (at 20 MHz) |
| Program Memory Type | Flash |
| Program Memory Size | 7 KB (4K x 14 words) |
| Data RAM | 192 bytes |
| EEPROM Data Memory | 128 bytes |
| I/O Pins | 22 |
| ADC | 10-bit, 5 channels (28-pin package) |
| Analog Comparators | 2 |
| USART | 1 (hardware asynchronous serial) |
| MSSP Module | 1 (SPI / I2C master-slave) |
| Timers | 3 (Timer0, Timer1, Timer2) |
| Operating Voltage | 2.0 V to 5.5 V |
| Operating Temperature Range | -40 C to +85 C (Industrial, 'I' suffix) |
| In-Circuit Debug | ICD capable |
| Self-Programming | Yes (Flash) |
| ICSP Pins | RB6 (clock) / RB7 (data) |
| Package | 28-pin SOIC (SO) - SOIC-28 |
| Mounting Type | Surface Mount |
| Lead-Free / RoHS | Compliant |
PIC16F873AT-I/SO Pin Configuration
| Pin 1 | MCLR/VPP — Master Clear (reset) input / ICSP programming voltage |
| Pin 2 | RA0/AN0 — PORTA bit 0 / ADC input channel 0 |
| Pin 3 | RA1/AN1 — PORTA bit 1 / ADC input channel 1 |
| Pin 4 | RA2/AN2/VREF- — PORTA bit 2 / ADC channel 2 / ADC negative reference |
| Pin 5 | RA3/AN3/VREF+ — PORTA bit 3 / ADC channel 3 / ADC positive reference |
| Pin 6 | RA4/T0CKI — PORTA bit 4 / Timer0 clock input |
| Pin 7 | RA5/AN4/SS — PORTA bit 5 / ADC channel 4 / SPI slave select |
| Pin 8 | VSS — Ground reference |
| Pin 9 | VDD — Positive supply voltage (2.0 V to 5.5 V) |
| Pin 10 | RE0/RD/AN5 — PORTE bit 0 / Parallel slave port read / ADC channel 5 |
| Pin 11 | OSC1/CLKIN — Oscillator crystal input / external clock in |
| Pin 12 | OSC2/CLKOUT — Oscillator crystal output / clock out |
| Pin 13 | RC0/T1OSO/T1CKI — PORTC bit 0 / Timer1 oscillator output / Timer1 clock input |
| Pin 14 | RC1/T1OSI/CCP2 — PORTC bit 1 / Timer1 oscillator input / CCP2 capture/compare/PWM |
| Pin 15 | RC2/CCP1 — PORTC bit 2 / CCP1 capture/compare/PWM |
| Pin 16 | RC3/SCK/SCL — PORTC bit 3 / MSSP SPI clock / I2C clock |
| Pin 17 | RC4/SDI/SDA — PORTC bit 4 / MSSP SPI data in / I2C data |
| Pin 18 | RC5/SDO — PORTC bit 5 / MSSP SPI data out |
| Pin 19 | RC6/TX/CK — PORTC bit 6 / USART TX / USART clock |
| Pin 20 | RC7/RX/DT — PORTC bit 7 / USART RX / USART data |
| Pin 21 | RD0/PSP0 — PORTD bit 0 / Parallel slave port bit 0 |
| Pin 22 | RD1/PSP1 — PORTD bit 1 / Parallel slave port bit 1 |
| Pin 23 | RD2/PSP2 — PORTD bit 2 / Parallel slave port bit 2 |
| Pin 24 | RD3/PSP3 — PORTD bit 3 / Parallel slave port bit 3 |
| Pin 25 | RD4/PSP4 — PORTD bit 4 / Parallel slave port bit 4 |
| Pin 26 | RD5/PSP5 — PORTD bit 5 / Parallel slave port bit 5 |
| Pin 27 | RD6/PSP6 — PORTD bit 6 / Parallel slave port bit 6 |
| Pin 28 | RD7/PSP7 — PORTD bit 7 / Parallel slave port bit 7 |
Typical Applications
PIC16F873AT-I/SO is suitable for 7 applications: Industrial Sensor Signal Conditioning, HVAC Thermostat Controller, Battery Charger / Battery Management Front-End, Motor Driver Front-End / BLDC Commutation Logic, Security System Keypad / Access Controller, Small Appliance Control (Coffee Machine, Mixer, etc.), USB-to-Serial Bridge / Industrial Protocol Converter.
Industrial Sensor Signal Conditioning
The PIC16F873AT-I/SO is well suited to industrial sensor-signal conditioning front-ends thanks to its integrated 10-bit 5-channel ADC, two analog comparators with programmable reference, and 22 digital I/O pins. The 7 KB Flash and 192 bytes SRAM are sufficient to host calibration coefficients, linearization lookup tables, and small protocol stacks such as Modbus RTU over the hardware USART. The 2.0-5.5 V supply range lets the same board interface with both 3.3 V sensors and 5 V industrial transmitters. Compared with a discrete op-amp + ADC + MCU design, integrating conversion and MCU in one chip reduces BOM count, PCB area, and BOM-driven failure modes - especially valuable in noisy factory-floor environments where the 'I' suffix industrial temperature range (-40 C to +85 C) is mandatory. Use RB6/RB7 reserved for ICSP for in-field firmware updates.
Recommended
HVAC Thermostat Controller
HVAC thermostat controllers need reliable analog sensing (NTC thermistors, set-point potentiometer), multi-channel digital I/O for relays, triac triggers, and LCD backlight PWM, plus deterministic response to button presses. The PIC16F873AT-I/SO provides exactly this: a 10-bit ADC to read multiple thermistor inputs, two comparators for set-point thresholds, three timers for PWM triac firing and switch debouncing, and the MSSP module to drive an SPI LCD. The 192 bytes SRAM is sufficient for the scheduler and thermistor linearization table; 128 bytes EEPROM retains user-set temperatures across power cycles via self-programming Flash techniques. The 28-SOIC industrial grade handles -40 C to +85 C ambient conditions found near HVAC plenums and rooftop units, while the 20 MHz CPU cycle (200 ns per instruction) executes the control loop fast enough for triac zero-crossing timing.
Recommended
Battery Charger / Battery Management Front-End
Lead-acid and Li-ion battery chargers use the PIC16F873AT-I/SO as a low-cost BMS front-end: the 10-bit ADC measures battery voltage, charge current (via shunt amplifier), and cell temperature, while the PWM peripherals (Timer2 + ECCP) drive a buck-converter power stage. The internal EEPROM (128 bytes) stores charge-cycle counters, fault logs, and learned battery capacity for state-of-charge estimation, with 100k erase/write endurance per the Microchip datasheet. Hardware comparators provide fast over-current and over-voltage cut-off without software latency. The 2.0-5.5 V supply range lets the MCU run directly from a 3.3 V post-regulator on the charger board; ICSP on RB6/RB7 enables factory calibration of the current-sense gain. For higher-accuracy designs, the drop-in PIC16F876A-I/SO adds more Flash and RAM without changing the layout.
Recommended
Motor Driver Front-End / BLDC Commutation Logic
Small brushed-DC and BLDC motor controllers pair the PIC16F873AT-I/SO with a power-stage gate driver. The MCU generates the 6-step commutation sequence via Timer2 PWM and routes the Hall-sensor inputs through PORTB interrupt-on-change. The 10-bit ADC samples motor current and back-EMF for sensorless starting algorithms; the two analog comparators provide fast hardware over-current protection that bypasses the CPU. USART connects to an HMI or a higher-level controller for variable-speed commands. The 20 MHz CPU (200 ns per instruction) updates the commutation table fast enough for low-RPM sensorless startup; the 28-pin SOIC package dissipates moderate power and is easy to rework during prototyping. Compared to a fixed-function motor-controller ASIC, this MCU-based approach lets you tune PID parameters and commutation timing in firmware rather than re-spinning silicon.
Recommended
Security System Keypad / Access Controller
Access-control keypads benefit from the PIC16F873AT-I/SO's mix of GPIO for matrix-scanned key rows/columns, hardware USART to talk to a master panel, and EEPROM for storing access codes and audit logs. The 22 I/O pins easily handle a 4x4 matrix keypad plus a multi-digit seven-segment display; the MSSP module can drive a serial LED driver to indicate status. Self-programming Flash stores the most-recent 100-entry audit trail with 100k write-cycle endurance. The 'A' revision's brown-out reset prevents lockout after brown-outs, while the industrial temperature range suits outdoor junction-box installations. Watchdog timer plus the BOR and power-on-timer combine to give a very low false-latch rate, important for unattended security hardware. ICSP on RB6/RB7 is reserved for factory provisioning and field firmware updates.
Recommended
Small Appliance Control (Coffee Machine, Mixer, etc.)
Consumer small appliances - coffee machines, induction cooktops, robotic vacuums, washing-machine control boards - all benefit from a 5 V-tolerant, low-cost MCU with enough analog and digital I/O. The PIC16F873AT-I/SO drives a 4x4 or 5x5 keypad, multiplexed 7-segment or LCD display, and reads temperature/pressure sensors via the 10-bit ADC. Timer2 PWM controls a heater SSR or small DC motor; the comparator triggers instant shutoff on over-temperature without software latency. The 128 bytes EEPROM stores user preferences (cup size, grind setting) across power cycles. The 'A' revision's improved brown-out reset avoids corruption of the EEPROM preference data during brown-out - a common pain point on AC-line-powered appliances. Industrial temperature range simplifies design for hot appliances like espresso boilers. ICSP on RB6/RB7 enables factory calibration and field firmware updates.
Recommended
USB-to-Serial Bridge / Industrial Protocol Converter
Although the PIC16F873AT-I/SO has no native USB, it is widely used as a multi-protocol serial bridge: the hardware USART handles RS-232 / RS-485 traffic while the MSSP module runs SPI or I2C to downstream sensors, and the 10-bit ADC monitors bus voltage for fault detection. The 20 MHz CPU (200 ns per instruction) is fast enough to bit-bang protocols above 115200 baud or run small Modbus RTU state machines. Industrial temperature range and small 28-SOIC footprint suit DIN-rail mounted protocol converters. Compared to a dedicated USB-UART bridge IC, this approach lets you mix protocols on the same chip - for example, a Modbus-to-I2C gateway with analog diagnostics - all in 7 KB Flash. ICSP on RB6/RB7 is reserved for factory provisioning.
Recommended
Recommended Products Summary
Engineering reference data for PIC16F873AT-I/SO — comparison, design guidance, and compliance information.
Selection Guide
Comparison with Alternatives
| Parameter | This Product | PIC16F873A-I/SO | PIC16F873A-I/SS | PIC16F873A-I/ML | PIC16F873A-E/SS | PIC16F876A-I/SO |
|---|---|---|---|---|---|---|
| Package | SOIC-28 (SO) | SOIC-28 (SO) - same | SSOP-28 (SS) - drop-in if PCB matches | QFN-28 (ML) - drop-in if PCB matches | SSOP-28 (SS) - drop-in if PCB matches | SOIC-28 (SO) - same |
| Brand | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology |
| Program Memory (Flash) | 7 KB (4K x 14) | 7 KB | 7 KB | 7 KB | 7 KB | 14 KB (+100%) |
| Data RAM | 192 bytes | 192 bytes | 192 bytes | 192 bytes | 192 bytes | 368 bytes (+92%) |
| EEPROM | 128 bytes | 128 bytes | 128 bytes | 128 bytes | 128 bytes | 256 bytes (+100%) |
| Max Clock Frequency | 20 MHz | 20 MHz | 20 MHz | 20 MHz | 20 MHz | 20 MHz |
| Operating Voltage | 2.0 V to 5.5 V | 2.0 V to 5.5 V | 2.0 V to 5.5 V | 2.0 V to 5.5 V | 2.0 V to 5.5 V | 2.0 V to 5.5 V |
| Operating Temperature | -40 C to +85 C (Industrial) | -40 C to +85 C (Industrial) | -40 C to +85 C (Industrial) | -40 C to +85 C (Industrial) | -40 C to +125 C (Extended) | -40 C to +85 C (Industrial) |
| I/O Pins | 22 | 22 | 22 | 22 | 22 | 22 |
| Approx. Unit Price (qty 100) | $3.62 | $3.50 (typical) | $3.45 (typical) | $3.70 (typical) | $3.80 (typical) | $4.20 (typical) |
Key Differentiators
- Tape-and-reel packaging variant for high-volume SMT assembly (vs PIC16F873A-I/SO)
- A-revision silicon with improved BOR and oscillator start-up timer (vs PIC16F873-10I/SO)
- 28-pin SOIC package is most widely supported by Microchip development ecosystem (vs PIC16F873A-I/ML (QFN-28))
- 7 KB Flash / 192 bytes RAM fits the majority of mid-range 8-bit applications (vs PIC16F876A-I/SO)
Design Notes
Place a 100 nF ceramic decoupling capacitor within 5 mm of the VDD pin (pin 9) and a bulk capacitor (e.g., 10 uF tantalum or 4.7 uF ceramic) close to the device. According to the PIC16F87X datasheet (30292c), decoupling must be effective at both the internal regulator and at the analog reference pins (RA2/RA3 if used as VREF-/VREF+); add a small ferrite bead or 10 ohm resistor if analog and digital grounds must be tied together. AVDD is not present on 28-pin variants - keep analog VDD trace short and separated from digital switching currents.
Reserve RB6 and RB7 for ICSP programming - do not connect signal drivers, LEDs, or pull-ups that would exceed the ICSP voltage tolerance. According to Microchip, ICSP uses RB6 as clock and RB7 as data, both at the device VDD level. Place a 4.7 kohm pull-up on MCLR (pin 1) to ensure clean reset during power-up; the ICSP programmer pulses this line to enter programming mode. For debugging, route PGD/PGC to test points or a 2x3 header for the MPLAB ICD header.
Configuration bits (CONFIG word at program memory address 2007h) must be set correctly or the device will not run as expected. According to the PIC16F87X datasheet (30292c), common misconfigurations include disabling the brown-out reset (BOR), disabling the watchdog timer (WDT) when it is needed for safety, and selecting an oscillator mode that does not match the external crystal. The 'A' revision's improved BOR should be enabled for all new designs - it prevents Flash corruption during brown-out. Also note that the PIC16F873A has separate PORTA (analog), PORTB (digital with weak pull-ups), PORTC (digital with peripheral remapping), PORTD (digital), and PORTE (analog/digital) - remap pins carefully when using peripherals.
The 28-SOIC package has a theta_JA of approximately 80 C/W (typical for SOIC-28 on 1 oz copper 4-layer board, per JEDEC JESD51 standard). At industrial ambient of +85 C and modest MCU current (about 5 mA active at 20 MHz, 5 V), self-heating is negligible. However, in sealed enclosures or when driving multiple high-current loads directly from PORTB/PORTC pins (each pin typically rated 25 mA sink/source), the package can rise 10-20 C above ambient. If your enclosure is sealed, derate ambient by 10-15 C in the worst case or add small copper pours to spread heat. Estimated: based on P = V * I = 5 V * 5 mA = 25 mW active and theta_JA 80 C/W, junction rise is 2 C above ambient.
The MSSP module driving I2C at 400 kHz or SPI at 10 MHz requires attention to bus capacitance and pull-up sizing. For I2C, use 4.7 kohm pull-ups on SDA/SCL (RC4/RC3) when bus capacitance is under 100 pF and 2.2 kohm for longer buses. For SPI at high speeds, place a 33 ohm series resistor at SDO (RC5) output to dampen reflections; keep the clock trace (RC3/SCK) short and matched. Analog inputs (AN0-AN4) benefit from a small RC filter (100 ohm + 100 nF) right at the pin to limit sampling glitches and to form an anti-aliasing filter; use the ADC acquisition time register (ADCON1) to add hold time if source impedance is high.
Compliance Information
RoHS compliant per Microchip product page. Lead-free (Pb-free) finish. Not AEC-Q100 qualified - choose PIC16F873A-E/SS or PIC16F873A-H/SS automotive-grade variants for AEC-Q100 requirements. Halogen-free status not explicitly stated in Microchip documentation. Conflict-minerals compliance per Microchip policy.