PIC Entegreleri için Mid Range Pin Ayarlama
PIC Entegreleri, özellikle Mid-Range serisi, düşük güç tüketimi ve yüksek performanslı yapılarıyla popülerdir. Bu yazıda, bu entegrelerde pin ayarlarının nasıl yapılacağını detaylı bir şekilde ele alıyoruz. Yazı boyunca TRIS, ANSEL ve LAT gibi temel kavramları, örneklerle destekleyerek açıklıyoruz.
Mid-range pin ayarlama, pic entegrenin ve programcının hangi koşullarda çalışacağını ve işlem modunu ayarlamamızda işimize oldukça yarıyor, entegremize güç geldiğinde hangi cihazın çalışacağına karar veren mekanizma gibi düşünebiliriz ayrıca bu bilgiler program belleğinin “2007h” bölgesinde bulunur, normal çalışma esnasında buraya erişilemez sadece programlama esnasında buraya müdahele edebiliriz.Yerleştirmesi ICSP programcısı tarafından otomatik olarak atanır,
PIC Entegreleri İçin Pin Yönlendirmesi: Giriş mi Çıkış mı?
PIC mikrodenetleyicilerde her pin ya giriş (input) ya da çıkış (output) olarak çalıştırılabilir. Pin yönlendirmesi, TRIS kaydı kullanılarak yapılır:
- 1: Pin giriş modunda çalışır.
- 0: Pin çıkış modunda çalışır.
Örnek Kod:
TRISA = 0b00000001; // RA0 giriş, diğer tüm RA pinleri çıkış
Analog ve Dijital Seçim
Bazı pinler hem analog hem dijital olarak kullanılabilir. Bu ayar ANSEL veya ADCON1 kaydı üzerinden yapılır.
- 0: Pin analog modda çalışır.
- 1: Pin dijital modda çalışır.
Örnek Kod:
ANSEL = 0x00; // Tüm pinler dijital moda ayarlandı
Çıkış Pinleri için Değer Atama
Çıkış olarak ayarlanan pinlere lojik değer atamak için LATX veya PORTX kullanılır:
- LATX: Çıkış pinlerini kontrol etmek için daha güvenilirdir.
- PORTX: Pin durumlarını okumak için kullanılır.
Örnek Kod:
LATB = 0b00000010; // RB1 lojik 1, diğer pinler lojik 0
Weak Pull-Up Kullanımı
Giriş modunda olan pinler için zayıf çekme direnci (weak pull-up) etkinleştirilerek lojik kararsızlık önlenir. Bunun için OPTION_REG ve WPUX ayarları yapılır.
Örnek Kod:
OPTION_REGbits.nWPUEN = 0; // Weak Pull-Up aktif
WPUB = 0b00000001; // RB0 için Weak Pull-Up aktif
Kesme Ayarları (Interrupt)
Bazı pinlerde kesme (interrupt) özellikleri kullanılarak olay temelli bir sistem oluşturabilirsiniz.
Örnek Kod:
INTCONbits.INTE = 1; // RB0 kesmesini etkinleştir
INTCONbits.GIE = 1; // Global kesmeler aktif
Pratik Bir Örnek: LED Yakma
Bu örnek, bir giriş pininden veri alarak çıkış pinindeki bir LED’i kontrol eder:
#include <xc.h>
#pragma config FOSC = INTRC_NOCLKOUT // Dahili osilatör
#pragma config WDTE = OFF // Watchdog Timer kapalı
#pragma config PWRTE = ON // Power-up Timer açık
#pragma config MCLRE = ON // MCLR pin aktif
void main() {
TRISA = 0b00000001; // RA0 giriş
TRISB = 0b00000000; // Tüm RB pinleri çıkış
ANSEL = 0x00; // Dijital mod
while (1) {
if (PORTAbits.RA0 == 1) { // RA0 lojik 1
LATBbits.LATB0 = 1; // RB0 lojik 1 (LED yanar)
} else {
LATBbits.LATB0 = 0; // RB0 lojik 0 (LED söner)
}
}
}
Bu dizide “mikroC” ve “MPBLAB” uygulamasından ayarları göstereceğiz.
MPBLAB Ayarları
- MikroC‘de Project >> Edit Project ile devam ediyoruz
MPLAB’da bu bilgileri doğrudan kod içinde de değiştirebiliriz yada “Configuration Bits tool” ile de değiştirebiliriz.
- Configure >> Configuration Bits
Pic ‘e Ayarlanan Pinlerin Anlamları
Osilatör Seçme Bitleri
Saat hızını belirlemek için kullandığımız osilatör 8 farklı modda olabilir;
Watchdog Zamanlayıcısı (WDT)
Watchdog. Programda ayarlanan süre sonunda programa reset attırır. “Genelde” PIC’ler Sleep modda iken kullanılır. PIC uyutulur ve içindeki programın belli bir süre sonra tekrar çalışması için WDT reset atar. WDT’nin diğer kullanim amacıda programi koşar halde tutmaktır. Program çalışırken doğru kilit noktalarında bu timerı sıfırlarsanız programin doğru çalıştığından emin olursunuz. Aksi halde donanImsal veya yazilimsal bir eksikden dolayi işlemci takıldıysa, WDT programı resetler, sistem doğru çalışma konumuna geri döner.
POWER UP Zamanlayıcısı (PWRT)
Power up timer(PWRT) sisteme enerji verildiğinide gerilimin hemen VDD seviyesine ulaşamamasından dolayı PICi belli bir süre boyunca (72ms) reset konumunda tutar.Yani bu süre boyunca PICin istenmeyen durumlar oluşturması engellenir.
Brown-OUT Reset (BOR)
PIC in besleme gerilimi düştüğünden istenmeyen durumlardan kaçınmak için kendisine RESET atması olayıdır.
Code & Data Protection
Bu durumlarda ise pic’e ve veri yazma/okuma/işleme gibi etkinlikleri yok saymak için kullanılır
Mid-Range serisi PIC mikrodenetleyicilerde pin ayarları oldukça esnektir ve yukarıdaki adımları doğru şekilde takip ederek projelerinizde istediğiniz sonuçları elde edebilirsiniz. TRIS, ANSEL ve LAT ayarlarını iyi anlamak, stabil ve etkili bir sistem kurmanızda kritik öneme sahiptir.
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.