picprg 2
Kullanım Kılavuzu


PicPrg2 Kullanım Kılavuzu - 041108
Tanju Taşçılar - tanju@elektronist.com
Registered Linux User #283274

PicPrg2 Kullanım Kılavuzu

PicPrg2 Pic programlayıcı sistemi RS232 portundan bilgisayara bağlı olarak kullanılan bir programlayıcı modülü ve bilgisayarda çalışan arabirim programından oluşmaktadır.

Programlama modülü, üzerinde bir adet 40'lı üniversal Zif soket bulunan RJ12 konnektörü ile bilgisayara RS232 bağlantısı ve 17VDC besleme girişi olan elektronik devredir.

Arabirim programı programcının gereksinimleri düşünülerek tasarlanmış, kullanımı kolay bir bilgisayar programıdır.

Bilgisayardaki arabirim programı öncelikle Linux ortamında geliştirilmektedir. Bu nedenle programın daha sonra geliştirilecek olan Windows sürümünde bazı özellikler bulunmayabilir.

pprg2 programı kurulum gerektirmeyen tek dosyadan oluşmaktadır. Linux kullanıcıları programı /user/bin dizinine (kopyalamak için root hakkı gerektirir) veya kendi kullanıcı dizinlerinden birine yerleştirebilirler. Program çalıştığında kullanıcının home dizininde .pprg2.conf dosyasını oluşturup kullanır. Windows için ise pprg2.ini dosyası kullanılır.

Sistemin çalışması için programlama öncelikle modülünün bağlı bulunduğu seri portun belirlenmesi gerekmektedir. Linux için /dev/ttyS0, Windows için Com1 varsayılan ayardır. Port seçini System-Select Port menü girişi ile açılan pencerede yapılır.

Programın kullanımı menü girişleri ve program penceresindeki kontrollar ile yapılır. Kolaylıkla erişilmesi gereken fonksiyonlar pencere üzerindeki kontrollar ile gerçekleştirilirken sık kullanılmayan veya özel durumlarda kullanılan fonksiyonlar menü sistemine yerleştirilmiştir.

Menüler.

Menü sistemi File-Dosya, View-Göster, Action-İşlem, System-Sistem ve About-Bilgi başlıkları altında toplanmıştır.

File-Dosya İşlemleri:

Load- mpasm veya gpasm ile oluşturulan .hex uzantılı dosyaların yüklenmesi için kullanılır. Bu işlemde Program Memory, Data Memory alanlarında seçilen adres başlangıç ve bitişleri ile Targets bölümünden seçilen hedef alanlar kullanılır. Yüklenmek istenen dosyada seçilen hedef alanlarla ilgili bilgi yoksa bilgi olmayan alan bir uyarı mesajı ile belirtilir.

Reload - Program açıldıktan sonra başarılı bir dosya yüklemesi yapıldığında aktif hale gelen bu menü girişi, son yüklenen programın yeniden ismi sorulmadan hızlı bir şekilde yüklenmesini sağlar. Burada Load fonksiyonunda kullanılan başlangıç ve bitiş adresleri ile hedefler eski hali ile değil, kontrolların o anki durumları ile değerlendirilirler.

Save - Seçilen hedef alanlardaki bilgilerin .hex dosyasına yazılması için kullanılır. Başlangıç ve bitiş adresleri yine geçerlidir.

Load Osccal - Osilatör kalibrasyon alanları bulunan Pic'ler seçili iken aktif hale gelir. Bu işlem için önce Osccal-R butonu ile Pic'ten okuma yapılmalıdır.

Save Osccal - Osilatör kalibrasyon alanları bulunan Pic'ler seçili iken aktif hale gelir. İşlem sonucunda eğer kullanılan dosyada kalibrasyon değeri varsa Osccal bölümünde görüntülenir. Aksi halde hata mesajı ile durum bildirilir.

View-Göster Menüsü.

Program Memory - Program hafızasının görüntülendiği pencereyi açar. Program hafızasındaki değerler değiştirilebilir. Değiştirme işlemi yalnızca 16f870x gibi program hafızasını okuyup yazma özelliği olan ve hafızasını data hafızası olarak kullanmaya uygun pic tipleri için önerilir. Program olan yerleri değiştirmeniz beklenmedik sonuçlara yol açabilir. Tüm hafıza alanını belli bir değer ile doldurmak için değer edit alanında yazılarak Fill butonu kullanılır. Change butonu ile üzerine tıklanarak seçilmiş olan adresteki değer değiştirilir.

Data Memory - Data hafızasının görüntülendiği pencereyi açar. Data hafızası olmayan Pic'lere aktif değildir. Bu penceredeki bilgiler edit edilebilir. Değiştirilecek adres alanı üzerine tıklanarak seçilir. Change butonu yalnızca seçili adreste değişiklik yaparken Fill butonu bütün hafızayı edit alanındaki değerle doldurur.

Action - İşlem Menüsü.

Erase Flash - Flash hafızalı Pic'lerde aktiftir. Kod korumasını açan işlemi uygular. Bu işlem sonucunda kod koruması aktif olsun ya da olmasın bütün alanlar silinir. Geri dönüşümü olmayan bir işlem olduğu için önce bir uyarı-onay penceresi açılır. Bazı Pic türlerinde (16f630 gibi) silme işlemi fabrika ayarları yapılmış alanları da sileceği için önce bu alanların okunup kaydedilmesi ve silme işleminden sonra da yeniden yazılması gerekmektedir. Bu alanlara fabrika ayarları dışında bir değer yazmanın mümkün olabilmesi için ek bir seçenekler penceresi görüntülenir. Değiştirmek istediğiniz ayarlar ile ilgili işaret kutusunu boşaltarak işlemi yaptıktan sonra istediğiniz değeri yazabilirsiniz.

Write Config (Test) - Bu fonksiyon özel durumlar için kullanılabilir. Normal olarak konfigürasyon değeri kaydedilmeden önce kontrollardaki değerlerden oluşturulur ve bu nedenle bu işlemin kullanılmasına gerek yoktur. Özel durumlarda kontrollar kullanılmadan Configuration Word alanında girdiğiniz değerin olduğu gibi yazılmasını istiyorsanız bu fonksiyonu kullanabilirsiniz. Bu işlemin sonucunda yanlış bir değer yazdıysanız işlemci kullanılmaz hale gelebilir.

Protect All - Bu fonksiyon bütün alanlar için kod korumasını aktif hale getirir. Buradaki işlem Okuma-Değiştirme-Yazma işlemidir. İlk adımda konfigürasyon değeri okunur. Tam korumayı aktif hale getiren bitler değiştirilir ve elde edilen sonuç yazılır. İşlem sonucunda kontrollar değişikliği belirtir hale gelir. Burada koruma bitlerinin değişikliği kullanılan işlemcinin türüne göre yapılacağı için Device alanında doğru seçim yapılmış olmalıdır. Aksi halde işlemci kullanılmaz hale gelebilir.

System Menüsü.

Select Port - Port seçimi için kullanılır. Sistemin çalışabilmesi için programlama devresinin bağlı olduğu seri portun seçiminin doğru yapılması gereklidir. Seçim sonucu kaydedildiği için her seferinde seçim yapılması gerekmez.

Init Port - Kullanılan seri portun sıfırlanmasını sağlar. Eğer programlama devresini programı açtıktan sonra çalıştırdıysanız veya bir hata oluşmuşsa bilgisayar ile devre arasında haberleşme doğru olarak yapılamayabilir. Bu durumda bu fonksiyon kullanılarak iletişimin yeniden başlatılması sağlanır. Ayrıca Release Port işlemi ile başka cihazların kullanımına bırakılmış olan portun tekrar kontrolunu almak için de kullanılır.

Release Port - Bu işlem programlayıcı için kullanılmakta olan portun başka cihazlar için kullanılmasına olanak vermek için serbest bırakılmasını sağlar. Kullanıma devam edebilmek için Init Port fonksiyonunun kullanılması gereklidir.

Kontrol Alanları.

Program penceresinde bulunan bloklara kontrol alanları diyoruz. Bu alanlar Device, Protection, Configuration Options, Oscillator, Program Memory (Addresses), Data Memory (Addresses), Configuration Word, ID Code, Osccal, Targets, To Do ve butonların bulunduğu alanlardır.

Device (Pic Tipi) - Kullanılacak olan Pic türünün belirlendiği alandır. Aşağı inen menü aracılığı ile tür seçimi yapılır. Ayrıca kullanacağınız programlama yeri için de Zif veya ICSP seçeneklerinden birini seçmeniz gerekir. Programlayıcıda kullanılan Zif soket ile farklı bacak sayısına salip bütün Pic'ler kullanılır. Bütün Pic'lerin 1 numaralı sol üste gelen bacaklarının zif soketin 1 numarasına getirilmesi gereklidir. Yanlış yerleştirme kullanılan işlemcinin veya programlama cihazının arızalanmasına neden olabilir. Devre üzerine programlanmadan monte edilmiş olan Pic'lerin programlanması için ICSP konnektörü kullanılabilir. Bu durumda ICSP kutusunun seçilmesi gereklidir. ICSP tipi programlamanın kullanılabilmesi için devrede buna özgü önlemlerin alınması gerekmektedir. Bunun için Microchip'in ilgili dökümanının okunması gereklidir.

Protection (Kod Koruma) - Bu alan kod koruma bilgisinin görüntülendiği veya girildiği alandır. Kullanılan Pic tipine bağlı olarak değişik değerler alabilir. Program dosyasında Configurasyon Word'ü ile ilgili kayıt bulunuyorsa ve hedef olarak seçilmişse dosya yükleme sırasında otomatik olarak değişir. Farklı bir seçim için aşağı kayan menü kullanılabilir. Write Config (Test) menü fonksiyonu dışında bütün konfigürasyon yazma işlemlerinden önce Configuration Word oluşturulurken buradaki değer kullanılır.

Configuration Options - Configurasyon Word'ü içinde bulunan özel anlamlı bitlere karşılık gelen özellikler burada görüntülenir ve değiştirilir. Kullanılan Pic türüne bağlı olarak gerekli olanlar aktif durumdadır.

Oscillator - Programlanacak olan Pic'in osilatör tipi burada görüntülenir veya değiştirilir.

Program Memory (Addresses) - Bu alanda bütün işlemlerde kullanılmak üzere program hafızasının başlangıç ve bitiş adresleri belirlenir. Pic türü ilk seçildiğinde başlangıç adresi 0 bitiş adresi seçilen Pic'in maksimum adresi olacak şekilde ayarlanır. Başlangıç adresinin bitiş adresinden küçük veya eşit alması gereklidir. Aksi halde işlem başında hata mesajı alınır. Seçilen adresler işleme dahildir. Tek bir adres üzerinde işlem yapmak için başlangıç ve bitiş adreslerini aynı adrese ayarlamamız gerekir. Max butonu başlangıç adresini 0'a bitiş adresini de maksimum adrese getirir. İstisnai olarak Osccal özelliği bulunan Pic'lerde maksimum adresin bir eksiği kullanılır. Bunun nedeni özellikle otp veya flash türlerinde bu değerin fabrikada belirlenmiş ve değiştirilmemesi gereken bir değer olduğudur.

Data Memory (Addresses) - Data hafızası bulunan Pic tiplerinde aktif haldedir. Bütün işlemlerde kullanılmak üzere Data hafızasının başlangıç ve bitiş adresinin belirlenmesinde kullanılır. Detaylar program hafızasındaki gibidir.

Her iki alan için From File seçeneği kullanıldığında dosyadan yükleme yapılırken End adresleri dosya içeriğine göre belirlenir.

Configuration Word, ID Code, Osccal - Programlanacak Pic'lerin üç özel alanı ile ilgili bilgiler burada görüntülenir veya değiştirilebilir. W (Write-Yaz) butonları ile alanlardaki değer Pic'e kaydedilir. R (Read-Oku) butonları ile Pic'ten okunan bilgi alanlarda görüntülenir. Configurasyon Word alanındaki B (Build - Oluştur) butonu ile Configuration Word, Protection ve Oscillator alanlarındaki değerlerden Configuration Word oluşturulur. E (Expad - Aç) butonu ile Configurasyon Word'ündeki değerlere göre kontrollar değiştirilir. Osccal bölümünde görüntülenen değer Pic türüne bağlı olarak RETLW xx veya MOVLW xx komutlarına veya bu komutlardan dönüşüm yapılarak kullanılır. Okuma yapıldığında xx değeri Osccal editöründe görüntülenirken komutlu değeri genellikle program hafızasının son adresi olan yerine yerleştirilir.

İşlem Alanları.

Programlayıcının işlemleri Targets alanında seçilen hedefler üzerinde To Do alanında seçilen işlemlerin Start tuşuna basılması ile başlar. Birden fazla alan ve birden fazla iş seçilebilir. Birden fazla hedef veya işlem seçildiğinde işlemler arasında bilgi mesajlarının görüntülenmemesi için Silent Mode kutusunun işaretlenmesi gerekir. Bu durumda yalnızca hata olduğunda mesaj görüntülenecektir. Bütün işlemler başarıyla sonuçlanırsa en sonunda durum bildirilecektir.

Seçilen hedef alanlar üzerinde yapılacak işlemler Program Memory, Data Memory (Varsa), ID Code ve Configuration Word sıralaması ile gerçekleştirilir. Bu sıralamada bir istisna Protect iş kutusunun işaretli olmasıdır.

Read işlemi seçildiğinde diğer kutuların işareti kalkar. Veya diğer kutulardan birinin seçilmesi Read işini iptal eder. To Do iş seçimleri bölümünün bu şekilde düzenlemesi kullanıcıyı yormamak içindir. Burada asıl amaç yazma işleminin bir toplu iş olarak yapılmasını kolaylaştırmaktır. Boş bir entegre programlanırken önce Blank Check ile entegreye daha önce kayıt yapılıp yapılmadığı test edilir. Ardından programlanır. Sonra da doğruluğu sınanır. Burada özel durum oluşturan kod korumanın aktif olmasıdır. Bu nedenle Protect işlemi en son gerçekleştirilir. Aksi halde Verify işlemi her durumda başarısız olurdu.

Eğer Protect kutusu seçilmiş ise Write ve Verify aşamasında konfigürasyon değeri ile ilgili bir işlem yapılmaz. Bütün işlemlerin sonunda konfigürasyon değeri kod koruma aktifleştirilerek kaydedilir. Bazı Pic türlerinde kod koruma kademeli olabilir. Bu durumda eğer Protection seçim alanında None dışında bir seçim varsa konfigürasyon değerinde koruma bölümünde bir değişiklik yapılmaz. Eğer None varsa tamamını koruma işlemi uygulanır.

16f87xA tiplerinde programlama yöntemindeki değişikliklerden dolayı programlama işlemi sırasında verify yapılamamaktadır. Bu nedenle de programlama işlemi tamamen bittikten sonra verify işleminin de yapılması için ToDo bölümünde write seçimi yapıldığında otomatik olarak verify işlemi de aktif hale gelir. Bu işlemin yapılması tavsiye edilir ancak eğer isterseniz verify kutusunu boşaltarak yalnızca write işlemini yapabilirsiniz. Ayrıca program hafızasına yazma işlemi için adres alanlarının ayarlanması gerekmektedir. Bu nedenle gerekli uyarı mesajı çıkar.

Adım Adım Uygulama.

Programlama modülü RS232 ve adaptör bağlantıları yapılır. Program ilk defa çalıştırıldığında seri port ayarı yapılmalıdır.

Kullanılacak Pic türü Device bölümünden seçilir.

Programınıza ait .hex dosyasını yüklemek için önce Targets bölümünden istediğiniz hedef alanları seçmeniz gerekir. Dosya yükleme ve kaydetmede bu seçim gereklidir.

To Do toplu iş seçme alanında istenilen seçim veya seçimler yapılır.

Programlanacak entegre 1 numaralı bacağı Zif soketin 1 numarasına gelecek şekilde yerleştirilir veya ICSP bağlantısı yapılır.

Seçtiğiniz işlem veya toplu iş Start butonuna basılarak başlatılır.

Bağlantılar.

Programlama modülü RS232 kablosu (Veriliyor) ile bilgisayarın RS232 portuna bağlanır. Besleme için 17VDC-100mA gereklidir (Verilmiyor). Bunun için bir 12V adaptör kullanılabilir. Ancak bunun regülatörsüz tipte olması gereklidir. Piyasada bulunan adaptörlerin çoğu bu şekildedir ve boşta 18V civarında bir gerilim verirler.

Ledler.

Programlama modülü üzerinde iki led bulunur. Busy ledi entegre üzerinde işlem yapıldığını belirtir. Busy ledi yanarken zif sokete veya ICSP soketine entegre takılmamalı veya çıkarılmamalıdır. On ledi normal olarak ve herhangi bir işlem yapılmazken kartın beslemesi olduğunda tam yanar. İşlem sırasında farklı şekillerde yanıp söner veya parlaklığı değişebilir.

Seri Port Ayarı.

Cihaz herhangi bir seri porta (RS232) bağlanabilir. Linux'ta seri portlar genellikle /dev/ttySx olarak adlandırılırlar. Ayar için System-Select Port menü girişi kullanılır. Açılan pencerede gerekli değişikliği yaptıktan sonra Ok tuşuna basıldığında port test edilir sonuç başarısız olursa hata mesajı belirir. Başarılı durumda yeni port adı kaydedilir ve daha sonraki kullanımlarda değişiklik yapılmasına gerek kalmaz.

Bilgisayar üreticilerinin yeni (ve yanlış) bir eğilimi olarak RS232 portu olmayabiliyor. Bu durumda USB-RS232 dönüştürücüsü kullanabilirsiniz. Mandrake Linux'ta bu adaptörler /dev/usb/tts/0 ile başlayarak tanınıyor. Ancak bu cihaz ile devfs kullanılmadan çalışmak için root hakkı gerekiyor. Bu durumda kullanma izniniz olan bir link oluşturmanız gerekiyor. Root olarak

ln -s /dev/usb/tts/0 /dev/comUSB0
chmod  777 /dev/comUSB0

komutları ile /dev/usb/tts/0 olan gerçek aygıta /dev/comUSB0 adında bir link oluşturarak ve System-Select Port penceresinde /dev/comUSB0 yazarak USB-RS232 adaptörünü kullanabilirsiniz. comUSB0 yerine kendi istediğiniz bir ismi de verebilirsiniz.

Pencereli Pic'ler.

Program alanı Flash olmayan 'c' tipi piclerin geliştirmesinde UV ile silinebilen pencereli olanlar kullanılır. Bunları kullanırken kod korumayı aktif hale getirmemek gerekiyor. Aksi halde eğer şansınız varsa uzun süreli UV ile silinebiliyor.

Osccal değeri bulunan piclerin pencereli türleri fabrikada ayarlanmış olarak satılıyor. Bu tür bir pic silindiğinde Osccal değeri de silineceği için ilk iş olarak Osccal değerini bir dosyaya kaydetmek gereklidir. Osccal değerini dosyaya kaydetmek için önce Osccal bölümündeki 'R' butonu ile Osccal değeri okunur. Sonra File-Save Osccal menü girişi ile dosyaya kaydedilir. Kaydedilmiş değeri yüklemek için File-Load Osccal girişini kullanmak yeterlidir.


Program Lazarus ile yazılmıştır.



Elektronist - Programlayıcılar
PicPrg2 Kullanım Kılavuzu


Bu ve ilişkilendirilmiş yazılar GPL lisansına göre yayınlanmaktadır. Bütün hakları yazarına aittir. Yazarının ismi belirtilerek serbestçe dağıtılabilir ve kullanılabilir. Ancak bunların hiçbiri, hiçbir şekilde ve şartta GPL lisansı haricinde kullanılamaz. Burada yer alanları bulundurmaktan, kullanmaktan veya alıntı yapmaktan dolayı hiçbir sunucu, servis veya protokol, yazı veya içeriği üzerinde hak iddia edemez. info@elektronist.com