PIC / Mikrodenetleyici ve PROGRAMLAMA PIC-Mikroişlemci Programlama Paylaş
Duyuru: Kısa bir süre için fiyatlarımızda % 50 ye varan indirimler!!!
PIC - (Mikrodenetleyici )

PIC ;

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 'ün 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 (Electronically Erasable Programmable Read-Only Memory) - Elektrikle silinip yazilabilen bellek - olmasindan kaynaklanmaktadir. Seri olarak dört adet kabloyla programlanmasi da diger önemli avantajidir. İslemciyle 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 olmuştur. Basitçe üretilmesi zor olan özel bir programlayici da madalyonun diger yüzüdür. Eprom silmek diye birsey zaten söz konusu değil 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

EEPROM; ve; Arduino

EEPROM, ihtiyacımız olan değişken verilerini tutabilen, elektriksel olarak bu verileri yazıp silebilen küçük depolama birimidir. Arduino'nun mikroişlemcisinde dâhili olarak bulunan EEPROM'a verilerimizi kaydedebilir, istediğimiz zaman bu verileri tekrar kullanabiliriz.

Arduino'nun enerjisi kesilse dahi EEPROM'daki veriler silinmez. Bu özellikten dolayı Arduino'nun çalışmaya başladığında ilk olarak yapması gereken önemli işlerin verileri bu alanda depolanır. EEPROM depo alanı, Arduino'nun üzerinde bulunan mikroişlemcinin türüne göre değişmektedir. ATmega328'in 1024 byte, ATmega168 ve ATmega8'in 512 byte, ATmega1280 ve ATmega2560'ın ise 4 kb depolama alanı vardır. Bu alanlar projelerimiz için yeterli olacak. Yeterli olmadığı durumlarda hafıza alanının artırılması için harici EEPROM'lar da kullanılabilir.

Uygulamalarda Arduino'nun dâhili EEPROM'u birçok projeye yetecektir. Bunun için öncelikle EEPROM.h kütüphanesini projemize dâhil etmeliyiz. EEPROM kütüphanesini dâhil etmemizle artık EEPROM'a yazma ve EEPROM'dan okuma fonksiyonlarını kullanabiliriz. EEPROM'a veri yazmak için "EEPROM.write" fonksiyonu kullanılır.

Bu fonksiyon veri olarak sırasıyla EEPROM'da kaydedilecek adresi ve kaydedilmesi gereken veriyi almaktadır. EEPROM'a kaydedilecek adres kullanıcı tarafından belirlenmektedir. Böylece kullanıcı kaydettiği verinin hangi adreste olduğunu bilmektedir. İhtiyaç olunduğunda bu verinin geri alınması için "EEPROM.read" fonksiyonu kullanılır. Bu fonksiyon veri olarak EEPROM'un okunmak istenen adresini almaktadır.

Gündelik Hayat ve PIC ;

PIC LER (CPU,REM,ROM,I/O ), TEKBİR ENTEGREDE TOPLANMIŞ UFAK BİLGİSAYARLARDIR denebilir. BİZİM YAZDIĞIMIZ KOMUTLARA GÖRE ÇAMAŞIR MAKİNASI BUZDOLABI,CEP TELEFONU,ARABALAR,HEMEN HEMEN HAYATIMIZIN HERYERİNDE GÖRMEK MÜMKÜNDÜR HESAP YAPABİLİRLER ; ÖLÇME ,KARŞILAŞTIRMA ,BİLGİ SAKLAMA,BİLGİ GÖNDERME,BİLGİ ALMA,GİBİ ÇOK DEĞİŞİK İŞLER YAPABİLİRLER GERCEKTEN UĞRAŞMAK ZEVKLİDİR CÜNKÜ AKILLIDIRLAR

Günlük Hayatta ve Akıllı Sistemlerde ;

  • 220V ile çalışan 60-70 devreyi dahi kontrol edip, açıp-kapatabilirsin.
  • PC den programı yazıp PIC'e yükledikten sonra PIC çalışmaya hazırdır ;
    • Destek yazılımları internetten ücretsiz sağlanır.
    • Çok yaygın ve ucuzdur. Hem profesyonel hem de amatör kullanıma uygundur.
    • İnternette ve kitap/dergilerde çok sayıda örnek programları vardır.
    • Çok az ve basit birkaç elemanlarla (direnç, kondansatör vb.) donanımları kurulabilir.
    • Daha üst seviye diller için (PIC C, PIC Basic gibi) derleyicilere (compiler) sahiptir.
  • Küçük bir PIC devresi kurmak için Bilgisayar, PIC, PIC programlayıcı, program yazmak için compiler ve program yazmayı öğrenmek, Program yazamıyor olsak dahi hazır kodu PIC e yükleyebilmek gereklidir.

PIC vs ARDUINO ;

Arduino ile Pic -in farkı ne? Yani hangisini tercih edersiniz ? Belki fiyat bakımından arduino daha mantıklı. Malum PIC'in çalışması için bazi minimum mazemeler gerekli (osilator kondensator). Pic & arduino ile kıyaslandığında PIC daha mı profesyonel ? Araştırınca bazıları pic-i bazıları arduinoyu Överken (!)... Mesele PIC'de yapılacak bazı işlemler arduinoda yapılamıyor gibi bir şeyler var mı?

Öncelikle ikisininde farkli avantajlari var, amaca gore secenekler degisiyor. Eger amaciniz kariyer yapmaksa arduino onermem ki sektoru zaktan yakindan tanimayan biri icin bile acik bir durum bu. eger amaciniz aklinizdaki bir projeyi hayata gecirmekse arduino ile amaca ulasmak cok basit.
Eğer amac hobiyse en mantikli hareket zevk aldiginiz projelere yogunlasmak olacaktir ki zamanla elektronigin temellerini anladikca ve sinirlara gelince cok kolay bir sekilde ihtyacinizin ve seciminizin farkinda olacaksiniz. Kısaca karşılaştırmak yanlis veya eksik, iyi veya en iyi diye bir sey yok. Mesela Assembly iyi midir? Çogu kisi evet iyi der, peki zor mudur? Evet, suphesiz. Peki zor olan bir sey iyi midir? Mantık size hayır der fakat Assembly ile işlemcinin her hareketine müdahil olabilirsiniz ve en hızlı çalışma ortamını ve tepki sürelerini alırsınız dersek ?

Soru şöyle olmalıydı "PIC mi yoksa Atmel mi?" Arduino bir geliştirme setidır dersek yanlış olmaz herhalde, üzerinde atmel avr(pic yerine avr denmemeli eğer iki firma arasında ticari bir durum yoksa) serisi içinde atmega328p barındırır.Her iki Mikroişlemcininde osilatore ihtiyacı vardır. Sonuçta elma ile armut u karşılaştırmak yanlış olur,bir mikrodenetleyiciyi hakkıyla öğrenen birisi için diğerleri kolay olacaktır ; yani atmel mikrodenetleyicilerden birini öğrendiğimizde diğer platformları öğrenmek sizin en fazla birkaç gününüzü alır. Assemly ile programlanmasi(tabiki bu da zaman demektir) daha da iyi olur hem daha az yer hemde derleyilerdeki hata yüzünden olusabalicek aksilikler engellenmiş olur ve kodunuz şiir gibi çalışır. Tercih size kalmış, şimdiden başarılar:)

Bu arada avr yada Atmelfirmasını PIC ureticisi microchip firması satın aldı. Yani şu an bir firmanın iki farklı urununu karşılaştırır gıbı oluyoruz. her ıkı işlemci ıle de profesyonel çalışma yapılabılır bu tamamen tercıh meselesi ; arduinonun amator gibi kalmasınını sebebi geliştirme ortamının daha sadeleştirilmiş basite indirgenmiş olması yoksa drone lar için yazılmış açık kaynak kodlara bakarsanız C ile bir kod yazmışlar ve birçok seçenek paylaşmışlar. Yetenek olarak birbirlerinden az denecek farklar var ancak ileri muhendislik uygulamalarında bir seçenek olabilir . AVR lerin ilk cıkan modellerı PIC ıle bırebır kod uyumluydu . Çunku PIC tasarımcılarından ayrılan bır kaç kişi avr yi kurmuşlardı sonrada daha da geliştirdiler.Şu an istenirse arduino yerine atmel studio ile oturup gayet iyi projelerde yazılabilir.

Son olarak ;

  • Atmel ve PIC ; RISC ve 8051 temelli mikrodenetleyicileri var. Arduinoda kullanılan ATMegaserisi mikrodenetleyiciler RISC tabanlıdır 8051 değil. Komut işleme yöntemi pic ve atmegalarda aynıdır yani 4xClock da komutu işler.
  • RISK ve harward mimarileri bakımından ; ikiside denetleyicidir. Tabanında mikroişlemcilerin detayında farklılıklar vardır. PIC RISC mimariyle çalışır (Code ve Opcode birleşiktir), Atmel (yada tüm 8051' ler) harward mimarisi kullanır. ilki code bir sonraki 1 veya 2 byte opcode dur
  • Pic de dahili çevre birimlerinde çeşitlilik daha fazladır.
  • Atmelde ADC okumada ayrı bir ADC besleme hattı var istenirse kurulabiliyor bu nedenle ADC okumalar daha gürültü bağışık olduğunu biliyoruz.Atmel endüstriyel ortamlar için daha güvenilir diyebilirim.. Harmonik, parazit gibi konularda daha stabil.
  • Atmel programlama için geliştirici platformu çok iyi ve yaygındır. Microchip 3-5 yıl once C compiler firması satın alarak bu kısmı da guclendirdi.

This site is designed by mathamara@2019.
http://www.fehmiakgul.com.tr