14 May

GİRİŞ
MicroChip tarafından üretilen PIC Mikro Denetleyicileri tüm dünyada yaygın bir kullanım alanına sahiptir. İlk başlarda “Programmable Interface Controller” (Programlanabilir Arabirim Denetleyicisi) şeklinde tanımlanan bu denetleyiciler daha sonra “Programmable Intelligent Computer” (Programlanabilir Akıllı Bilgisayar) olarak adlandırılmıştır.
PIC’ler uygun fiyatları, kolay bulunabilirliği, ücretli veya ücretsiz bir çok geliştirme aracına sahip olması nedeniyle tüm dünyada oldukça popülerdir. Internet ortamında PIC ile yapılmış bir sürü örnek uygulama ve doküman bulabilirsiniz.
TANIMLAMALAR
MikroController, MCU, µC: Mikro denetleyici, birçok tanım var ama ben şöyle diyorum; Düşük güç tüketimi, düşük fiyat ve kendi kendine yetebilme özelliği için optimize edilmiş ve çevre birimlerine sahip mikro işlemci türü. Minyatür bir bilgisayar da diyebiliriz.
8-Bit İşlemci: Bir işlemcinin 8-Bit olması, Aynı anda sadece 8-bit veri işleyebilmesi demektir. 16-Bit’lik bir işlemciler verileri 2’şer Byte olarak, 32 bit işlemciler 4′er Byte ve 64 Bitlik işlemciler 8′er Byte’lik bloklar şeklinde işleyebilir.
RISC: Reduced Instruction Set Computer, Instruction (Komut) seti az tutulan işlemci mimari yapısı. PIC’ler RISC Mimarisine sahiptir.
MIPS: Mega Instruction Per Second, Bir işlemcinin 1 saniyede işlediği komut sayısını gösteren ve birimi milyon olan değer. Örneğin 1MIPS hızında çalışan işlemci saniyede 1 Milyon komut işleyebilir. 40 Mhz saat sinyali olan PIC 10MIPS hızında çalışır.
RAM: (Random Access Memory) Okunup / Yazılabilen bellek türü
ROM: (Read Only Memory) Sadece okunabilen bellek türü.
EEPROM: (Electrically Erasable Programmable Read-Only Memory) Elektriksel olarak silinebilen ROM hafıza
PIC MIKRO DENETLEYİCİ ÜRÜN AİLESİ VE KODLAMA HARFLERİ
8-Bit: PIC10,PIC12,PIC14,PIC16,PIC18 ve rfPIC’ler
16-Bit: PIC24F,PIC24H,dsPIC30F,dsPIC33F
32-Bit: PIC32MX340, PIC32MX340, PIC32MX440, PIC32MX460
F Harfi, denetleyicinin Flash tipinde olduğunu belirtir. Flash denetleyiciler defalarca programlanıp silinebilir.
C Harfi, OTP (One Time Programmable) yani tek bir kez programlanabileceğini belirtir.
L Harfi, Low Voltaj yani PIC’in Düşük Voltajlarda çalışabileceğini gösterir.
CR Harfleri, ROM tabanlı olduğunu gösterir, bildiğim kadarıyla bunlar da bir kez programlanabiliyor.
PIC MİKRO DENETLEYİCİLERİ OLUŞTURAN BİLEŞENLER
PROGRAM MEMORY: Program kodunun yazıldığı hafıza alanıdır, uzunluğu pic modeline göre 0.5 KByte – 256 KByte arası değişir. PIC programlayıcı cihazlar yazdığınız kodu bu hafızaya yüklerler.
RAM MEMORY: Tıpkı bilgisayardaki ram hafıza gibi, geçici değişkenlerin tutulduğu hafızadır. Elektrik kesildiğinde değerler kaybolur. Boyutu PIC modeline göre 16 Byte – 32 KByte arası değişir.
EEPROM: Elektriksel olarak silinebilen hafıza, Elektrik kesildiğinde buradaki veriler kaybolmaz, PIC programlanırken veya kod içerisinden bu hafızaya yazılabilir. PIC’lerin bir kısmında EEPROM yoktur. Maksimum 4096Kbyte
PORTLAR: PIC’ler modeline göre değişik sayıda giriş çıkış portlarına sahiptirler. 8 Bacaklı PIC’lerde GPIO olarak adlandırılan port, diğer modellerde PORTA,PORTB…..PORTF vs şeklinde tanımlanmaktadır. PIC’lerde giriş çıkış portları illa da o amaç için kullanılacak diye bir kural yoktur. Örneğin aşağıdaki şekilde görüleceği gibi PORT B3 istenildiği takdirde CCP1 çıkış olarak kullanılabilir. Projedeki ihtiyaca göre hangi pinin ne için kullanılacağı önceden belirlenir.

TIMERLAR: Timer’lar donanımsal zamanlayıcı modüllerdir, ayarlandıklarında belirli değerler arasında sayar ve tekrar başa dönerler, maksimum değere ulaştıklarında kesme oluşturabilirler. Timer0, Timer1, Timer2, Timer3 vs. Şeklinde değişik timer’lar vardır. Kullanacağınız PIC’te hangi timerları kullanabileceğinizi çipin dokümanından öğrenebilirsiniz. Örneğin PIC12F628A çipinde timer0,timer1,ve timer2 modülleri mevcuttur. Timer0 modülü 8 bitliktir ve 0 dan 255’e doğru sayar, timer1 modülü 16 bitliktir ve 0-65535 değerine kadar sayar.
ADC: Analogtan dijitale dönüştürme modülü, Bu modül sayesinde PIC’ler analog voltajları dijital değerlere çevirebilir. PIC’lerin bir kısmında vardır bir kısmında yoktur. Değişik kapasitelerde ADC modülleri mevcuttur. İleride bunlara değineceğiz.
CCP: Capture Compare Pwm modülü, PWM sinyali oluşturmak, sinyalleri karşılaştırmak veya ölçmek için kullanılır. PIC’lerin bazılarında bulunmaz
COMPARATOR: Karşılaştırma modülü, bu modül ile iki analog sinyali karşılaştırıp durumlarına göre çıkış elde edebilirsiniz. PIC’lerin bir çoğunda bulunur.
USART: (Universal Synchronous Asynchronous Receiver Trasnmitter) Donanımsal seri haberleşme için kullanılır, PIC’ lerin bir kısmında mevcut değildir. Mevcut olmayan PIC’lerde yazılımsal olarak seri haberleşme yapılabilir.
SPI: Serial Peripheral Interface, Seri Donanım Arabirimi modülü, SPI haberleşmesi için kullanılır.
CAN: (Controller Area Network), Özellikle otomotiv sanayisinde kullanılan haberleşme protokolü. PIC’lerin bir kısmında vardır.
I2C: Haberleşme protokolü, PIC’lerin bir kısmında vardır.
WATCHDOG TIMER, KESMELER, OSILATOR, UYKU MODU, KONFIGURASYON BİTLERİ vs gibi PIC’lerin diğer özelliklerini ilerde örneklerle bolca anlatacağımızdan bu yazımızda bu konulara girmiyoruz
PIC PROGRAMLAMAK ICIN GEREKEN YAZILIMLAR
PIC progamlama çalışmaları yapmak için önünüzde iki seçenek var, ya assembler gibi düşük seviye bir dille , yada c, basic veya pascal gibi yüksek seviye bir dille program yazacaksınız. Assemblerla kod yazabilmek için PIC komut setini bilmeniz gerekir. Assemblerda kod yazmak yüksek seviye dillerle kod yazmaktan daha zordur ve daha fazla zaman alır. Kodlar daha karmaşık olduğu için hata takibi de zor olacaktır. Ben C ile geliştirme taraftarı olmakla birlikte, Assembler bilgisininde olması gerektiğini düşnüyorum.
MikroChip Fİrması, PIC Denetleyicileri için geliştirme ortamı olarak ücretsiz MPLAB programını temin ediyor. MPLAB ta assembler ile kod yazılıyor. MikroChip’in C derleyicileri ücretli olmakla birlikte Öğrenciler için özellikleri biraz kısıtlanmış ücretsiz versiyonlar da mevcut .
AÇIK KAYNAK (ÜCRETSİZ) PIC GELİŞTİRME YAZILIMLARI
Ktechlab: PIC Mikro deneteyicileri için elektronik dizayn ve simulasyon arabirimi
FreeRTOS: PIC18, PIC24, dsPIC, PIC32 Serileri için Gerçek Zamanlı İşletim Sistemi
GPUTILS: GPL Lisanlı Assembler, disasembler, linker
GPSIM: PIC Mikro Denetleyicileri için simulator
SDCC: C Compiler, PIC16 ve PIC18 Serisini destekliyor
JAL: PIC serileri için Pascal benzeri derleyici
PIC PROGRAMLAMA CİHAZLARI
Oluşturduğunuz kodu PIC’e yüklemek için PIC Programlayıcı cihazlara ihtiyacınız olacak. Şuradan MikroChip firmasının kendi ürettiği programlayıcıları inceleyebilirsiniz. Piyasadan farklı türlerde PIC programlayıcılar temin edebilirsiniz. Yok ben kendi programlayıcımı kendim yaparım diyorsanız PicProje forumun programlayıcılar sayfasına bir göz atmanızı tavsiye ederim.
HANGİ PIC DENETLEYİCİSİNİ KULLANMALIYIM?
Kullanacağınız PIC denetleyicisini Projedeki ihtiyaçlarınıza göre belirlemeniz gerekir. PIC’lerin kapasiteleri arttıkça fiyatları da arttığı için, ihtiyacınıza en uygun PIC’i kullanmak ekonomik olacaktır. MicroChip Firmasının PIC seçimi için güzel bir uygulaması var adı MAPS (Microchip Advanced Part Selector). Buradan indirebilirsiniz.
PIC Mikro Denetleyicileri kısaca tanımış olduk, ilerki yazılarımızda PIC’in tüm donanımlarını tek tek ele alıp, Bu donanımları kullanabilmek için CCS-C de nasıl kodlama yapılacağını göstereceğiz.
Bir sonraki yazımız CCS-C Compiler’in genel tanıtımı olacak.
12 May
Uzunca bir süredir yazı yazmak kısmet olmadı. Zaman problemi yanı sıra bir de Hosting firmasının sunucusunda HDD arizası çıkınca site alt yapısına bayağı bir zaman harcadım. Tüm yazıları tekrar yükledim ama eski yorumların üzerine bir bardak soğuk su içtim :). Fırsat bu fırsat deyip yarı türkçe yarı ingilizce olan wordpress sürümümü de 2.5.1′e yükseltip, tema üzerinde de değişiklikler yaptım.
Artık alt yapı çalışmalarını bir kenera bırakıp, makale yazmaya devam etmek istiyorum. Son bir kaç yazımız RF içerikli olmuştu. Şimdi ise Mikroişlemciler ve Gömülü yazılım konusundan devam edeceğiz inşallah. CCS-C Derleyicisi ile PIC Programlama başlığı altında bir yazı dizisi (Kurs) başlatıyorum. Yeni başlayanlara oldukça faydalı olacağını düşünüyorum.
CCS-C ile PIC programlayabilmek için şu bilgilere sahip olmanız gerekir;
İlk olarak PIC mikro işlemciler, genel C bilgisi ve CCS-C konusunda temel bilgiler aktaracağız ve daha sonra örneklerle konu anlatımlarına geçeceğiz. Örneklerimiz, 16f628A, 16f877,12f675 ve 18f452 gibi değişik serilerden, sık kullanılan PIC’ler için olacak.
Anlatılan bütün örneklerin Proteus-Isis simulasyonlarını vermeye çalışacağız. Ayrıyeten “Güvenli yazılım yazma”, “RTOS”, ve “dsPIC” programlama konularını da ele almayı düşünüyorum.
Ben CCS-C versiyonu 4.065, Proteus Versiyonu 7.1 SP2 Kullanıyorum
Bahsi geçen programlarla ilgili bilgi almak için
PicProje Forum Proteus Sayfası
Areslerini kullanabilirsiniz
İlk dersimiz “PIC Mikro İşlemcilerin Tanıtımı” olacak
Saygılar, sevgiler
6 May
Popüler video sitesi youtube.com’a erişim dün tekrar engellendi. Youtube da biz de alıştık artık sansürleme uygulamasına :). Nereye gidecek bu yasaklama furyası bilmiyorum, eskiden tek tük karşımıza çıkıyordu ama artık çok olmaya başladı. Geçenlerde teknik bir konuda yaptığım Google aramasında listelenen bir Geocities.com kullanıcı sitesine tıkladığımda karşımda çıkan o menhus yazı “BU SİTEYE ERİŞİM ENGELLENMİŞTİR” iyicene çileden çıkardı beni. Bir blogcu.com bloğu yüzünden blogcu.com’un tamamen engellenmesi gibi birşey bu olay.
YASAKLANAN SİTELERE NASIL GİRECEĞİNİZİ ÖĞRENMEK İÇİN BURAYA TILAYIN
18 Apr
SMD olmayan elektronik komponentlere baktığınızda ,gerek fiziksel görünümleri gerekse üzerlerindeki kodlamalarla malzemenin ne olduğunu hemen anlayabilirsiniz. Örneğin elinize bir transistör aldığınızda üzerindeki kodu okuyup bu BC848B Transistörü dersiniz. Aynı transistörün SMD versiyonuna baktığınızda ise üzerinde “1Ks” kodunu görürsünüz. Elinizde bir SMD katoloğu yoksa bu malzemenin BC848B transistörü olduğunu anlayamazsınız.
Üzerinde hiç bir yazı olmayan SMD bobin ve kapasitleri ise LCR Metre ile ölçmeniz gerekir. Makarası elinizde yoksa başka türlü değerini bulamazsınız
Aşağıda verdiğim linklerdeki katalogları kullanarak aradığınız SMD malzemenin ne olduğunu kolayca bulabilirsiniz.
Kolay gelsin…
http://www.tkb-4u.com/code/smdcode/indexsmdcode.php
http://www.marsport.org.uk/smd/mainframe.htm
18 Apr
Önceki yazılarımızda “Düşük güç RF devrelerde Anten seçimi”, ve “Anten empedans uyumu” konularına değinmiştik. Bu yazımızda ise RF dizaynlarda dikkat edilmesi gereken hususlara değinineceğiz. RF dizayn oldukça dikkat gerektiren ve bilgi isteyen bir konu. Türkiyede bu işi hakkıyla yerine getiren insanların sayısı bir elin parmaklarını geçeceğini sanmıyorum. Microchip’in bir seminerinde türkiyede araba alarmı konusunda isim yapmış bir firmanın ar-ge personeliyle sohbet etme şansım olmuştu. Ozamanlar RF ürünleri olan bir firmanın ar-ge sinde çalışıyordum . Adam bana bu anten işini nasıl hallediyorsunuz demişti, yani empedans uydurmayı sormuştu ve en ufak bir fikri bile yoktuJ. Hazır modülleri veya çipleri alıp kullandığımız için dizayn için gerekli olan bilgi ve beceriye sahip değiliz maalesef.
Dediğim gibi benim de bu konuda çok tecrübem olmadığı için, aktaracağım bilgilerin bir kısmı tecrübeye dayalı, bir kısmıda tamamen teorik olacak.
Tanımlar
RF: 100 Mega Hertz’den 2 Giga Hertz’e kadar olan elektromanyetik dalgalar.
Microwave: 2 Giga Hertz üzeri elektromanyetik dalgalar
Microstrip: RF/Microwave sinyalleri iletmek için kullanılan PCB yolları
Stripline: Koaksiyel kablo gibi, sinyali iki ground plane arasında ileten kablolar veya PCB de iki toprak katmanı arasında çizilen sinyal yolları.
VCO: Voltage Controlled Oscillator, Gerilim Kotrollü Osilatör
VSWR: Voltage Standing Wave Ratio, yani voltaj duran dalga oranı demektir. Kaynak ile yük arasında empedans uyumu yoksa, kaynaktan yüke gönderilen sinyallerin bir kısmı geriye yansır, ve giden dalgalarla üstüste binerek maksimum ve minumum genlikler oluştururlar. Bu genliklerin oranına Voltaj Duran Dalga oranı denir. Bu oran nekadar düşük olursa okadar iyidir. Animasyonlu anlatım için buraya bakabilirsiniz
PCB dizaynı ve dikkat edilmesi gereken hususlar
Sisteminizdeki Analog, RF ve Dijital kısımları mutlaka birbirlerinden ayırın ve PCB yi çizerken bu blokları tasarladığınız gibi birbirlerine karıştırmadan çizin. Aynı Şekilde RF bileşenleride ayırın, örneğin VCO, Amplifikatör vs. gibi. PCB de yolları çizerken birinin yolunu diğerlerinin içinden geçirmeyin.





Burada yazmadığım daha bir sürü dikkat edilmesi gereken husus var. Dediğim gibi RF dizayn zor zanaat.
Bizim gibi hazır modül kullanıcıları için bukadarı yeterli olur. Cep telefonu PCB’si yapmayacağız ![]()