feature article
Subscribe Now

A History of Early Microcontrollers, Part 9: The General Instruments PIC1650

I almost did not write this chapter in the ongoing saga of early microcontroller history. That’s not because the PIC1650 microcontroller isn’t important, just that it was not very important in its first incarnation. General Instrument Microelectronics (GI) envisioned the PIC1650 microcontroller as a peripheral chip for its 16-bit CP1600 microprocessor. In fact, “PIC” originally stood for “peripheral interface chip,” but the company eventually changed that meaning to “programmable intelligent computer.” Neither the CP1600 microprocessor nor the PIC1650 microcontroller made much impact on the industry during the 1970s. However, GI went through a couple of near-death experiences and came through the other side as Microchip in the late 1980s, and the original PIC1650 microcontroller served as the seed that eventually grew into one of the world’s most successful microcontroller product lines.

GI arrived at the MOS LSI party early – in fact the company introduced the first commercial MOS IC, a 20-bit shift register, in 1964 – and the company built a large portfolio of successful MOS LSI chips. I can recall:

  •         Early calculator chips
  •         Clock and clock-radio chips and modules
  •         Frequency counter chips
  •         TV tuner and TV game chips (including a “pong” game)
  •         Music chips and sound generators
  •         A text-to-speech synthesizer
  •         Digital voltmeter chips
  •         ROMs, SRAMs, EAROMs (electrically alterable ROMs)
  •         Keyboard controllers
  •         Communications chips including UARTs (universal asynchronous receiver/transmitters), P/SARs and P/SATs (programmable synchronous/asynchronous receivers and transmitters)

That’s a huge product line.

GI developed a 16-bit microprocessor with Honeywell as a partner and launched the device as the CP1600 in 1975. It was loosely based on the PDP-11 minicomputer architecture from Digital Equipment Corporation. Honeywell used this microprocessor in its process-control computers, called Multifunction Controllers, and related equipment. Mattel Electronics used a version of the CP1600 called the CP1610 in its Intellivision home video game console, unveiled at CES in January 1979. Apparently, the CP1600 was not used in many products besides Honeywell’s equipment and the Mattel Intellivision.

The CP1600 disappeared from the GI product catalog in the early 1980s. The CP1610 survived a few years more. Adam Osborne, the great chronicler of microprocessors in the 1970s, wrote that the CP1600’s shortage of design wins was mainly due to a lack of support by GI, which tended to focus its efforts on supporting high-volume customers like Mattel.

In an interesting side note, Honeywell’s Multifunction Controllers from that era are still refurbished and offered by companies like Western Process Computers, which offers an FPGA-based emulation of the CP1600 developed by Azbil (formerly Yamatake, Honeywell’s process-control partner in Japan back then). This CP1600 emulation serves as a support strategy to keep these old process controllers running after the 40-year-old GI microprocessors finally fail. This example hints at how long some of this old equipment continues to stay in productive use.

The CP1600 microprocessor used memory-mapped I/O, but GI didn’t develop conventional peripheral chips for this microprocessor’s bus. Instead, GI developed an I/O microcontroller called the PIC1650 to expand the CP1600’s I/O capabilities. GI introduced the PIC1650 microcontroller in 1976, which is the same year that Intel announced the 8048.

The PIC1650 wasn’t the first microcontroller, nor was it the best. Like most microcontrollers, the PIC1650 came packaged in a 40-pin DIP, ran on 5 volts, and had an oddball Harvard architecture with a 12-bit instruction word, an 8-bit data word, and a 2-level stack. The PIC1650’s only on-chip RAM was a 32-byte register file. The original PIC1650 had a relatively small 512-word ROM for program storage.

GI did not offer the PIC1650 with a UV-erasable EPROM or EAROM (EEPROM to use the more modern term) for several years. Instead, the company developed the PIC1664, which brought out the address and data bus and therefore required a 64-pin package. By comparison, the PIC1650’s competitors had larger ROMs, larger RAMs, and were offered in either UV-erasable EPROM versions with windowed packages or versions with piggy-back sockets that accepted a UV-erasable EPROM. By 1980, GI added the PIC1656 with a 3-level stack and a “return” instruction for subroutine calls.

Brian Harden worked for GI in the company’s Glenrothes factory in Fife, Scotland during the mid-1970s when the PIC1650 appeared. GI Glenrothes received a TTL emulation board of the microcontroller during the early days of the PIC1650, and Harden was developing a teletext/viewdata chip for GI at the time. He needed some way to implement a user interface for this chip and decided to try using the microcontroller emulator to implement the user interface. He succeeded and set a precedent for the company. Over the next several years, GI developed several pre-programmed devices based on its PIC1650 microcontroller.

Harden liked the microcontroller and continued to use it when he left GI in 1981. He started a design consultancy and specialized in designs based on the PIC1650. One of his early designs was for the control electronics in the Creda Micron washing machine. He replaced the mechanical controls with a PIC microcontroller. The Creda Micron incorporated multiple PIC microcontrollers for motor-speed control, the user interface, and overall machine management. Harden ran his design consultancy until 1998 and estimates that three-quarters of his designs were based on PIC microcontrollers.

By 1981, GI had added the PIC1670, with twice the amount of on-chip ROM. A slight architectural expansion gave the PIC1670 microcontroller a 13-bit instruction word instead of the PIC1650’s 12-bit instruction word, which allowed the PIC1670 to address a larger on-chip register file directly and allowed some additional instructions. By 1983, the PIC1650 family numbered seven members including the first CMOS member, the PIC16C58 – a low-power version of the PIC1655A – which was a PIC1650A in a reduced-cost, 28-pin package. Even back then, GI was targeting PIC microcontrollers at the most cost-sensitive designs.

General Instrument spun off its microelectronics division as a wholly owned subsidiary in 1987. A group of venture capitalists acquired the subsidiary and named it Microchip Technology in 1989. However, things weren’t going well at Microchip. Its sales were flat or dropping, largely due to competition from semiconductor companies in Japan. More than 60 percent of the company’s revenues came from the disk drive industry, and one customer represented more than 25 percent of the company’s annual income. Microchip had an aging fab with poor quality control, which resulted in low yields and high manufacturing costs due to excessive scrap. Incredibly, the company was selling and shipping some products at below-cost prices. By 1990, the company was losing $2.5 million per quarter and had only six months’ worth of cash on hand. Microchip was in a vulnerable position. What the company needed was focus.

Steve Sanghi joined Microchip as an Executive Vice President on February 28, 1990. That day, while signing employment papers in the HR department, he heard over the company intercom that the current CEO was being let go and that the board was initiating a search for a new CEO. Sanghi was asked to come to the boardroom from the HR department where he was asked to leave the company as part of the management shakeup. He didn’t leave. Three months later, he became Microchip’s new CEO. Microchip spent the next nine months on the verge of bankruptcy while Sanghi labored to right the ship.

Sanghi initiated a product-line triage to find the devices that Microchip could make profitably with its fab. Among the winners were the PIC1650 architecture, UV-erasable EPROMs, and EEPROMs. By combining these three in-hand technologies, Microchip assembled the first low-cost, field-programmable PIC microcontroller and sold it for only a few dollars each while competitive microcontrollers from Motorola and Intel were selling for more than $10 each. Field-programmable PIC microcontrollers were quite attractive to distributors because they could be kept on the shelf, ready to ship to customers. Distribution became an important channel for Microchip’s PIC microcontrollers.

The first Microchip PIC microcontrollers became very successful, and the company rapidly evolved the line to include 16- and 32-bit varieties. In 1990, Microchip was ranked as the 20th largest microcontroller company. By 2002, it was the number one microcontroller vendor. During those years, Microchip had only one company in its sights: Motorola, the top dog in microcontrollers. The Motorola MC6800 microprocessor architecture had evolved into numerous microcontroller families including the MC6801, MC6805, MC68HC05, MC68HC08, MC68HC11, and MC68HC12. Those extensive families put Motorola on top of the microcontroller list. Microchip successfully rode the PIC1650 architecture from the bottom to the top of that list in a decade.

I was a witness to Microchip’s ascendency to the microcontroller throne. On-chip EEPROM technology allowed Microchip to put its erasable microcontrollers in low-cost plastic packages while other microcontroller vendors were forced to use expensive, windowed, ceramic packages for their UV-erasable parts. I observed that Microchip supported its customers well, with inexpensive development platforms that echoed and amplified the attractiveness of its low-cost microcontrollers. Finally, I observed how Microchip employed an aggressive academic program to teach budding developers how to use Microchip microcontrollers rather than competing products. This program seeded Microchip’s future market. All these strategies helped drive Microchip’s microcontroller market share to the top of the heap by 2002.

Microchip’s beginnings take place during the early history of microcontrollers, but the company’s success takes place decades later, during the era when microcontroller use began to explode, and new microcontroller families started to appear at a very fast rate. During this expansion period, European and Japanese semiconductor manufacturers jumped into the market. I hope to cover that next part of microcontroller history in another article series, some time in the future.

Epilog

This ninth installment of early microcontroller history brings the article series to its end. I did not cover microcontrollers beyond 1980, nor did I cover every microcontroller ever developed in the 1970s. I know I’ve omitted some microcontrollers for lack of recorded information other than data sheets, which make for poor histories. For example, I did not find enough information to write full articles about the National Semiconductor COP microcontroller series. These first nine articles are a start.

Some individual microcontroller histories are well covered online or with oral history recordings from institutions like the Computer History Museum and the Stanford University Library. I’ve even found gold in online archives of old email list servers and online bulletin boards, and I’ve found some items buried in the unmoderated online user-to-user forums of the microcontroller vendors themselves. Other not-so-popular or perhaps not-so-famous microcontrollers are poorly documented or are even completely lost to the mists of time.

If I omitted your favorite microcontroller in these nine articles, I apologize. However, you have the power to remedy the situation. If you have a good story about any of the microcontrollers covered in this series, or for microcontrollers that I failed to mention, please feel free to write about your experiences in the comments below.

 

References

Driving Excellence: How The Aggregate System Turned Microchip Technology from a Failing Company to a Market Leader, Mike J. Jones and Steve Sanghi, Wiley, 2006

Brian Harden personal history with the PIC1650, Microchip 8-bit Microprocessor Forum, March 2, 2004

Microchip’s Steve Sanghi on How to Bring a Company from Debt to Billions, All About Circuits, June 11, 2021.

9 thoughts on “A History of Early Microcontrollers, Part 9: The General Instruments PIC1650”

  1. PIC is unique proof of how much crap are customers willing to eat, if they have no other choice.
    Programming it is pure, chronic pain, even today.
    It feels a lot like this, actually:
    https://www.youtube.com/watch?v=9VDvgL58h_Y

    OTOH they’ve had bright moments, too.
    Here is their FAE in a commercial of their fundamental dependency- can’t program PIC without being
    boozed to ease the pain:

    1. On the one hand I know what you mean. Sometime last year I agreed to take over maintaining some PIC code for a company because the person who created it was retiring. I should have asked more questions — it turned out there were multiple code files for a variety of PIC types — all the code was written in PIC assembly language — I was told the code was commented — and it was — the problem was that the code had evolved over the years — the comments not so much. I downloaded the PIC manuals thinking “how hard can learning another assembly language be?” The problem is the PIC architecture, which varies from device to device and family to family, and which reflects the evolution of the devices from when their designers counted every transistor. The memory banks and the rules for crossing memory bank boundaries made my eyes water. Then a friend introduced me to Positron PIC BASIC Compilers created by Les Johnson (https://bit.ly/3rtDcw8). A one-time PayPal payment of only £39.99 will gain you access to the latest and greatest compilers, along with any and all future updates and upgrades. The reason for the plural “compilers” is that there are different compilers for 8-bit and 16-bit PICs. Both are included and the accompanying IDE selects the appropriate compiler based on the device specified in the code, all of which is invisible to the user, which is just the way I like it. These compilers are awesome — they generate extremely compact machine code and they deal with the vast majority of the “under the hood” complexity (like the memory banks and boundary issues) for you. So rather than kill myself maintaining the assembly code, I simply rewrote it in this PIC BASIC, which is a delight to maintain. As a result, I’ve come to love all that PICs have to offer, which is a bunch (low price, myriad configurations to suit every application — once you work out how to wend your way through them all — and lots of package options including LTH and SMT.

      1. I don’t have a problem with writing tight asm code, but PIC is truly moronic on many aspects, even latest PIC16 generation.

        Just one example – shadowed index registers. One would expect that there are two set of registers, which interchange their position, so that one set is useable as INDX,INDY in interrupt, while their inactive aprt is accessible somewhere high in FSR map ( say IND_SAVEDX, IND_SAVEDY).

        Doing it that way would be reasonable. Slim implementation ( nos special HW resources needed) which would bring also simple, fast transition ton interrupt and back – no need to care about index registers.
        One would only have to set IND_SAVEDX/Y once during the chip powerup/initialization.

        MC ofcourse used most moronic way possible – core actually copies INDX/Y into IND_SAVEDX/Y at each interrupt and vice versa at the return.

        This not only needs some time or extra data paths for data transfer, it only means that if one want to use INDX/Y registers during the interrupt, one has to set them DURING EACH INTERRUPT.

        Keep in mind, this is late PIC16 core, after bazzilion iterations.

    2. With all due respect, I loved programming and designing with the PIC 1650 series. 256 or 512 total program words, like 23 real 8 bit registers, but was able to crank out everything from vehicle control products, to hand held and computer games, including music which requires a steady ‘clock’ in addition to keeping the program going.

      The mega, tera, peta memories are super, the speeds amazing, the OS’s and language processors VERY helpful, but we cranked out a steady stream of products that gave the volumes of IC production that let us progress. It is so gratifying that GI / Microchip stayed with the “embedded” theme, even buying approximately everyone else in the embedded industry.

      I guess it helps that I developed the ICE / development systems that let all of us grow that product line.

      1. Tom Mariner, I fully respect your choice and preference for the PIC 1650. I’m sure your involvement with the development of the PIC 1650 ICE and development systems informed your preference. Many useful designs were based on the PIC 1650.

  2. I used a PIC16F84 for a small 1010-instruction-word assembly-language radio-control-panel program in 1998, updated for hardware change in 2009, and I enjoyed the instruction set. I keep MS-DOS around so I can still run Parallax spasm (16F84 assembler) and spep (16F84 programmer) if I need to update my program.

    I recall that the 16F84 data word is 8 bits and the instruction word is 14 bits. The “retw” instruction has 6 bits of opcode and 8 bits of immediate data. retw returns from a subroutine call, placing the 8 bits of immediate data in the main register w. The “call” instruction target address is an immediate constant added to the value in w. The combination of these two instructions makes for very convenient lookup tables made up of retw instructions.

    Admittedly, this cleverness is meaningless for larger programs written in high-level languages.

    1. You obviosly haven’t done complex code with it that was to run fast.
      There are no conditional branches, only conditional instruction skips.
      Doing the conditional loops that have to run fast, depending on multiple conditions gets hellish REAL fast.

      1. I have only written the one small 16F84 program I discussed above, where speed was not critical.

        The 16F84 instruction set, as published by Microchip, has conditional skips but not conditional branches. The Parallax assembler I used, does have conditional branches, synthesized from conditional skips and gotos by the assembler. I mostly used conditional branches, and a few times used conditional skips.

Leave a Reply

featured blogs
Dec 19, 2024
Explore Concurrent Multiprotocol and examine the distinctions between CMP single channel, CMP with concurrent listening, and CMP with BLE Dynamic Multiprotocol....
Dec 20, 2024
Do you think the proton is formed from three quarks? Think again. It may be made from five, two of which are heavier than the proton itself!...

featured video

Introducing FPGAi – Innovations Unlocked by AI-enabled FPGAs

Sponsored by Intel

Altera Innovators Day presentation by Ilya Ganusov showing the advantages of FPGAs for implementing AI-based Systems. See additional videos on AI and other Altera Innovators Day in Altera’s YouTube channel playlists.

Learn more about FPGAs for Artificial Intelligence here

featured chalk talk

S32M2 Integrated Solutions for Motor Control
In this episode of Chalk Talk, Raghavan Nagarajan from NXP and Amelia Dalton explore the challenges associated with software defined vehicles, the benefits that S32M2 integrated solutions for motor control bring to this arena, and how you can get started using these solutions for your next automotive design.
Nov 21, 2024
30,817 views