Если спросить у инженеров старшего поколения, с какого микроконтроллера они начинали, очень часто прозвучит ответ: Microchip PIC16F84. Сейчас он выглядит архаично, но в конце 90‑х именно этот чип сделал embedded ближе к студентам, радиолюбителям и небольшим фирмам.
Исторический контекст: от OTP к Flash
В первой половине 90‑х Microchip успешно продавала серии PIC16C5x и PIC16C84. Они были основаны на OTP‑ и EPROM‑памяти:
- OTP (One‑Time Programmable) — однократная запись, ошибка в прошивке = выброшенный корпус.
- EPROM — стирание ультрафиолетом по 15–20 минут, отдельный лоток, стеклянное окошко в корпусе.
Для массового производства это ещё было терпимо, но для обучения и прототипирования — кошмар. Параллельно Atmel уже готовила первые AVR с Flash, а рынок 8051‑сов всё ещё жил на EPROM и OTP.
На этом фоне Microchip выпускает PIC16F84 — по сути модернизированный PIC16C84, в котором программная память переведена на Flash‑технологию. Теперь микроконтроллер можно было перепрограммировать за секунды, без UV‑ламп и выбрасывания чипов.
Технический портрет в масштабе эпохи
По современным меркам характеристики скромные, но для тех лет баланс был очень удачным:
- Архитектура: 8‑битная Harvard RISC
- Набор команд: около 35 инструкций
- Тактовая частота: до 20 МГц внешнего генератора (ядро работает на
Fosc/4, до ~5 MIPS) - Программная память: порядка 1K × 14‑битных слов Flash
- RAM: 68 байт (банковая организация)
- EEPROM: 64 байта энергонезависимой памяти данных
- Ввод/вывод: примерно 13 линий I/O (PORTA и PORTB) в корпусе DIP‑18
- Таймеры: 1×8‑битный Timer0 с делителем частоты
- Watchdog: встроенный сторожевой таймер
- Техпроцесс: ориентировочно 0,8 мкм CMOS
- Транзисторов: десятки тысяч (точное число Microchip не публиковала)
Ключевое отличие — именно Flash‑память программы. В сегменте дешёвых 8‑битных микроконтроллеров это было ощутимым преимуществом: цикл «исправил код → перепрошил → проверил» стал занимать минуты, а не часы.
Почему PIC16F84 стал легендой
Иконой он стал не из‑за мощности, а из‑за сочетания инженерных и «социальных» факторов:
- Доступность. Его можно было купить и у официальных дистрибьюторов, и на радиорынках, и по почте.
- Корпус DIP‑18. Вставил в макетку — и уже можно собирать схемы без собственной платы.
- Простая, но не примитивная архитектура.
- Маленький набор команд (35 инструкций),
- file registers и банковая организация памяти,
- отдельные регистры
TRISдля направления портов. - Море литературы. В конце 90‑х и начале 2000‑х журналы и книги массово использовали PIC16F84 как базовый пример: от «мигающего светодиода» до охранных сигнализаций и электронных замков.
- Дешёвые программаторы. Самодельные программаторы к LPT‑порту, позже — простые in‑circuit решения сделали входной порог очень низким.
Для студентов это был первый микроконтроллер, где while(1) в C или пара строк ассемблера превращалась в реальный мигающий светодиод на PORTB.
Болевые точки: чего в нём не хватало
Со временем ограничения PIC16F84 стали всё заметнее:
- Нет аппаратных UART, SPI, I²C. Любой протокол — только битбангом, с нагрузкой на CPU.
- Мизерная память. 1K слов Flash и 68 байт RAM быстро упирались в потолок при реализации протоколов, меню, сложной логики.
- Банки памяти. Переключение банков через бит RP0 регистра
STATUS— классический источник «таинственных» багов. - Нет АЦП и ШИМ. Для работы с аналоговыми датчиками и двигателями часто приходилось брать более старшие PIC или городить внешнюю обвязку.
Неудивительно, что Microchip довольно быстро вывела на сцену наследников: PIC16F628, PIC16F628A, PIC16F88 и др. Они добавили UART, больше RAM/Flash, иногда АЦП и компараторы, при сопоставимой цене. В новых разработках именно они вытеснили 16F84.
Невидимое влияние: от PIC к Arduino и STM32
Сегодня большинство новичков начинают сразу с Arduino (ATmega328P), STM32 Nucleo, Blue Pill или ESP32. Но культура, в которой выросли эти платы, во многом была сформирована ещё PIC16F84:
- «Сначала мигание» — традиция начинать освоение любой платформы с простого blink‑проекта уходит корнями в PIC‑ и 8051‑школу.
- Идея доступного микроконтроллера для каждого. DIP‑корпус, макетная плата, журнал с пошаговой инструкцией — тот же дух, который позже принял форму Arduino‑плат.
- Инженерное мышление через регистры. Привычка сначала открыть datasheet, найти карту регистров и самому инициализировать порты, таймеры, watchdog — для многих она началась именно с PIC.
Немало разработчиков, которые затем проектировали Arduino‑совместимые платы, STM32‑модули и ESP32‑«бублики», в молодости отлаживали свои первые проекты на 16F84 и его близких родственниках.
Чему нас до сих пор учит PIC16F84
С практической точки зрения сегодня лучше выбирать современные PIC16F1xxx, PIC18, AVR или ARM Cortex‑M0+. Но история PIC16F84 по‑прежнему ценна:
- Успешный чип — это не всегда самый мощный, а самый доступный и хорошо задокументированный.
- Небольшая и даже немного неудобная архитектура может быть отличным учебным полигоном.
- Сильное сообщество, примеры и статьи в журналах превращают обычный компонент в культурный феномен.
Если сегодня вы ставите на плату STM32, RP2040 или ESP32 и запускаете очередной blink, помните: когда‑то ту же роль играл маленький PIC16F84 в корпусе DIP‑18. И значительная часть нашей нынешней embedded‑культуры выросла из тех времён, когда этот чип был королём учебных лабораторий и радиолюбительских мастерских.










