PIC kit2 ile PIC programlama
Bu derste PICkit 2 ile nasıl PIC mikro denetleyicilerin programlanabileceği anlatılmıştır.
PIC programlamak için iki tane yazılıma ihtiyacımız olacak.
Derleyici yazdığımız programları hex uzantılı dosyalara çeviriyor. pk2cmd programı ise hex dosyasını mikro denetleyiciye yüklüyor.
pk2cmd programı bir usb kütüphanesine ihtiyaç duyuyor.
sudo apt-get install libusb-dev
sudo pacman -S libusb-compat
komutu ile gerekli kütüphaneyi kurabilirsiniz.
wget http://ww1.microchip.com/downloads/en/DeviceDoc/pk2cmdv1.20LinuxMacSource.tar.gz
tar xf pk2cmdv1.20LinuxMacSource.tar.gz
cd pk2cmdv1.20LinuxMacSource
make linux
sudo make install
sudo cp /usr/share/pk2/PK2DeviceFile.dat /usr/local/bin/
pk2cmd kurulumu için sırasi ile yukarıdaki komutları verebilirsiniz.
Kurulumdan sonra yazılımın doğru çalışıp çalışmadığını sınamak için PICkit 2'yi bilgisayara takınız.
sh -c "pk2cmd /?V"
komutunu veriniz.
Eğer PICkit 2 doğru çalışıyorsa aşağıdakine benzer bir çıktı görebilirsiniz :
Executable Version: 1.20.00
Device File Version: 1.55.00
OS Firmware Version: 2.32.00
Operation Succeeded
Derleyici olarak MicroChip'in kendi derleyicisini buradan indirebilirsiniz.
İndirdikten sonra kurulum programını çalıştırmak için aşağıdaki komutları verebilirsiniz.
cd İndirilenler
chmod +x xc8-v1.36-full-install-linux-installer.run
sudo ./xc8-v1.36-full-install-linux-installer.run
Yukarıdaki komutları verdiğinizde aşağıdaki gibi kurulum yazılımı görsel olarak başlıyor.
Sonraki Next
diyerek devam ediniz.
Bir sonraki adımda, aşağıdaki seçenekleri seçmek bize kolaylık sağlayacak.
Kurulum tamamlana kadar bekleyiniz.
Kurulumdan sonra derleyicinin çalıştırılabilir dizinini PATH
ortam değişkenine eklememiz
kolaylık sağlayacaktır.
Böylece derleyiciyi istediğimiz dizinden çalıştırabileceğiz.
Eğer kabuk olarak zsh
kullanıyorsanız ev dizininizdeki .zshrc
kütüğüne, bash
kullanıyorsanız .bashrc
kütüğüne aşağıdaki satırı ekleyiniz.
export PATH=/opt/microchip/xc8/v1.36/bin:$PATH
Yaptığınız değişken tanımlamalarının hemen etkili olmasını isterseniz eğer zsh kullanıyorsanız
source ~/.zshrc
eğer bash kullanıyorsanız
source ~/.bashrc
komutunu veriniz.
Bu komutları vermezseniz bile, değişken tanımlamaları bilgisayar tekrar açıldığında etkin hale gelecektir.
C derleyicisinin doğru çalışıp çalışmadığını sınamak için picc
komutunu veriniz.
picc
Microchip MPLAB XC8 C Compiler V1.36
Build date: Jan 14 2016
Part Support Version: 1.36
Copyright (C) 2016 Microchip Technology Inc.
(880) invalid number of parameters. Use "PICC --HELP" for help
Kullanacağımız örnek devreyi aşağıda bulabilirsiniz.
Devrenin 14 numaralı ucundan PIC'e güç veriliyor. 5 numaralı ucu da toprağa bağlanıyor.
Mikro denetleyici çalışabilmek için bir saat işaretine ihtiyaç duyuyor.
Örnek devrede saat işareti 15 ve 16 numaralı uçlardan 4 MHz kristal kullanılarak oluşturulmuştur. İki tane 22 pF sığaç ("kondansatör") ile de toprağa bağlanıyor.
4 numaralı uca bağlanmış bas çek düğmeye basıldığında devre sıfırlanıyor ve en baştan başlıyor.
PIC'nin 6 numaralıB0
ucuna 220 ohm direnç ve led bağlanmıştır.
Öncelikle, örnek devreyi deneme kartı ("breadboard") üzerinde kurunuz.
Sağda PIC16F84A mikro denetleyicisinin uç düzeni görülüyor. Uçlar, sol üstten 1, 2, .. şeklinde numaralandırılıyor.
PIC kit'in üzerinde üçgen işareti bulunan 1 numaralı ucunu, 4 numaralı uca bağlıyoruz. Devre şemasında 4 numaralı uca bir sıfırlama düğmesi de bağlandığını görebilirsiniz.
PIC kit'in 2 numaralı ucu ile devreye güç verebilirsiniz. Bu ucu deneme kartında, üzerinde + işareti bulunan en köşedeki deliklere takabilirsiniz. 3 numaralı uç da toprak ucu olduğu için benzer şekilde deneme kartında, üzerinde - işareti bulunan deliklere takılabilir.
Böylece ek bir güç kaynağına ihtiyaç kalmadan PIC kit devreye güç verebilir.
PIC kit'in 4 numaralı veri ucunu, 13 numaralı uca bağlayınız. PIC kit'in 5 numaralı saat ucunu ise 12 numaralı uca bağlayınız.
PIC kit'in 6 numaralı ucu kullanılmıyor.
Öncelikle bir başlık dosyası oluşturacağız. Bu başlık dosyasında, kullanmak istediğimiz saat hızı gibi bilgiler bulunuyor.
#include <htc.h>
#include <pic16f84a.h>
#ifndef _XTAL_FREQ
// Saat pulsunu 4 Mhz olarak ayarlıyoruz
#define _XTAL_FREQ 4000000
#endif
__CONFIG (FOSC_XT & WDTE_OFF & CP_OFF);
Bu kütüğü secenek16f84.h ismi ile kaydediniz.
#include <pic.h>
#include "secenek16f84.h"
int main()
{
TRISB = 0;
for (;;) {
/* PORTB'nin uçlarına bağlı tüm ledleri yak */
PORTB = 0xff;
/* bir saniye bekle */
__delay_ms(1000);
/* tüm ledleri söndür */
PORTB = 0;
__delay_ms(1000);
}
}
Bu kütüğü ilk.c ismi ile kaydediniz.
Yukarıdaki kütük uygulamanın asıl kaynak kodunu oluşturuyor.
Bir saniye aralıklarla ışıkları yakıp söndürüyor.
KAYNAK := $(shell ls -tp *.c | grep -v /$ | head -1)
UYGULAMA := $(basename $(KAYNAK))
DENETLEYICI=\
16F84A \
default:
picc --chip=${DENETLEYICI} ${KAYNAK} -O${UYGULAMA}.hex
pk2cmd -PPIC${DENETLEYICI} -F${UYGULAMA}.hex -M
pk2cmd -pPIC${DENETLEYICI} -I -R -T
dur:
pk2cmd -pPIC${DENETLEYICI}
basla:
pk2cmd -pPIC${DENETLEYICI} -I -R -T
clean temizle:
rm -f *.hxl *.sym *.sdb *.lst *.p1 *.pre *.cof *.as *.rlf *.obj funcli* *~ *.hex *.cmf *.cod *.d
Son olarak bu kütüğü de Makefile ismi ile aynı dizinde kaydediniz.
Bu make kütüğü uygulamayı derlemek için kullanılıyor. Buradaki KAYNAK ile başlayan satır uygulamanın en güncel kaynağını tespit eder.
Diyelim ki ikinci.c isimli yeni bir kütük oluşturdunuz ve kaydettiniz. Eğer make
komutu verirseniz ikinci kütüğü derler. Daha sonra ilk.c kütüğüne bir ekleme yaptınız. Bu sefer ilk kütüğünü derler. Kısacası en son hangi kütük üzerinde değişiklik yaptı iseniz o kütüğü derler.
Böylece bulunduğumuz dizinde ilk.c, Makefile ve secenek16f84.h ismi ile üç tane kütük olması gerekiyor.
Öncelikle PIC kit'i bilgiyarınıza takınız. Kaynak kütüklerin olduğu dizine geliniz.
Uygulamayı derleyip çalıştırmak için make
yazmanız yeterlidir.
Eğer her şey yolunda gitti ise B0 ucundaki ışığın bir saniye aralıklarla yanıp söndüğünü görmeniz gerekir.
Işıkların yanıp sönmesini durdurmak için make dur
yazınız. Uygulamayı derlemeden sadece devreye güç vermek isterseniz make basla
yazınız.
Eğer oluşturulan kütükleri silmek isterseniz make temizle
yazmanız yeterlidir.
Eğer bir hata alırsanız tüm bağlantıların doğru yapılıp yapılmadığını kontrol ediniz.
PIC kit2 'nin 4 ve 5 numaralı programlama uçları ile devre arasındaki iki kabloyu kısaltarak tekrar deneyiniz.
Yorumlar