Bölüm 1’de PIC16F877A Mikrodenetleyicisinin ne olduğu hakkında bahsetmiştik, bu yazımızda ise bellek organizasyonu, besleme uçları ile bağlantıları ve osilatör bağlantısından bahsedeceğiz.
PIC16F877A belleği; Program Belleği, Veri Belleği ve EEPROM data belleği olmak üzere 3 kısımdan oluşmaktadır.
BELLEK ORGANİZASYONU
Program Belleği
Program belleği her biri 2K’lık 4 sayfadan oluşmaktadır. Her sayfa belirli adresleri içerir. Adreslere erişim program sayacı ile sağlanıyor. Program sayacı 13 bit’lik ve 8Kx14 değerinde adresleme kapasitesine sahiptir. 14 sayısı denetleyicilerdeki komut uzunluğu uzunluğudur. Bu sayede 8x1Kb=8x1024bit=8192 kadar program belleği adreslenebilmektedir. Bu denetleyicilerde Reset vektörünün adres 0000h ve kesme vektörünün adresi ise 0004h’tır.
Veri Belleği
Veri belleği kendi içinde, bank adı verilen sayfalara bölünmüştür. Bunların her birinin başında özel fonksiyonlu kaydedici (Special Function RegisterSFR) alanı ve daha sonra da genel amaçlı kaydedici (General Purpose RegistersGPR) alanı bulunur. Özel işlem kaydedicileri mikrodenetleyicinin işletimini kontrol eder. Bu kayıtlar geçicidir. Enerji kesildiğinde veya yapılan değişikliklerde adreslerdeki bilgi silinir veya değişir.
Bazı özel işlem kaydedicileri bir banktan, daha çok bankta yer alır. Bu yöntem, erişimi hızlandırma amaçlı olup, çok kullanılan kaydedicilerin görüntüsü ayna gibi diğer banklara yansıtılmıştır. Böylece bu kaydedicilere erişmek için sık sık bank değiştirilmesi gereği ortadan kaldırılmış ve programlamaya kolaylık sağlamıştır.
Veri belleği haritasında bazı adresler gri olarak boyanmıştır. Bunlar kullanılmayacak olan kaydedicilerdir. Bu adresteki kaydedicilerin değeri her zaman “00h” değerindedir.
Veri belleği olarak kullanılmak üzere, kılıfın içerisinde bir de EEPROM bellek alanı vardır. Bu bellek, diğer veri belleği gibi doğrudan adreslenemez. EEPROM veri belleğine dolaylı erişilir. Toplam 92 byte’tır.
ROM(Salt okunur bellek) : Salt Okunur Bellek (Read Only Memory-ROM) içerisinde bulunan verilerin okunmasına izin veren fakat verilerin değiştirilmesine izin vermeyen bir bellek türüdür.
OTP Rom(One Time Programable Rom) : Bir defa programlanabilen bu tür ROM’lar programlama işinin üretici firma yerine müşteri tarafından yapılmasına olanak sağlar. Özel programlama donanımı ile, programcı kodunu bir defaya mahsus olmak üzere ROM’a yükler.
EPROM : Silinebilir/Programlanabilir ROM (Erasable/Programmable ROM) kullanıcıya ROM’u silip tekrar programlama olanağı sunar.
EEPROM : Elektriksel olarak silinebilir PROM’un (Elecrically-Erasable PROM) kullanımı daha kolaydır çünkü programlama ve silme işlemleri aynı anda ve yavaş bir ultaviole ışığı ile silme süreci olmadan yapılabilir. EPROM ve EEPROM belirli bir programlama kapasitesine sahiptir. Yaklaşık olarak 1000 defa programlama yapılabilmektedir.
BESLEME UÇLARI VE BAĞLANTILARI
Bölüm 1’de B16F877A mikrodenetleyicisinin 8 bitlik, 40 pininden 33 tanesi I/O ( input/output – giriş/çıkış ) pinleri, 6 bitlik A portu, her biri 8 bitlik B,C ve D portları ve 3 bitlik E portu olmak üzere 5 porta sahip olduğunu belirtmiştik.
VDD: Pozitif geri besleme, 11 veya 32 nolu pinlere uygulanır.
VSS: Negatif geri besleme, 12 veya 31 nolu pinlere uygulanır.
OSC1 : Osilator bağlantısı yapılacak olan ayak, 13.
OSC2 : Osilatör bağlantısı yapılacak olan ayak, 14.
Genelde +5V gerilim uygulanır. 2-5.5V arası değişebiliyor. Elektrik uygulandığı anda meydana gelebilecek dalgalanmaları önlemek amacıyla VDD ve VSS arasında 100nF bir kondansatör bağlamak gerekir.
Kristal osilatör projeye göre frekansları seçilir. Dikkat edilmesi gereken yazılımda yapılan ayar ile aynı frekansta seçim yapılması ya da projenin o şekilde ayarlanması gerekmektedir. Ek olarak seçtiğiniz PIC’in en yüksek kaç Hz ile çalıştığına da bakmanız gereklidir. Bölüm 1’de PIC16F877A’nın işlem hızı max. 20 MHz olduğunu yazmıştık yani bir komut 200 ns hızında çalışmaktadır.
Bir sonraki yazımızda görüşmek üzere.
Pingback: PIC16F877A Mikrodenetleyicisi Bölüm 1 – Ferzender VARLİ