avatar_ete

Başlangıç

Başlatan ete, 28 Ağustos 2011, 16:51:01

ete

İlk defa pic ile uğraşacaklar ve sitemizi takip edecekler için tavsiyelerimiz olacaktır.

Bunlar sırası ile;


Öncelikle kullandığınız bilgisayarda , ihtiyacınız olan programları yazabilmeniz için bir editör programına ihtiyacınız olacaktır. Bu konuda ücretsiz olan Micro Code Studio programını önermekteyiz. Bu programı yayınlayan firmanın kendi sitesinden indirebilirsiniz. Bunun için aşağıdaki linki deneyiniz;

http://www.mecanique.co.uk/software/mcsinstall.exeBu bir editör programıdır.

Yalnızca programları yazmanıza yardımcı olur. Yazım işlemi bittikten sonra onları derlemenize de yardımcı olacaktır.

Tabiiki yalnızca editör programı ile bir şey yapmanız mümkün değildir. Yanında birde Basic derleyicisine ihtiyacınız bulunmaktadır. Başlangıç için satır ya da komut sınırlaması bulunan derleyiciyi (Demo Versiyonu) aşağıdaki linkten indirebilirsiniz.

http://melabs.com/pbpdemo.htm

Beğendiğiniz taktirde satın alabilir ve tam sürümüne sahip olabilirsiniz. Derleyiciyi kurarken C:\ ana dizinine kurmaya özen gösteriniz. Aksi taktirde derleme esnasında dosya adı ile bilikte path denilen dosya yolu için toplam 62 karekterlik sınırın aşılması ile hata mesajları alırsınız.


Yukarıda açıklanan iki programla artık basic de program yazabilecek hale gelirsiniz. Tabiiki derleme yapabilmeniz için Micro Code Studio (MCS) nin ayarlanmasıda gerkecektir. Bunun için View menüsünü açın ve "Compile & Program Options" seçeneğini seçin. İlk pencerede "Compiler" butonunu göreceksiniz onu seçin ve altında yer alan "Find Automatically" yani Otomatik Bul , Ya da yanında yer alan "Find Manually" yani manual olarak bul seçeneklerinden birisini seçip sonuçta "C" ana klasörüne kayıt ettiğiniz derleyicinin yerini gösterin.



MCS konusunda daha fazla bilgi vermeye gerek yok sanırım. Sorun yaşayanların mesaj atarak sorularını dile getirmelerini bekliyoruz.


Burada derleme ne anlama geliyor o konuda da biraz açıklama vermekte fayda görüyoruz. Pic işlemcileri genel olarak üretici firması tarafından belirlenen komutlarla çalışırlar. Söz konusu komutlar normal olarak Makine dili dediğimiz Assembly dilinde kullanılacak şekilde belirlenmişlerdir. Her bir komutun bir rakam karşılığı bulunur ve yazılan program assembler derleyicisi ile tamamen rakamlara dönüştürülür. Rakam olarak da Hexadesimal sayı sistemi (16 tabanlı sayı sistemi) kullanılır. Genelde bu rakamlara dönüştürülmüş haline Hex kodu da denilmektedir.


Assembly ile program yazmak çok zordur. Kodları hatırlamak ve her birinin kısıtlı kullanım şekillerini uygulamak özellikle yeni başlayanlar için gerçekten zordur. Zamanla bu dilede aşina olabilirsiniz ama bu işi uzun vadede düşünmek gerekir.


Basic dili bu zorluğu ortadan kaldırmak için yaratılmıştır. Komutları daha anlaşılır hale getirmek ve sonuçta anlaşılır kodlarla program yazıp sonra onu makine diline çevirmek işe hız katmaktadır. İşte bu işlemede derleme diyoruz. Kısaca derleyiciler anlayacağınız dilde yazdığınız programı Pic in anlayacağı makine diline cevirip size Hex kodunu vermektedirler.


Programlar çalıştırmak için yazılırlar. Herkes mutlaka yazdığı programın nasıl çalıştığını görmek ister. Bu iş için 3 yol kullanılır.Birincisi bir benzetim (simulasyon) programı kullanılarak devre bilgisayarda oluşturulur ve elde edilen Hex kodu benzetim devresinde yer alan işlemciye yüklenerek devre sanal ortamda çalıştırılabilir. Her ne kadar gerçek hızlarda çalışmasalarda benzetim programları kullanıcılara büyük ölçüde yardımcı olurlar.


Bu programların en güzellerinden biriside Labcenter firmasının üretimi olan Proteus programıdır.İkinci Deneme Metodu ise bir deney boardı kullanmaktır. Üzerinde bir çok pin deliği bulanan deney boardları kolaylıkla gerçek malzemeleri yerleştirebileceğiniz bir ortamdır. Bağlantılarıda birer kablo kullanarak kısa zamanda yapabileceğini bu sistem üzerinde devrenizi kurup kısa zamanda çalıştırabilirsiniz.



Son metod ise tabiiki devrenin birebir baskılı devresini yapmak ya da bir delikli plakaya malzemeleri yerleştirerek devreyi oluşturmaktır. Biraz daha zahmetli bir yöntem olmasına rağmen sıklıkla kullanılır.



Son olarak programlama da uyulması gereken bazı kuralları belirttikten sonra devrelerin çalıştırılması için gerekli olmazsa olmazları sıralamak istiyorum.



Her mikro denetleyici farklı özelliklere sahiptir. Bu özellikler genelde işlemciye ait data sheetlerden öğrenilmektedir. Bu nedenle data sheet okumayı alışkanlık haline getirmeniz gerekiyor. Lisan bilmesenizde özellikler kısmına göz atmayı ihmal etmeyin. Genel yazı formatı içinde o işlemcinin ne gibi özellikleri olduğunuda kolaylıkla anlayabilirsiniz.



Her işlemcinin belirli sigorta ayarları vardım. Bu ayarları mutlaka programın en başına yerleştirmeyi ihmal etmeyiniz.

İşlemcilerin pek çoğunda default (ön tanımlı) olarak ayarlanmış özellikleri bulunur. Bunların başında A portunun analog Ya da Komparatör özelliklerinin olması gelir. Söz konusu pinlerin digital giriş çıkış olarak kullanılabilmesi için mutlaka programın başında bu pinleri için gerekli komut verilmelidir.   


Programlarınızın baş kısmına mutlaka çalışma frekansını Ya da kristal frekansını veriniz. Define OSC 4 , ya da Define OSC 10 şeklinde verilen bu komutu programın başına sigorta ayarlarından sonraki satıra yerleştiriniz. Pek çok basic komutu zaman bazlı çalışır. Bu komutu verirseniz derleyici o komutları OSC frekansına göre ayarlar. Değilse default değeri esas alır. Buna dikkat edilmesi gerekiyor.

Son olarak devrelerin çalıştırılmasında dikkat edilmesi gerekenleri belirtmek istiyorum.
Pek çok foruma bakarsanız simulasyonda çalışan ama gerçekte çalışmayan programlardan bahsedildiğini görürsünüz. Tabiiki bunların sebepleri vardır.

Simulasyon programlarının bazı varsayımları vardır. Nedir bunlar derseniz;

Devreye besleme voltajı bağlı olduğunu varsayarlar. Dolayısıyla gerçek devrede uygun bir besleme voltajınız yok ise devreniz çalışmayacak ancak simulasyonda çalışacaktır.


Pic ler özel bir durum yok ise genelde 5V ile çalışırlar. Voltajın fazla olması pici n bozulmasına sebep olabilir. Bu nedenle en azından bir voltaj regülatörü (7805) kullanılması devrenin selameti bakımından zorunludur. 7805 regülatör kullanılan devrelerde en fazla 100-200 ma akım çekilebilir. Regülatör 1000 ma akıma dayanacak şekilde üretilmesine rağmen besleme giriş voltajın yüksek olması ve 200 ma den fazla akım çekilmesi regülatörün aşırı ısınmasına sebep olur ve sonuçta bozulmaya kadar gidebilir bu durum. Yapılan büyük hatalardan biriside devrede yer alan ışık lamba vs gibi akım çeken elemanların beslemesinide 7805 üzerinden yapılmasıdır. Bu şekilde besleme yapmamaya özen gösterin ve bu gibi akım çeken elemanları direk trafo voltajından beslemeye çalışın. Bunun için akım sınırlama direnci kullanmayada özen gösterin.


İllaki regülatörden besleme yapmanız gerekiyor ise LM2575 Ya da LM2576 gibi anahtarlamalı regülatörler kullanın.


Simulasyon programları, işlemcilere kristal ya da rezonatör bağlanmış kabul ederler. Bunları bağlamasanızda devreyi çalıştırırlar. Halbuki gerçek devrenizde bu elemanları bağlamanız Ya da programda dahili osilatör seçeneklerinden birini seçmiş olmanız gerekir. Bu nedenle devrelerinizin kristal Ya da rezonatör bağlantılarını kontrol etmelisiniz.


Her pic in bir MCLR denilen reset bacağı bulunmaktadır. Pic in çalışabilmesi için bu bacağın HIGH olması gerekiyor. Bu nedenle söz konusu bacak bir dirençle (1K-10K arası) +5V ta bağlanır. Simulasyon programları bunuda bağlı kabul edebilir. Bu nedenle bu bağlantını yapıldığından emin olmanız gerekiyor. Bazı pic lerde söz konusu bacak iptal edilerek MCLR özelliği kaldırılabilir. Böylece söz konusu pin yalnızca bir giriş pini olarak kullanılabilir. MCLR pinleri çıkış olarak kullanılamazlar bunu unutmayın.


Bu özellik yalnızca bazı piclerde vardır. Mesela 12F675 – 16F628 – 16F88 gibi.


Gerçek devrlerde besleme voltajının stabil olması gerekir. Voltajdaki iniş ve çıkışlar ile bir takım parazitler sürekli olarak picin restelenmesine yol açar. Bu hususa dikkat etmek ve besleme devresine özen göstermek gerekir.


Ayrıca pic in besleme bacaklarına en yakın bir yerde 100nf kondansatör bağlanması hayat kurtaran bir tedbir olarak akılda tutulmalıdır. Bu kondansatör yalnızca bir filtre görevi görmez ve CMOS çalışan pic pinlerinde yer alan Cmos transistörlerin doğru çalışmasına yardımcı olur.


Besleme devrelerinde genelde 5V un en azından 3 V üzerinde bir giriş voltajı seçmeye çalışmalısınız. Bu sizin regülatörünüzün boşuna ısınmasını engeller. Besleme katında yeterince filtre kondansatörü kullanmaya özen gösterin.


Pic 5V ile çalıştığı için bacaklarına gelen voltajında 5V tu aşmaması istenir. Aşan durumlarda ilgili pic pini arızalanacak Ya da pic tamamen bozulacaktır. Bunu unutmayın. Şayet 5V dan daha yüksek giriş voltajlarınız var ise mutlaka bir opto izolatör (4N35 gibi bir optocoupler) kullanın Ya da bir gerilim bölücü yaparak gelen voltajın Hiçbir şekilde 5V tu aşmamasını sağlayın.

fahrettink

Sayın ETE,

PIC programlama konusunda gerekli olan tüm püf noktaları belirtmişsiniz.

Özellikle simulasyonda çalışan ama devreyi kurunca çalışmayan durumlar için inanılmaz derecede faydalı bilgiler var bu yazıda.

Ben bu noktaları öğrenmek için saatlerce deneme yapıp onlarca devreyi tekrar tekrar kurarak öğrenmiştim.

Sizden ricam bu yazıya sitenin girişinde "MUTLAKA OKUYUN" başlığında bir link verin.

Bu işe yeni başlandığında insanlar çok heyecanlı oluyor ama basit hatalar nedeniyle hemen vazgeçebiliyorlar.

Bence bu yazınınız ilk okunacak yazı olmalı.

Verdiğiniz bilgiler için çok teşekkürler...
"Dahilik %1 ilham, %99 çalışmanın eseridir." Thomas Alva EDISON

ekarabatak

Benim gibi elektronik programlamaya yeni başlamış birine gerçekten çok faydalı oldu. Üstadım ETE; tüm kalbimle teşekkürü bir borç bilirim...

aliakt

Allah razı olsun hocam, benim için çok yararlı oldu.

sistemcar

Hocam.bu benim ilk iletim. ben çok baştan bir soru soracağım.ben eem 2. sınıf öğrencisiyim ve kendimi eliştirmek için geç klamış bir insanım.ama çabuk öğrenirim.elektronik opsiyomunu seçmeyi düşünüyorum.önce nereden başlamayım. donanım mı yoksa yazılım mı? malzeme bilgisi mi? bir adet ccs c kıtabı buldum onu aldım pic ile alakalı ve donanımlarıyla kafam karışık hocam kayboldum işin içine girdikçe yardım lütfen.

ete

Benca malzeme bilgini geliştir. Sonra ufak analog yada digital devreler yap güç kaynaklarını incele ve öğren. Özellikle voltaj regülatörlerini öğrenmeye çalış. Yavaş yavaş olur merak etme. En sonunda da programlamaya el atabilirsin.
Ete

E32KERNEL

Ellerinize sağlık hocam, benim de işime yaradı.

aksiozan

Sagol hocam su anda nobette firsatini buldugum heryerde telefonu elime aldigimda actigim ilk sitedeyim su anda sayenizde artik birkac lamba yakip sondurebiliyorum ya eyvallah hocam hepsi sayenizde allah razi olsun hayirli geceler herkese.

anlhlc

Herkese merhaba ete hocam picin besleme girisine illa ki 100 nf kondansator mu baglamaliyiz ve herhangi bir deger araligi var mi saygilar

ete

En uygunu 100nf. Elbette farklı değerlerde bağlanabilir ama kesin hangi aralıktır bilemiyorum.
Ete

anlhlc

tesekkurler hocam kolay gelsin

ali

#11
verdiğiniz bilgiler için ,paylasımınız, için teşekkürler ete  hocam, öğrenmek güzel şeymiş.

elvanmurat

ETE hocam
verdiğiniz bilgiler cok faydalı oldu benim için.cok tesekkür ederim.sizden ricam pıcler hakkında turkce datashetler varsa sitenize ekleyebilirseniz cok sevinirim.bizim gibi yeni baslayanlar icin cok faydalı bi kaynak olur.calışmalarınızda basarılar dilerim.

ibocakir06

Hocam delab marka bi deney seti aldım fakat rs232 kabloyla haberleşiyor. benim laptopta da o giriş yok. Acaba rs232 den usb'ye bir kablo alırsam yine de haberleşir miyim ? yoksa laptopta haberleşmek imkansız mı ?

ete

İyi bir marka alırsan çalışır. Chipset FT232 olursa kesin çalışır.

Ete

Powered by EzPortal