PIC kit2 ile PIC programlama

PIC kit2 ile PIC programlama

Giriş

Bu derste PICkit 2 ile nasıl PIC mikro denetleyicilerin programlanabileceği anlatılmıştır.

Gerekli yazılımlar

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.

Ön gereklilikler

pk2cmd programı bir usb kütüphanesine ihtiyaç duyuyor.

Ubuntu

sudo apt-get install libusb-dev

Arch Linux

sudo pacman -S libusb-compat

komutu ile gerekli kütüphaneyi kurabilirsiniz.

pk2cmd kurulumu

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

C derleyicisi kurulumu

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.

PICC kurulumu

Sonraki Next diyerek devam ediniz.

Bir sonraki adımda, aşağıdaki seçenekleri seçmek bize kolaylık sağlayacak.

PICC kurulumu

Kurulum tamamlana kadar bekleyiniz.

PICC kurulumu

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

Örnek devre

Kullanacağımız örnek devreyi aşağıda bulabilirsiniz.

PIC örnek devre

Örnek devrenin açıklaması

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.

Devre üzerinde seri programlama

Öncelikle, örnek devreyi deneme kartı ("breadboard") üzerinde kurunuz.

Devre üzerinde seri programlama

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.

İlk uygulama

Ö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.

Uygulamayı derleyelim ve çalıştıralım

Ö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.

Sorun giderme

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.

Malzeme listesi

  • Pic Kit2 programlayıcı ve kablosu
  • Yarım boy deneme kartı
  • PIC16F84A mikro denetleyici
  • 1 kΩ Direnç
  • 220 Ω Direnç
  • 5mm kırmızı led
  • 4 Mhz kristal
  • 22 pF Sığaç (kondansatör) (2 adet)
  • 1×6 Bağlantı Ucu
  • Bas çek düğme
  • Kablo

Yorumlar

yorum yaz

Yorum yaz

Henüz yorum yok.