🛒 Arduino, ESP32 və modullar
Microchip PIC16F84: Mikroprosessorların qədim dastanı

Microchip PIC16F84: Mikroprosessorların qədim dastanı

PIC16F84 niyə 90-cı illərin sonu embedded dünyasının "xalq mikrokontrolleri"nə çevrildi və bu kiçik 8-bit çip bu gün Arduino və STM32 ekosistemlərində hələ də hiss olunan hansı irsi qoyub?

6 sentyabr 20264 dəq oxuma5 teqlər

90-cı illərin sonlarında Microchip PIC16F84 adi bir 8-bit mikrokontroller kimi görünürdü. Amma az müddətə məktəb laboratoriyalarının, öz əli ilə cihaz yığan ustaların və ilk embedded mühəndislərinin sevimli çipinə çevrildi. Bu gün artıq istehsalı dayandırılıb, amma onun yaratdığı mədəniyyət hələ də Arduino, STM32 və ESP32 dünyasında yaşayır.

Niyə PIC16F84 yarandı?

1993–1995-ci illərdə Microchip artıq PIC16C5xPIC16C84 kimi OTP (bir dəfə proqramlanan) və EPROM əsaslı PIC-ləri bazara çıxarmışdı. Problem aydındır: hər səhv firmware üçün yeni çip yazmaq, ya da UV lampası ilə EPROM silmək lazım idi. Həvəskar üçün də, kiçik şirkət üçün də bu həm baha, həm də yorucu idi.

PIC16F84 bu ağrını aradan qaldırmaq üçün yaradıldı:

  • Flash proqram yaddaşı – UV lampa yoxdur, proqramı dəfələrlə yaz-sil.
  • Standart DIP-18 korpus – breadboard üzərinə birbaşa tax, əlavə adapter tələb olunmur.
  • Sadə, amma kifayət qədər funksional RISC nüvə – 35 təlimatdan ibarət komanda dəsti.

Bu, onu həm universitet laboratoriyaları, həm də qarajda özünə məxsus cihaz yığanlar üçün əlçatan etdi.

Texniki xüsusiyyətlər – öz dövrü üçün nə demək idi?

PIC16F84 bu günkü ölçülərə görə sadə görünə bilər, amma 90-cı illərin sonu üçün çox balanslı idi:

  • Mimarisi: 8-bit Harvard memarlığı, RISC nüvə
  • Təlimat toplusu: cəmi 35 təlimat
  • Saat tezliyi: kristal ilə adətən 4–10 MHz (maksimum 20 MHz; əməliyyat tezliyi Fosc/4, yəni 10 MHz kristalda 2.5 MIPS)
  • Proqram yaddaşı: təxminən 1K word Flash (hər word 14 bit)
  • RAM (SRAM): 68 bayt (banklara bölünmüş)
  • EEPROM: 64 bayt daxili məlumat EEPROM-u
  • I/O pinləri: təxminən 13 proqramlana bilən giriş/çıxış (PORTA və PORTB)
  • Zamanlayıcılar: 1×8-bit Timer0 (prescaler ilə)
  • Watchdog taymeri: daxili watchdog timer
  • Proses texnologiyası: təxminən 0.8 µm CMOS (sənaye mənbələrinə əsaslanan tipik dəyər)
  • Tranzistor sayı: cəmi bir neçə on min tranzistor səviyyəsində (dəqiq rəqəm Microchip tərəfindən açıqlanmır, amma dövrün 8-bit MCU-ları üçün tipikdir)

Əsas fərq Flash proqram yaddaşı idi. AVR AT90S seriyası hələ yeni-yeni yaranırdı, 8051 klonlarının çoxu isə EPROM və ya OTP idi. PIC16F84 isə ucuz qiymətə təkrar proqramlana bilən çip təklif edirdi.

Niyə bu qədər məşhur oldu?

PIC16F84 bir neçə səbəbdən "xalq çipi" statusu qazandı:

  • Ucuz və hər yerdə tapılan – radiobazardakı köşklərdən tutmuş məktəb laboratoriyasına qədər.
  • Sadə korpus – DIP-18, lehimləmək də, breadboard-da sınamaq da rahatdır.
  • Çoxlu təlimat materialı – 90-cı illərin sonu – 2000-ci illərin əvvəllərində internetdə və jurnallarda saysız-hesabsız "PIC16F84 ilə LED axını", "elektron kilid", "sayğac" layihəsi yayılmışdı.
  • İntellektual cəhətdən "tutula bilən" – 35 təlimat, banklı RAM, file register anlayışı; yeni başlayan üçün həm çətinlik, həm də öyrədici idi.

Embedded dünyasına ilk addımını atanların böyük hissəsi üçün bu çip bir növ ABC rolunu oynadı: TRIS registri nədir, PORTB necə işləyir, watchdog niyə sistemə reset verir və s.

Məhdudiyyətlər – niyə bu gün onu praktiki layihələrdə az görürük?

PIC16F84-ün çox ciddi çatışmazlıqları da var idi:

  • Heç bir UART, SPI, I²C yoxdur – yalnız bit-bang üsulu ilə emulyasiya.
  • Kiçik RAM və Flash – mürəkkəb protokollar və ya çoxsəviyyəli menyular üçün yetərli deyil.
  • Banklı yaddaş memarlığıSTATUS registrində RP0 biti ilə bank dəyişmək yeni başlayanlar üçün kabusa çevrilirdi.
  • Müasir alternativlərlə müqayisədə baha – bu gün eyni qiymətə daha güclü PIC16F, PIC18, AVR və ya ARM Cortex-M0+ almaq olur.

Elə buna görə də Microchip daha sonra PIC16F628, PIC16F628A, PIC16F88 kimi UART, daha çox RAM və əlavə periferiyaya malik təkmilləşdirilmiş modellər təqdim etdi. Onlar faktiki olaraq PIC16F84-ü bazardan sıxışdırıb çıxardılar.

PIC16F84-ün irsi: Arduino və STM32-də görünməyən kölgə

Bu gün yeni layihəyə başlayanların çoxu birbaşa Arduino UNO (ATmega328P) və ya STM32F103 "Blue Pill" ilə start verir. Amma bu ekosistemlərin ruhunda PIC16F84-ün izi var:

  • Sadə başlanğıc – "blink" nümunəsi ilə başlamaq ənənəsi PIC dövründən gəlir.
  • Bootloader ideyası – hər dəfə proqramlayıcıya ehtiyac olmadan firmware yeniləmək konsepsiyası məhz Flash MCU-ların, o cümlədən PIC16F84 ailəsinin populyarlaşması ilə gücləndi.
  • Aşağı səviyyədən başlamaq – bir çox təcrübəli mühəndis hələ də yeni mikrokontrolleri öyrənərkən ilk olaraq registr xəritəsinə baxır. Bu vərdişin kökləri PIC və 8051 məktəbindədir.

Ən maraqlısı odur ki, bu gün hobbist forumlarında hələ də "ilk mikrokontrollerim PIC16F84 idi" nostaljisi ilə yazılan paylaşımlara rast gəlmək olur.

Nəticə – qədim dastan, amma hələ də aktual dərslər

PIC16F84 artıq praktiki baxımdan köhnəlib. Amma onun bizə öyrətdiyi dərslər aktualdır:

  • Yaxşı çip həmişə ən güclüsü deyil, ən əlçatanı və yaxşı sənədləşdirilənidir.
  • Sadə memarlıq yeni başlayan üçün ən yaxşı müəllimdir.
  • Güclü icma və çoxlu nümunə layihə bir mikrokontrolleri sıradan məhsuldan ikonaya çevirə bilir.

Əgər bu gün breadboard üzərinə ARM Cortex-M4 və ya ESP32 qoyursansa, yadında saxla: bir vaxtlar eyni həyəcanla DIP-18 korpuslu kiçik bir PIC16F84 bu rolu oynayırdı. Və bəlkə də sənin bugünkü embedded marağın məhz o dövrün yaratdığı mədəniyyətin davamıdır.