PIC ve CPU, bellek, osilatör, watchdog ve I/O' nun tek bir yonga üzerinde bulunduğu bir mikrokontrolcüdür. Bu, tasarımda zaman ve yer kazandırmakta, aynı zamanda çevre birimlerin zamanlama ve uyumluluk problemlerini de azaltmaktadır. Ancak bazı durumlarda bellek boyutlarını ve I/O kapasitesini kısıtlayabilir. PIC mikrokontrolcüler ailesindeki ürünler, I/O, bellek ve özel fonksiyonlar geliştirme mühendislerinin çoğunun ihtiyaçlarını karşılayabilecek ölçüde geniş bir yelpaze sunar.
PIC Serisi mikroislemciler MICROCHIP firmasi tarafindan gelistirilmis ve üretim amaci çok fonksiyonlu logic uygulamalarinin hizli ve ucuz bir Mikroislemci ile yazilim yoluyla karsilanmasidir. PIC’in kelime anlami -PERIPHERAL INTERFACE CONTROLLER- Giris Cikis islemcisidir. Ilk olarak 1994 yilinda 16 bitlik ve 32 bitlik büyük islemcilerin giris ve çikislarindaki yükü azaltmak ve denetlemek amaciyla çok hizli ve ucuz bir çözüme ihtiyaç duyuldugu için gelistirilmistir. Çok genis bir ürün ailesinin ilk üyesi olan PIC16C54 bu ihtiyacin ilk meyvesidir.
PIC islemcileri RISC -benzeri islemciler olarak anilir. PIC16C54 12 Bit komut hafiza genisligi olan 8 bitlik CMOS bir islemcidir. 18 bacakli dip kilifta 13 I/O bacagina sahiptir ve 20 Mhz osilator hizina kadar kullanilabilir. 33 adet komut içermektedir. 512 byte program epromu ve 25 byte RAM`i bulunmaktadir. Bu hafiza kapasitesi birçok insani güldürmüstür sanirim ama bir risc islemci olmasi birçok isin bu kapasitede uygulanmasina olanak vermektedir.
Örnegin ANTRAK R94 rölesinde kullanilan role kontrol devresi bir adet PIC16C54 içermektedir. Bu devre sayesinde R94 Time Out Timer, DTMF kodlu Kontrol ve kapatma, Konusma sonu zamanlamasi gibi islemler program belleginde 324 byte yer kaplamakta 14 byte RAM kullanilmaktadir. PIC serisi tüm islemciler herhangi bir ek bellek veya giris/çikis elemani gerektirmeden sadece 2 adet kondansatör, 1 adet direnç ve bir kristal ile çalistirilabilmektedir.
Tek bacaktan 40 mA akim çekilebilmekte ve entegre toplami olarak 150 mA akim akitma kapasitesine sahiptir. Entegrenin 4 Mhz osilator frekansinda çektigi akim çalisirken 2 mA stand-by durumunda ise 20uA kadardir. PIC 16C54’ün fiyatinin 2.0 US$ civarinda oldugu düsünülürse bu islemcinin avantaji kolayca anlasilir.
PIC 16C54 ‘un mensup oldugu islemci ailesi 12Bit core 16C5X olarak anilir. Bu gruba temel grup adi verilir. Bu ailenin üyesi diger islemciler PIC16C57, PIC16C58 ve dünyanin en küçük islemcisi olarak anilan 8 bacakli PIC12C508 ve PIC 12C509’dur. Interrupt kapasitesi ilk islemci ailesi olan 12Bit Core 16C5X ailesinde bulunmamaktadir. Daha sonra üretilen ve Orta sinif olarak taninan 14Bit Core- 16CXX ailesi birçok açidan daha yetenekli bir grup islemcidir. Bu ailenin temel özelligi interrupt kapasitesi ve 14 bitlik komut isleme hafizasidir.
Bu özellikler Pic’i gerçek bir islemci olmaya ve karmasik islemlerde kullanilmaya yatkin hale getirmistir. PIC16CXX ailesi en genis ürün yelpazesine sahip ailedir. 16CXX ailesinin en önemli özellikleri seri olarak devre üstünde dahi programlanmasi -ki bu özellik PIC16C5x de epey karmasikti , paralel programlanabiliyordu- interrupt kabul edebilmesi, 33 I/O,AD Converter, USART, I2C, SPI gibi endüstri standardi giris çikislari kabul edecek islemcilere ürün yelpazesinde yer vermesi.
PIC 16CXX ailesinin amatör elektronikçiler arasinda en çok taninan ve dünyada üzerinde ençok proje üretilmis, internetin gözdesi olan bireyi PIC16C84 veya yeni adiyla PIC16F84 dur. PIC 16F84 un bu kadar popüler olmasi onun çok iyi bir islemci olmasindan ziyade program belleginin Eeprom - Elektrikle silinip yazilabilen bellek - olmasindan kaynaklanmaktadir. Seri olarak dört adet kabloyla programlanmasi da diger önemli avantajidir.
Bugüne kadar amatörce bir islemciyle ugrasmis herkesin en büyük sikintisi eprom veya eprom tabanli islemcileri programladiktan sonra UltraViole isik kaynagi ile silip tekrar programlamaktir. Bu çok zahmetli ve bir amatör için ekipman gerektiren yöntem olmustur. Evde üretilmesi zor olan özel bir programlayici da madalyonun diger yüzüdür. PIC16F84 amatörler tarafindan internette en bol programlayicisi bulunan islemcidir herhalde.
Ben su ana kadar 50 den fazla PC ve MAC tabanli evde yapabileceginiz programlayiciya rastladim. Eprom silmek diye birsey zaten söz konusu degil zira eeprom bellegi programlayan programlayici devre 1 saniye içinde ayni bellegi silebilmektedir. Bu özellik size çok hizli ve defalarca deneyerek program gelistirme avantajini getirmektedir ki bu amatör elektronikçi için bulunmaz bir nimettir.
Bu denemeleri yaparken islemciyi devrenizden sökmeniz dahi gerekmez. Bu tip programlamaya ISP -In System Programming- denmektedir. Amatör bir elektronikçi PIC16F84 ile Program gelistirmek için asagidaki ekipmana ihtiyaç duyacaktir: PIC16F84 MS-DOS tabanli PC ASCII Editör (Örnegin Dos'un EDIT'I) MPASM Assembler Programlayici/silici Programlayici için yazilim Bu ögelerin tümünü bu yazi dizisinde sizlere tanitmaya çalisacagim.
Gelecek yazimda PIC 16F84 un özelliklerine daha kapsamli deginip, RS-232 COM portu kullanan PC tabanli oldukça karmasik !!! (Üç adet direnç) bir programlayici/silici tasarimini anlatacagim. PIC Serisi islemciler ile ilgili daha genis bilgi için adresine basvurabilirsiniz.
PIC' in iç yapısı YAZILIM TASARIMI
Donanımı ve PIC' in gerçek dünyaya nasıl bağlanacağını anladıktan sonra, PIC' in birşeyler yapmaya başlamak için yazılım konusunu öğrenmek gerekiyor.
Önceden yazılımla ilgili çalışmalarınız varsa, aşağıdaki bilgilerden bir kısmını atlayabilirsiniz.
• mantıksal fonksiyonların anlaşılması
• onaltılık-heksadesimal gösterim
• kaynak kod yazımı
• assembler direktiflerinin kullanımı
• kod yazımında zaman kazandıran makrolar
• program geliştirme
• komut seti
• dahili yazmaçlar
• alt rutinler,
• lookup tabloları
• I/O port kurulumu
• Reset vektörleri
• RTCC
• WDT
• kesmeler
• stack
• A/D dönüştürme
• E2 temelli PIC' ler
• hangi PIC' i seçmeli?
• gereksinilen asgari donanım
• reset devreleri, zamanlayıcılar
• watchdog
• osilatörler
• girdiler ve çıktılar
• I/O genişlemesi
• şehir şebekesi ile bağlantı
• analog sinyal işleme
• PIC' ler de numaralandırma