PIC Mimarisi – Mikroişlemci Özellikleri

PIC16F84 mikrodenetleyicisinde sistemin düzgün ve kararlı çalışması için işlemciyle alakalı bazı özellikler mikrodenetleyicinin içerisine eklenmiştir. Bu özellikleri madde madde sıralarsak şöyledir.

  • Osilatör Seçimi
  • RESET
  • Kesmeler
  • Bekçi Zamanlayıcısı (WDT)
  • Uyku (SLEEP)
  • Kod Koruma
  • Kimlik Bilgisi
  • Devre üzerinde seri programlama (ICSP)

Bu özellikler çok zengin sayılmasa da basit ve eski bir mikrodenetleyici için idare eder özelliklerdir. En temel olması gereken özelliklerin bulunduğunu görüyoruz. Bu özelliklerden bazılarını ayarlamak için konfigürasyon bitleri adı verilen ve program hafızasının 0x2007 adresinde bulunan bir bellek bölümü vardır. Buradan kod koruma, açılış zamanlayıcısı, WDT zamanlayıcısı ve osilatör seçimi hakkında ayarlar yapılmaktadır. Bu konfigürasyon bitlerini aşağıda görmekteyiz.

Bu konfigürasyon ayarlarının programlayıcı yazılım vasıtasıyla da yapıldığını belirtelim. İstersek programda da bu konfigürasyonu yapabiliriz. Yalnız bu ön ayarlar mikrodenetleyicinin çalışmasında kritik rol alabildiğinden gözden kaçırılmaması gereklidir. Örneğin WDT kazara açık kalırsa mikrodenetleyici kendini sürekli resetleyecek ve biz bu hatayı kolay kolay fark edemeyeceğiz. Aynı şekilde osilatör seçimini düzgün yapmazsak program düzgün çalışmayacak. Bu yüzden bu ayarları göz önünde bulundurmamız gereklidir.

Saat Ayarı

PIC mikrodenetleyicilerde aşağıdaki osilatör tiplerinden birini kullanabiliriz. Yalnız hangi osilatörü kullanıyorsak ona göre doğru ayarı yapmamız gereklidir.

  • LP : Düşük Güçlü Kristal
  • XT : Kristal/Rezonatör
  • HS : Yüksek Hızlı Krisal/Rezonatör
  • RC : Direnç ve Kondansatör

Burada örnek bir kristal devresi verilmiştir. Mikrodenetleyiciyi çalıştırmak için iki adet kondansatör ve bir adet kristale ihtiyacımız olacaktır.

Burada C1 ve C2 adlı kondansatörlerin değeri şu tabloya göre belirlenmelidir.

Bu tabloda 15-33pF arası olsa da pratikte genellikle 22pF seramik kondansatörler kullanılmaktadır. Maliyeti iyice düşürmek için bir direnç ve kondansatörle RC osilatör devresi kurmamız da mümkündür. Fakat bu osilatörün isabetliliği düşük olacağı için tavsiye edilmez.

Reset

Mikrodenetleyicinin RESET birimi mikrodenetleyiciyi farklı durumlarda yeniden başlatır. Bunlar şu şekildedir.

  • Açılış Reseti (POR)
  • MCLR Reseti
  • MCLR Uyku Esnasında Reseti
  • WDT Reseti
  • Uykuda WDT Reseti

Açılış resetinde mikrodenetleyiciye güç verildiğinde ve bu güç mikrodenetleyiciyi çalıştıracak seviyeye çıktığında reset gerçekleşir. Açılış zamanlayıcısı açılış resetini güç verildikten sonra 72 ms kadar geciktirir. Böylece stabil güç alınana kadar beklenmiş olunur. Osilatör başlama zamanlayıcısı ise 1024 osilatör çevirimi kadar bekleme yapmaktadır. Bu açılışta durağanlığı sağlamak içindir. Eğer besleme gerilimi çok yavaş artıyorsa bu zamanlayıcıların zaman aşımında bulunması söz konusudur. Bunun için aşağıdaki gibi bir devre kurulur.

Normal durumda ise MCLR ayağı pull-up direnci ile beslemeye bağlanmalı ve isteniyorsa şaseye bağlayan bir düğme eklenmelidir. Reset ayağı boş bırakılmamalıdır. Datasheette geriye az bir kısım kalsa da onu okumayı da size bırakıyoruz. Devamında zamanlama grafikleri ve elektrik karakteristikleri yer almakta ve en sonunda ise kılıfla ilgili bilgiler yer almaktadır. Bizim gerektiğinde bakacağımız noktalar olmaktadır. Buraya kadar öğrendiğimiz bilgilerle hem PIC mimarisini hem mikrodenetleyici mimarisini hem de datasheet okumayı öğrendik.

Bizi Facebook grubumuzda takip etmeyi unutmayın. Bilgili ve öğrenmeye hevesli bir topluluk oluşturmak istiyoruz.

https://www.facebook.com/groups/1233336523490761/

UYARI!!

 

Gökhan Dökmetaş

"Arduino Eğitim Kitabı" ve "Arduino ve Raspberry PI ile Nesnelerin İnterneti" kitaplarının yazarı. Başkent Teknoloji ve Dedektör Merkezi'nde Ar-ge Sorumlusu. Araştırmacı-Yazar.

You may also like...

Bir cevap yazın

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