Elektronik / Elektronik Kaynakları/

PIC16F84 16F84A Entegrelerinin Versiyon Farkları

Sponsorlu Bağlantılar

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. :D

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.

Özellik PIC 16F84 PIC 16F84A Sadece farklı 35 komutla çalıştırılabilme Mevcut Mevcut Program dallanma komutlarının 2 çevirimde, diğer komutların 1 çevirimde çalıştırılması Mevcut Mevcut “Program Memory” Boyutu 1024 Word 1024 Word RAM Boyutu 68 Byte 68 Byte EEPROM Boyutu 64 Byte 64 Byte Komut Boyutları 14 Bit 14 Bit Veri Saklama Boyutları 8 Bit 8 Bit Özel Donanımsal Yazmaç ( Register ) Sayısı 15 15 Donanım Kümesi ( Hardware Stack) Seviyesi 8 8 Direkt, Dolaylı ve Bağımlı Adresleme Desteği Mevcut Mevcut Harici RB0/INT Kesmesi Mevcut Mevcut TMR0 Taşması Durumunda Kesme Mevcut Mevcut PortB 4-7 Kesmesi Mevcut Mevcut EEPROM Yazımının Bitmesi Sonucu Kesme Mevcut Mevcut Ayarlanabilir Giriş/Çıkış ( I/O ) Pin Sayısı 13 13 Bir Pinin Lojik 0 Olması Durumunda Üzerinden Akabiliecek Maksimum Akım ( Sink ) 25 mA 25 mA 8 Bitlik Bölücü ile Ayarlanabilir 8 Bitlik TMR0 Özelliği Mevcut Mevcut EEPROM Üzerinde Yapılabilecek Maksimum Yazma/Silme Sayısı 10.000.000 10.000.000 EEPROM Üzerinde Bilginin Sağlıklı Bir Şekilde Saklanabileceği Maksimum Süre 40 Yıldan Fazla 40 Yıldan Fazla Devre İçinde Programlanabilme Desteği ( ICSP ) Mevcut Mevcut Power on Reset ( POR ) Mevcut Mevcut Power-up Timer ( PWRT ) Mevcut Mevcut Oscillator Start-up Timer ( OST ) Mevcut Mevcut Dahili RC Osilatör ile Watchdog Timer ( WDT ) Mevcut Mevcut Kod Koruma ( CP ) Mevcut Mevcut Güç Tasarrufu İçin SLEEP Mod Özelliği Mevcut Mevcut Çeşitli Tipte Osilatörler ile Çalışabilme Mevcut Mevcut

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 :D aynı.

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

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

Özellik PIC 16F84 PIC 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 mA 25 mA FLASH Belleğin Maksimum Silme/Yazma Sayısı 1.000 10.000 Çalışma Voltajı Aralığı 2.0V – 6.0V 2.0V – 5.5V Maksimum Çalışma Sıcaklığı 85 C 125 C Maksimum Power-Down Akımı IPD ( max ) 9 µA 1 µA RC Tip Osilatör İçin Önerilen R Değeri 5KΩ – 100KΩ 3KΩ – 100KΩ SSOP Tipi Paket Desteği Yok Mevcut Open Drain High Voltage (VOD) 12V 8.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. :D

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. :D

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. :D

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. :D ) 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…

  • zafer

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

  • admin

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