PIC16F84 16F84A Entegrelerinin Versiyon Farkları

| Mayıs 2, 2017 Tarihinde güncellendi
PIC16F84 16F84A Entegrelerinin Versiyon Farkları

PIC Programlamada ilk zamanlar cevabı hep merak edilen bir soru 16f84 ile 16f84a arasındaki değişiklikler. çalışırmı ? çalışmazmı ? kararsızlık olurmu ? bende bir zamanlar merak etmiştim bu konu sanırım uzun bir süre merak edilecek…

Kaynak: http://www.izoelektronik.com/pic-16f84-ve-pic-16f84a-arasindaki-farklar-ve-benzerlikler.htm

PIC 16F84 ve PIC 16F84A Arasındaki Farklar ve Benzerlikler

PIC 16F84 ve PIC 16F84A bir zamanlar uygulamalarda popüler olarak kullanılan mikrokontrolcülerdi.PIC uygulaması denince, PIC 16F84 akla gelirdi.Daha sonra Microchip, PIC 16F84′ün geliştirilmiş versiyonu olan PIC 16F84A’yı üretmeye başladı.Bir zaman geçtikten sonra PIC 16F84′ün üretimi durduruldu. Çünkü yerine geliştirilmiş versiyonu üretiliyordu.Doğal olarak da bir alt modelini üretmek gereksizdi.Yeni yapılan uygulamalarda A serisini seçmek daha mantıklıydı, çünkü daha hızlı çalışabiliyordu.

Bugünlerde uygulama yapmak için popüler olan PICler ise, PIC 16F628A ve onun daha büyük hafızaya sahip olanı PIC 16F648A. PIC 16F84A’yı kullanmak, yeni uygulamalarda, projeyi geliştiren için 16F628 serisine göre bir külfet olsa da, 16F84A serisi çoğu uygulamanın 16F84′e göre yazılmasından dolayı sıklıkla kullanılıyor.

İlk paragrafta dedik ki, bir çok güzel ve çalışan uygulama 16F84 ile yapılmış.İkinci paragrafta da bu mikrokontrolcünün yerine PIC 16F84A üretildiğinden bahsettik.Günümüzde PIC 16F84 ile yapılan eski projeleri mecburen 16F84A ile yapmak zorundayız.Bu değişiklik de aşağıdaki soruları akıllara getiriyor:

“Devre PIC 16F84 ile yapılmış.Ben 16F84A taksam olur mu?”

“16F84 ile 16F84A arasındaki farklar nelerdir?”

“Programlayıcım PIC 16F84 programlıyor, peki 16F84A da programlayabilir miyim?”

Bu yazımızda bu soruları yanıtlamaya çalışacağız. 🙂

Uzun bir giriş kısmından sonra gerçek konumuza başlıyoruz. 😀

Yazıyı uzun uzun okumak istemeyenler ve “Projeyi hemen bitirmem lazım.Sonuç olarak PIC 16F84 yerine, 16F84A kullanabilir miyiz?” diyenler için cevabımız: evet

Genellikle bir uyumsuzluk yaşanmaz.Fakat “Kesin çalışır mı ?” derseniz cevabımız: hayır

İsterseniz PIC 16F84 ve PIC 16F84A arasındaki benzerlikleri bir tablo aracılığı ile inceleyelim.

ÖzellikPIC 16F84PIC 16F84ASadece farklı 35 komutla çalıştırılabilmeMevcutMevcutProgram dallanma komutlarının 2 çevirimde, diğer komutların 1 çevirimde çalıştırılmasıMevcutMevcut“Program Memory” Boyutu1024 Word1024 WordRAM Boyutu68 Byte68 ByteEEPROM Boyutu64 Byte64 ByteKomut Boyutları14 Bit14 BitVeri Saklama Boyutları8 Bit8 BitÖzel Donanımsal Yazmaç ( Register ) Sayısı1515Donanım Kümesi ( Hardware Stack) Seviyesi88Direkt, Dolaylı ve Bağımlı Adresleme DesteğiMevcutMevcutHarici RB0/INT KesmesiMevcutMevcutTMR0 Taşması Durumunda KesmeMevcutMevcutPortB 4-7 KesmesiMevcutMevcutEEPROM Yazımının Bitmesi Sonucu KesmeMevcutMevcutAyarlanabilir Giriş/Çıkış ( I/O ) Pin Sayısı1313Bir Pinin Lojik 0 Olması Durumunda Üzerinden Akabiliecek Maksimum Akım ( Sink )25 mA25 mA8 Bitlik Bölücü ile Ayarlanabilir 8 Bitlik TMR0 ÖzelliğiMevcutMevcutEEPROM Üzerinde Yapılabilecek Maksimum Yazma/Silme Sayısı10.000.00010.000.000EEPROM Üzerinde Bilginin Sağlıklı Bir Şekilde Saklanabileceği Maksimum Süre40 Yıldan Fazla40 Yıldan FazlaDevre İçinde Programlanabilme Desteği ( ICSP )MevcutMevcutPower on Reset ( POR )MevcutMevcutPower-up Timer ( PWRT )MevcutMevcutOscillator Start-up Timer ( OST )MevcutMevcutDahili RC Osilatör ile Watchdog Timer ( WDT )MevcutMevcutKod Koruma ( CP )MevcutMevcutGüç Tasarrufu İçin SLEEP Mod ÖzelliğiMevcutMevcutÇeşitli Tipte Osilatörler ile ÇalışabilmeMevcutMevcut

Bunlardan ayrı olarak da, her iki cihazın blok diyagramı,pin dizilimleri, program hafızası haritası ve buna bağlı olarak da reset ve kesme vektör adresleri, genel amaçlı yazmaç ( register ), özel yazmaç ( register ) ve yazmaç ( register ) sayfaları ( bank ) sayısı, özel yazmaçların ( register ) alacağı değerler ve takınacağı hal ve tavırlar 😀 aynı.

Görüldüğü üzere birçok temel özellik her iki cihazda da aynı.

Bir de farklarına bir göz atalım

ÖzellikPIC 16F84PIC 16F84AÇalışabilecek Makisumum Saat Hızı10 MHZ (HS)20 MHZ (HS)Bir Pinin Lojik 1 Olması Durumunda Üzerinden Akabiliecek Maksimum Akım ( Source )20 mA25 mAFLASH Belleğin Maksimum Silme/Yazma Sayısı1.00010.000Çalışma Voltajı Aralığı2.0V – 6.0V2.0V – 5.5VMaksimum Çalışma Sıcaklığı85 C125 CMaksimum Power-Down Akımı IPD ( max )9 µA1 µARC Tip Osilatör İçin Önerilen R Değeri5KΩ – 100KΩ3KΩ – 100KΩSSOP Tipi Paket DesteğiYokMevcutOpen Drain High Voltage (VOD)12V8.5V

Aslında farklılıkların sayısı az.Fakat bu farklar önemli farklar.Bunlardan en önemlisi ise PIC lerin çalışabileceği maksimum hız.PIC 16F84 maksimum 10 MHZ hızında çalışırken, PIC 16F84A 20 MHZ hızında çalışabiliyor.Başka bir değişle, PIC 16F84 bir komutu minimum 400 ns gibi bir sürede işleyebilirken, PIC 16F84A bu süreyi 200 ns gibi bir değere düşürebiliyor.

PIC 16F84A, EEPROM’a daha hızlı (~4mS) yazıp silebilirken, 16F84 ise bu işlemleri daha yavaş (~10mS) gerçekleştiriyor.Siz aynı saat hızında çalıştırsanız bile, EEPROM kullanan programlar 16F84A’da daha hızlı çalışacaktır.

Peki bu sorun yaratır mı?

“Bu” kelimesinden kastım EEPROM ile ilgili olan değil de, bir üstündeki paragrafta analtılanlar. 😀

16F84 için yazılmış programı 16F84A’da aynı hızda çalıştırırsanız bir problem oluşmaz.Fakat, elinizde 20 MHZ hızda çalışan 16F84A programını, 10 MHZ de çalışan 16F84 ‘de çalıştırırsanız hızınız yarıya düşecektir.Eğer program hasas zaman döngüleri ile çalışıyorsa stabil bir çalışma gösteremez.Ama 16F84 daki programı 16F84A da çalıştırmanızda bir sorun oluşturmaz.Tabi aynı hızda çalıştırmak kaydıyla. 🙂

Bir diğer fark ise Soruce akım limiti.PIC 16F84 maksimum 20mA sağlarken, 16F84A 25mA sağlayabiliyor.
16F84′ten 18F84A’ya yükseltmeyi konuştuğumuzda bu problem değil aksine bir avantaj.Eğer 16F84A lık devreye 16F84 takacaksanız ve bir pinden 20mA den fazla akım çekiliyorsa problem oluşabilir.Source ve Sink akımları şunlar oluyor:

PIC genellikle 5V ile beslendiğinden sorun yaratmayacağını düşündüğüm bir farkı, yine de belirtmek isterim.Sonra yorum olarak “PIC yandı.” yazılmasın diye. 😀

16F84 6.0V’a kadar çalışabilirken, 16F84A 5.5V’a kadar çalışabiliyor.PIC 16F84 için dizayn edilmiş ve PIC 6.0V ile besleyen bir devre varsa ve bu devrede 16F84A kullanacaksanız voltajı düşürmeniz gerekiyor.İdeal volt 5.0V olarak kabul edilir.

Görüldüğü gibi PIC 16F84 için yazdığınız program büyük olaslıkla PIC 16F84A ile de çalışacaktır.A serisi bir üst model olduğundan, alt modelde çalışan programı desteklemesi aslında olağan bir durum gibi duruyor. 😀

Yazımızın en başında kesin olarak çalışır diyemeyeceğimizi söylemiştim.Bunu ben değil Microchip söylüyor.Microchip tarafından yazılan ( Bu yazının sonunda indirebileceğiniz bağlantıyı bulabilirsiniz.) ‘PIC16F84 -> PIC16F84A Migration’ adlı dökümanda yazılımsal veya donanımsal problemlerden dolayı PIC 16F84A’da, 16F84 için yazılmış programları çalıştıramayabileceğiniz belirtiliyor.

Ayrıca PIC 16F84′ü programlayan bir programlayıcının, 16F84A programlamadığı durumlar da olabiliyor.Tabi şu anda piyasada dolaşan programlayıcılar yüzlerce çeşit PIC programladığı için o cihazlarda bu problem yok.Bahsettiğim programlayıcılar eski olanlardı. 🙂

Özetlemek gerekirse;

İki cihazın önemli bölümleri ( EEPROM,RAM ve Program Hafızası boyutları ve Adresleri ) aynı olduğundan “Kesinlikle problem yaratır.” diyebileceğimiz bir farklılıkları yok.Fakat, bu iki cihazı birbiri yerine sorunsuzca kullanacağınız anlamına da gelmiyor.Özellikle de PIC 16F84A yerine PIC 16F84 ( Bulabiliyorsanız kullanmayın, saklayın hatıradır.Çünkü üretilmiyorlar. 😀 ) kullanıyorsanız problem oluşma olasılığı diğer duruma yani 16F84 yerine 16F84A kullanmaya göre daha yüksek.Uygulamaların çoğunda bir problem yaşamayacağınızı düşünüyorum.

Fakat, problem yaşarsanız da olağan karşılamanız gerekiyor.Çünkü Microchip bile garanti edemezken, benim “Onların arasında bir fark yok.Tak bir şey olmaz.” demem de çelişkili olurdu.

Tüm farklılıkları ve dikkat edilmesi gerekenleri detaylı bir şekilde incelemek için PIC 16F84A datasheet inin sonlarına ve 16F84′ten 16F84A’ya geçişi anlatan dökümana bakınız.İndirmek için gerekli bağlantıları yazının sonunda bulabilirsiniz.

İnternet ortamında genellikle bu iki cihaza “aynı” denir.Bu yazıyı yazmaktaki amacım, dilimin yani elimin döndüğünce ve bilgilerimin el verdiği ölçüde farkları anlatabilmek ve bu yanlış bilgiyi düzeltmektir.Umarım yazı anlaşılır ve size faydalı olmuştur.Bilgi hatası, yazım hatası ( Dil bilgisi kurallarını doğru kullanmaya çok dikkat ediyorum.), anlatım bozukluğu veya bunlara benzer gözünüze çarpan yerler olursa hemen altta “Hataları bildirmek için tıklayınız.” yazan kısma tıklayıp, iletirseniz çok memnun olurum.

Buraya kadar okuduğunuz için çok teşekkür ederim. 🙂

Eğer bu yazıyı paylaşmaya değer görür ve başka bir sitede paylaşırsanız, lütfen bu sayfaya link veriniz.

Başarılar dilerim…

Yayım tarihi: 2008/07/27 Etiketler: , ,



2 Yorum “PIC16F84 16F84A Entegrelerinin Versiyon Farkları

  1. zafer

    selamlar
    linkte bir problem var galiba bulunamadı diye bir sayfa ile karşılaşıyorum

    CEVAPLA
  2. admin Yazar

    evet bir kaç gündür sorun var umarım kısa sürede düzelir yazıya geçici olarak alternatif link eklendi

    CEVAPLA

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.