Ön bilgi
PICkit 2 MicroChip firmasının üretmiş olduğu bir programlayıcı.
Bu bölümde Pic Kit2 ile ATMEGA yongalarının nasıl programlanabileceği anlatılmıştır.
pk2cmd ve avrdude programının kurulumu
Ubuntu altında PICKit2 kullanarak ATMEGA serisi yongaları programlayabilmek için iki tane yazılım kurmanız gerekebilir. Derleyici yazdığımız programları hex uzantılı dosyalara çeviriyor. Derleyici olarak avrdude programını kullanacağız. Derleyici kurulumu için
$ sudo apt-get install avrdude
yazmamız yeterli.
pk2cmd programı ise oluşturulan hex dosyasını mikro denetleyiciye atarak programlıyor.Şimdi bu programın kurulumuna bakalım.
Bu programı kurduğumuzda /usr/local/bin dizinine kuruyor. Linux çalıştırılabilir dosyaların listesini PATH ortam değişkeni içinde tutuyor. Bu nedenle eğer programı kuracağımız dizin PATH içinde yoksa eklememiz gerekecek.
$ echo $PATH
/home/erdem/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
Eğer ''$PATH'' içinde /usr/local/bin göremiyorsanız bir editörle ev dizinizdeki .profile dosyasını açarak aşağıdaki satırları ekleyin.
$ gedit ~/.profile
export PATH=$PATH:/usr/local/bin
Değişikliklerin etkili olabilmesi için bilgisayarı, ya da oturumu kapatıp tekrar açmamız gerekecek.
pk2cmd programını kaynak kodundan derleyerek kuracağız.İlkönce eğer kurulu değilse libusb-dev kütüphanesini kurmanız gerekebilir.
$ sudo apt-get install libusb-dev
Komut satırından yazılımı indirip açıp kurmak için aşağıdaki komutları verelim.
$ 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/
Bu noktada PIC kit2'yi takıp her şeyin PIC kit2'nin algılandığını teyit etmek için aşağıdaki komutları verebilirsiniz.
$ pk2cmd -?V
Executable Version: 1.20.00
Device File Version: 1.55.00
OS Firmware Version: 2.32.00
Operation Succeeded
Devreyi kuralım

PIC Kit2'yi deneme tahtasına takmak için 6'lı bağlantı uçlarını hafifçe kıvırabilirsiniz. Yeşil üçgene dikkat edin PIC Kit2'nin 1 numaralı ucunu gösteriyor.

Gerekli izinler
Seri port izinlerini vermek için aşağıdaki komutu kullanabilirsiniz.
sudo chmod a+rw /dev/ttyACM0
PIC Kit2 ile Arduino programlama
Linux altında uç birimden, komut satırından Arduino programlarının nasıl derleneceğine bakalım.
Arduino her uygulama için bir dizin oluşturuyor. Biz de ilk isimli bir dizin oluşturalım.
Bu kütüğü arduino.mk ismi ile aynı dizine kaydedelim.
Aynı dizinde Makefile ismi ile bir kütük oluşturup içine şunları girelim.
BOARD := pro.16MHzatmega328
include arduino.mk
Kart olarak Arduino Pro Mini 16 MHz olarak seçtik.
Diğer kartları görmek için make boards yazabilirsiniz.
İlk önce Arduino'nun kurulu olduğu ARDUINODIR dizinini belirtmek gerekiyor.
Eğer bulamazsa
ARDUINODIR is not set correctly; arduino software not found
gibi bir hata verebilir.
Arduino'yu nereye indirdi iseniz bu dizine bir bağ oluşturuyoruz.
$ sudo ln -s /home/erdem/Programlar/arduino-1.8.19 /usr/share/arduino
Bilgisayarı tekrar başlatıp açınız.
Artık ilk örneğimizi yazabiliriz. Aşağıdaki örneği ilk.ino ismi ile kaydediniz.
#include <Arduino.h>
/* İlk uygulama */
int ledCikis = 9;
void setup()
{
// 9 numaralı ucu çıkış olarak ayarla
pinMode(ledCikis, OUTPUT);
}
void loop()
{
digitalWrite(ledCikis, HIGH);
delay(100);
digitalWrite(ledCikis, LOW);
delay(100);
}
Programı derlemek için make komutunu verebilirsiniz.
Make komutunu verdikten sonra dizinde ilk.hex isimli bir kütük oluştu. Oluşan kütüğü mikrodenetleyiciye yüklemek için aşağıdaki komutu verebiliriz.
avrdude -c pickit2 -p m328p -v -V -U flash:w:"ilk.hex":a
Eğer bu komut başarılı oldu ise uygulamanın mikrodenetleyiciye yazıldığına dair bir ileti görebilirsiniz.
Uygulamayı yükledik ama bir şey göremiyoruz.
PICkit 2 kullanarak devreye enerji vermek için aşağıdaki komutu verebiliriz.
pk2cmd -pPIC16F84A -I -R -T
Enerjiyi kesmek için ise aşağıdaki komutu verebiliriz.
pk2cmd -pPIC16F84A
Derlemeyi hızlandırmak
Uzun yoldan ATMega328P yongalarını PICkit 2 ile nasıl programlayacağımızı öğrendik.
Acaba bu işi kısaltabilir miyiz?
Evet.
Make kütükleri tam da bu iş için kullanılıyor.
Oluşturduğumuz make kütüğünü aşağıdaki gibi değiştirip Makefile ismi ile kaydedelim.
KAYNAK := $(shell ls -tp *.ino | cut -f 1 -d '.')
BOARD := pro.16MHzatmega328
include arduino.mk
yükle:
make
avrdude -c pickit2 -p m328p -v -V -U flash:w:"$(KAYNAK).hex":a
make başla
başla:
pk2cmd -pPIC16F84A -I -R -T
dur:
pk2cmd -pPIC16F84A
Artık make yükle yazarak mikro denetleyiciye yazılım yükleyebiliriz.
Eğer make başla yazarsanız sadece devreye güç verir. Eğer make dur yazarsanız beslemeyi keser.
Uygulamanın kaynak kodunu burada bulabilirsiniz.
Çekirdek yükleyebilir mi?
Acaba PICkit2 uçmuş bir yonganın çekirdeğini yükleyebilir mi?
Arduino geliştirme ortamı ile çekirdek yüklediğinizde sadece yazılımı atmakla kalmıyor sigortaları da ayarlıyor.
Elle çekirdek yüklemede bu olmuyor. Bu yüzden yeni bir yonga kullanıyorsanız programlama yarım kalmış oluyor.
1) Arduino geliştirme ortamı ile çekirdeği yükleyin
2) Komut satırından avrdude ile ilk adımda ayarlanan sigorta ayarlarını geri okuyun.
3) Her yeni yongaya çekirdek yükleyip programladığınızda 2. adımda öğrendiğiniz sigorta bitlerini giriniz.
4) Yeni alınmış her yonga aldığınızda 3. adımı tekrar ediniz.
Malzeme listesi
- Pic Kit2 programlayıcı ve kablosu

- Yarım boy deneme kartı

- ATMEGA328P mikro denetleyici

- 10 kΩ Direnç

- 220 Ω Direnç

- 5mm kırmızı led

- 16 Mhz kristal

- 22 pF Sığaç (kondansatör) (2 adet)

- 1×6 Bağlantı Ucu

- Kablo
