CCS-C ile PIC Programlama, PIC mikro denetleyicilerini tanıyalım

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.
“CCS-C ile PIC Programlama, PIC mikro denetleyicilerini tanıyalım” yazısı için 9 Yorum yapıldı
PIC açılımı için yazılan “Programmable Interface Controller” (Programlanabilir Arabirim Denetleyicisi); “Peripheral Interface Controller” (Çevresel arabirim denetleyicisi) olmalıydı sanırım.
Çok güzel olmuş.Yazılarınızı bekliyoruz.PIC ile ilgili birçok ingilizce makale okudum.Anlayamadığım birçok yeri burası sayesinde kavradım.Teşekkürler.
Yolunuz açık olsun
Teşekkürler
5-6 yazı yazınlandı aslında. Kategoriler kısmından CCS-C ile PIC Programlama başalığına tıklayarak yazılara ulaşabilirsiniz
cok guzel bılgıler aldım cok tesekur ederım
Eyvallah…