The PIC 16F88: Why the PIC 16F84 is now Really obsolete.

by: Byron A. Jeff
developer of the
TLVP Low Voltage PIC programmer

Be sure to check out my new languages page where I talk about cool crossplatform Languages for the PIC.

Also read to the bottom for an update on even newer, jampacked PICs that you should consider adding to your toolbox.

July 25, 2004: I decided to spruce up the page a bit by moving the focus to the 16F88.

April 2nd, 2005: Note there may be residual comments that were originally targeted for the 16F628. If you see one of these, please let me know so that I can correct them. Thanks to Robert Rolf for pointing out a couple of these.

For nearly three years now I've been advocating the use of the 16F628 for new small pin package PIC projects. After writing dozens, if not over a hundred, posts on the subject. I finally realized that if I am to continue the crusade I needed to summarize the features in one spot. So here it is. And as I pointed out above, the 16F88 is even better so I'll talk about it here. You can find the original 16F628 comparision page for archival purposes.

I'd like to start by saying that the 16C84, the 16F84, and the 16F84A are all outstanding parts, especially for the hobbyist. With their flash based reprogrammability, and reasonable costs, they provided an avenue for many developers to enter the microcontroller arena.

However at this point there is a lot of inertia. With the widespread books, articles, and websites about the 16F84, the fact that Microchip has progressed in their product lines is somewhat obscured. The purpose of this page is to outline the feature advantages Microchip's new low end product line and to argue that the 16F84 should be considered obsolete.

Microchip has several new flash based products. The 18F series, now in full production, has somewhat of a lag in both development and high level language environments. The 16F87X family is an outstanding product line, but does not have a pin compatible version to the 16F84. The third, fourth, and fifth lines: the 16F62X line, headed by the 16F628, the 16F8X line, headlined by the 16F88, and the 16F81X line, topped by the 16F819, are pin for pin compatible with the 16F84. In particular the 16F88 has many many new features:

  • More memory (comparison of the 16F88 to the 16F84A):
    • More program memory (4K to 1K)
    • More data memory (368 to 68 bytes),
    • more data EEPROM (256 to 64 bytes)
  • More hardware:
    • hardware serial USART,
    • 3 timers as compared to 1 for the 16F84A
    • hardware PWM
    • hardware compare/capture registers
    • dual onboard comparators
    • programmable voltage reference
    • 7 input channel 10 bit Analog/Digital Converter
    • Syncronous serial port supporting SPI and slave I2C
  • More features:
    • onboard multispeed (8Mhz to 31.25 Khz) precision internal oscillator. With this baby for moderate performance projects you don't need a external crystal or resonator at all! This is one part of Microchips nanowatt technology package that can get the part to use virtually no power in certain situations.
    • brownout detector
    • low voltage programming capable
    • capability to add 3 additional I/O pins by repurposing MCLR, and the two oscillator pins giving up to 16 I/O pins in an 18 pin package.
    • Self programmable Program memory making the part bootloader implementable.
  • Hardware/Software/programming compatibility
    • It has the same pinout as the 16F84A.
    • the 16F88 will run 16F84A code with only very minor modifications. I haven't yet located a page describing all of the modifications, so here's a brief, and possibly incomplete list:
      • Change the start address of the first free RAM location.
      • Inputs with analog capability are configured to come up in analog mode. Since the 16F88 has both the comparators and the A/D converter, be sure to configure the ADSEL register if you wish to use those pins as digital pins.
      • If you're using the internal oscillator, you may need to fiddle with the OSCCON register. The IOFS bit tells you when the oscillator has changed speeds.
    • The 16F88 can be programmed with 16F84A programming hardware, but requires updated programming software to access all the 16F88 program memory
    • As stated above the 16F88 can be programmed in low voltage programming mode. Programmers such as my Trivial Low Voltage Programmer can program the 16F88 part.
    • Bootloaders for the 16F88 are slowly coming into play. The great thing about a bootloader is that you no longer need a programmer once the chip has a bootloader installed. Now the 16F88 cannot use traditional 16F877 style bootloader code. Some potential candidates include Tato's ProPIC 16F819 bootloader which should work with the 16F88 with some minor changes and the the SparkFun 16F88 Bloader.

Finally the kicker:

The 16F88 costs less than the 16F84A!!!!

That's right. The far superior part in features costs less than the older, less featured part.

The 25 part price of the 16F84A is $4.24 at Digikey. The 16F88 price is $2.60. That's for 20 Mhz parts.Note that the 8MHz oscillator referred to above is the internal oscillator. The 16F88 can run up to 20 MHz with an external crystal/oscillator. The disparity is larger for smaller quantities.

As one local Atlanta radio station ad states:


The 16F88 is so much bigger, better, badder, and cheaper. It's 4 for 4 over the 16F84 or 16F84A. Even Microchip is clearly trying to steer folks away from the 16F84 with their pricing.

So that's it. The 16F88 is superior in every way to the 16F84.

  • It's pin and virtually code compatible.
  • It cost less.
  • It has a boatload of peripherals to make almost any project simpler.
  • It can be programmed with cheaper and simpler hardware. With a bootloader, it can be programmed with virtually no hardware at allo
The only reason not to use the part is a lack of awareness. And that's the purpose of this page.

Even Newer PICS!

This page hasn't been updated for awhile. In the last year or so a crowd of new parts have shown up. Most have the really cool oscillator module that has multiple speeds and good enough precision to be used for async serial projects. Be sure to check them out:
  • First the 16F6XX family has been update to an "A" version which is cheaper than the originals. In addition a bigger part has been added. The PIC 16F648A has all the goodies and a 4K program space.
  • Others include the 16F819 and the 16F676 (a 14 pin version of the tiny 12F675). Some of the parts even add an A/D converter to the mix. Instead of outlining them individually I suggest you take a look at Randy Jones site, which has both great descriptions and great prices on these parts.
  • Also I invite you to check out the Microchip Sample Area where you can get samples for many of these parts.

-------------------------------------------------- Paid Advertisement Links Below --------------------------------------------------
Checks By Phone | Verify a Check | Reorder Checks | Routing Number | Check Verification
| BIN Database | Vacation Rental Boston
| Check By Phone Software for Mac | Check By Phone Software Reviews | Spare Suite Crowd Funding Campaign | SWIFT Code Database |