- PIC Mikrodenetleyici Mimarisi ve Uygulamaları:
- Eğitimlerimiz için PIC Mikroişlemcisi Seçimi:
- Eğitimlerimiz için Yazılım Seçimi:
- Donanıma Hazırlanma:
1980'de Intel, Harvard Architecture 8051 ile ilk Mikrodenetleyiciyi (8051) geliştirdi ve o zamandan beri Mikrodenetleyiciler Elektronik ve gömülü endüstride bir devrim getirdi. Ve zaman içindeki teknolojik gelişmelerle birlikte, artık AVR, PIC, ARM gibi daha verimli ve düşük güçlü mikro denetleyicilere sahibiz. Bu Mikrodenetleyiciler daha yetenekli ve kullanımı kolaydır, USB, I2C, SPI, CAN vb. Gibi en son iletişim protokollerine sahiptir. Arduino ve Raspberry Pi bile Mikrodenetleyicilere bakış açısını tamamen değiştirmiştir ve Raspberry Pi sadece bir mikrodenetleyici değil, bir bütündür. bilgisayar içinde.
Bu, PIC Mikrodenetleyicilerini öğrenmenize yardımcı olacak bir dizi öğreticinin ilk bölümü olacak. Elektronik bir geçmişe sahipseniz ve her zaman bazı Mikrodenetleyicileri öğrenmekle başlamak ve kendinizi kodlama ve inşa etme dünyasına sokmak istiyorsanız, bu eğitim dizisi başlamak için ilk adımınız olacaktır.
PIC mikro denetleyici, bir mikro denetleyici projesine başlamak için çok uygun bir seçimdir, çünkü mükemmel destek forumlarına sahiptir ve henüz öğrenmediğiniz tüm gelişmiş Mikrodenetleyicilerinizin üzerine inşa etmek için güçlü bir temel görevi görür.
Bu eğitimler mutlak veya orta seviyedeki Öğrenciler için hazırlanmıştır; en temel projelerden en ileri olanlardan başlamayı planladık. Size herhangi bir seviyeden yardım etmek için buradayız çünkü öğrencilerden hiçbir ön koşul beklemiyoruz. Her öğreticinin teorik bir açıklaması ve simülasyonu ve ardından uygulamalı bir öğretici olacaktır. Bu eğitimler herhangi bir geliştirme kartı içermeyecek, bir performans panosu kullanarak kendi devrelerimizi yapacağız. Bu yüzden hazırlanın ve sizi Mikroişlemcilerle geliştirmek için her hafta biraz zaman ayırın.
Şimdi PIC Mikrodenetleyicilerine Basit Giriş ve bir sonraki öğreticimizi çalıştırmamızı sağlayacak bazı yazılım kurulumlarıyla başlayalım. Video kontrol MPLABX, XC8, Proteus ve PICkit 3 programcı hızlı bir unboxing yükleme ve kurulum için sonunda.
PIC Mikrodenetleyici Mimarisi ve Uygulamaları:
PIC mikro denetleyicisi, 1993 yılında Microchip Technologies tarafından tanıtıldı. Başlangıçta bu PIC, PDP (Programlanmış Veri İşlemcisi) Bilgisayarlarının bir parçası olarak geliştirildi ve bilgisayarın her bir çevresel aygıtı, bu PIC mikro denetleyicisi kullanılarak arabirim oluşturuldu. Bu nedenle PIC, adını Çevresel Arayüz Denetleyicisi olarak alır . Daha sonra Microchip, gelişmiş olana kadar bir aydınlatma uygulaması gibi herhangi bir küçük uygulama için kullanılabilecek birçok PIC serisi IC geliştirdi.
Her Mikrodenetleyici bazı mimariler etrafında inşa edilecektir, en ünlü mimari türü Harvard mimarisidir, PIC'imiz klasik 8051 ailesine ait olduğu için bu mimariye dayanmaktadır. PIC'nin Harvard mimarisi hakkında küçük bir giriş yapalım.
16F877A Mikrodenetleyici başlayanlar ile başlamak için yapar ED güçlü mikro toplamak için bir dahili CPU, I / O portu, hafıza organizasyonu, A / D dönüştürücüsü, zamanlayıcılar / sayaçlar, kesme, seri iletişim, osilatör ve CCP modülünden oluşur. PIC Mimarisinin genel blok diyagramı aşağıda gösterilmiştir.
CPU (Merkezi İşlem Birimi):
Mikrodenetleyici, Aritmetik işlemleri, Mantıksal kararları ve Bellek ile ilgili işlemleri gerçekleştirmek için bir CPU'ya sahiptir. CPU, RAM ile Mikroişlemcinin diğer çevre birimleri arasında koordinasyon sağlamak zorundadır.
Aritmetik işlemleri ve mantıksal kararları gerçekleştirdiği bir ALU'dan (Aritmetik Mantık Birimi) oluşur. Talimatları yürütüldükten sonra saklamak için bir MU (Bellek birimi) de mevcuttur. Bu MU, MC'mizin program boyutuna karar verir. Aynı zamanda, CPU ile mikrodenetleyicinin diğer çevre birimleri arasında bir iletişim veriyolu görevi gören bir CU'dan (Kontrol Ünitesi) oluşur. Bu, belirtilen kayıtlarda işlendikten sonra verilerin alınmasına yardımcı olur.
Rastgele Erişim Belleği (RAM):
Mikrodenetleyicimizin hızına karar veren, Rasgele Erişim belleğidir. RAM, her birine belirli bir görev atanmış olan kayıt bankalarından oluşur. Genel olarak iki türe ayrılabilirler:
- Genel Amaçlı Kayıt (GPR)
- Özel İşlev Kaydı (SFR)
Adından da anlaşılacağı gibi, GPR toplama, çıkarma vb. Gibi genel kayıt fonksiyonları için kullanılır. Bu işlemler 8 bit ile sınırlıdır. GPR altındaki tüm kayıtlar kullanıcı tarafından yazılabilir ve okunabilir. Yazılım belirtilmedikçe kendi başlarına herhangi bir işlevi yoktur.
Oysa SFR komplike özel işlevleri gerçekleştirmek için kullanılan bazı 16-bit sevkini kapsamaktadır, bunların kayıtları sadece (R) okunabilir ve bunlara elimizden değil yazma (W) her şey. Dolayısıyla, bu kayıtların gerçekleştirilmesi için önceden tanımlanmış bir işlevi vardır, bunlar üretim sırasında ayarlanır ve sadece sonucu bize gösterirler, bunu kullanarak bazı ilgili işlemleri gerçekleştirebiliriz.
Salt Okunur Bellek (ROM):
Salt okunur bellek, programımızın depolandığı yerdir. Bu, programımızın maksimum boyutuna karar verir; dolayısıyla program belleği olarak da adlandırılır. MCU çalışırken, ROM'da depolanan program her komut döngüsüne göre yürütülür. Bu bellek birimi yalnızca PIC programlanırken kullanılabilir, yürütme sırasında salt okunur bir bellek haline gelir.
Elektrikle Silinebilir Programlanabilir Salt Okunur Bellek (EEPROM):
EEPROM, başka bir Bellek Birimi türüdür. Bu bellek biriminde değerler program yürütülürken saklanabilir. Burada saklanan değerler yalnızca Elektriksel Olarak Silinebilir, yani bu değerler IC kapatıldığında bile PIC'de tutulacaktır. Yürütülen değerleri saklamak için küçük bellek alanı olarak kullanılabilirler; ancak bellek alanı KB'nin dönüşlerinde çok daha az olacaktır.
Flash Bellek :
Flash bellek aynı zamanda programı binlerce kez okuyabildiğimiz, yazabildiğimiz ve silebildiğimiz Programlanabilir Salt Okunur Belleğidir (PROM). Genel olarak, PIC mikro denetleyicisi bu tip ROM'u kullanır.
G / Ç Bağlantı Noktaları
- PIC16F877A ürünümüz, Port A, Port B, Port C, Port D ve Port E olmak üzere beş porttan oluşur.
- Beş PORTS arasında yalnızca Port A 16-bit ve PORT E 3-bittir. PORTS'un geri kalanı 8 bittir.
- Bu PORTS üzerindeki pinler, TRIS Register yapılandırmasına bağlı olarak Giriş veya Çıkış olarak kullanılabilir.
- I / O işlemlerini gerçekleştirmenin yanı sıra, pinler SPI, Interrupt, PWM vb. Gibi Özel işlevler için de kullanılabilir.
Otobüs:
Veri Yolu terimi, Giriş veya Çıkış Aygıtını CPU ve RAM ile birbirine bağlayan bir grup kablodur.
Veri yolu, verileri aktarmak veya almak için kullanılır.
Adres veriyolu, bellek adresini çevre birimlerden CPU'ya iletmek için kullanılır. I / O pinleri, harici çevre birimlerine arayüz sağlamak için kullanılır; UART ve USART her iki seri iletişim protokolü de GSM, GPS, Bluetooth, IR, vb. Gibi seri cihazların arayüzünü oluşturmak için kullanılır.
Eğitimlerimiz için PIC Mikroişlemcisi Seçimi:
Microchip Company'nin PIC Mikrodenetleyicileri 4 büyük aileye ayrılmıştır. Her ailenin yerleşik özel özellikler sağlayan çeşitli bileşenleri vardır:
- İlk aile, PIC10 (10FXXX) - Düşük Uç olarak adlandırılır.
- İkinci aile, PIC12 (PIC12FXXX) - Orta Aralık olarak adlandırılır.
- Üçüncü aile PIC16'dır (16FXXX).
- Dördüncü aile PIC 17/18 (18FXXX)
PIC hakkında bilgi edinmeye başladığımız için, evrensel olarak kullanılan ve mevcut olan bir IC seçelim. Bu IC, 16F ailesine aittir ve IC'nin parça numarası PIC16F877A'dır. İlk öğreticiden sonuna kadar, bu IC'nin SPI, I2C ve UART vb. Gibi tüm gelişmiş özelliklerle donatılmış olduğu için aynı IC'yi kullanacağız. her öğreticide ilerleme sağlayın ve sonunda yukarıda belirtilen tüm özellikleri kullanın.
IC seçildikten sonra, IC'nin veri sayfasını okumak son derece önemlidir. Bu, denemek üzere olduğumuz kavramın ilk adımı olmalıdır. Şimdi bu PIC16F877A'yı seçtiğimizden beri, bu IC'nin teknik özelliklerini Veri Sayfasında okuyalım.
Çevre Birimi Özelliği, ikisi 8 bit ve biri 16 bit ön ölçekleyici olmak üzere 3 Zamanlayıcıya sahip olduğundan bahseder. Bu Zamanlayıcılar, programımızda zamanlama işlevleri oluşturmak için kullanılır. Sayaç olarak da kullanılabilirler. Ayrıca, PWM sinyalleri oluşturmamıza ve gelen frekans sinyallerini okumamıza yardımcı olan CCP (Yakalama Karşılaştırma ve PWM) seçeneklerine sahip olduğunu da gösterir. Harici cihazla iletişim için SPI, I2C, PSP ve USART'a sahiptir. Güvenlik amacıyla, while programının sıfırlanmasına yardımcı olan Brown-out Reset (BOR) ile donatılmıştır.
Analog Özellikler, IC'nin 10 bitlik 8 kanallı ADC'ye sahip olduğunu gösterir. Bu, IC'mizin Analog değerleri 10 bit çözünürlükle dijitale dönüştürebileceği ve bunları okumak için 8 analog pini olduğu anlamına gelir. Ayrıca, gelen voltajı doğrudan yazılım aracılığıyla okumadan doğrudan karşılaştırmak için kullanılabilecek iki dahili karşılaştırıcımız var.
Özel Mikrodenetleyici Özellikleri, 100.000 silme / yazma döngüsüne sahip olduğunu, yani yaklaşık 100.000 kez programlayabileceğinizi belirtir. Devre İçi Seri Programlama ™ (ICSP ™), IC'yi doğrudan PICKIT3 kullanarak programlamamıza yardımcı olur . Hata ayıklama, Devre İçi Hata Ayıklama (ICD) aracılığıyla yapılabilir. Diğer bir güvenlik özelliği, gerekirse tüm programı sıfırlayan kendi kendine güvenilir bir zamanlayıcı olan Watchdog Timer'dır (WDT).
Aşağıdaki görüntü , PIC16F877A IC'mizin pinlerini temsil etmektedir. Bu görüntü, her bir iğneyi kendi adına ve diğer özelliklerine göre temsil eder. Bu, veri sayfasında da bulunabilir. Donanım çalışmalarımız sırasında bize yardımcı olması için bu resmi elinizin altında tutun.
Eğitimlerimiz için Yazılım Seçimi:
PIC mikrodenetleyici, piyasada bulunan farklı yazılımlarla programlanabilir. PIC MCU'ları programlamak için hala Assembly dilini kullanan insanlar var. Eğitimlerimiz için bizzat Microchip tarafından geliştirilmiş en gelişmiş yazılımı ve derleyiciyi seçtik.
PIC mikro denetleyiciyi programlamak için, programlamanın gerçekleştiği bir IDE'ye (Entegre Geliştirme Ortamı) ihtiyacımız olacak. Programımızın HEX dosyaları adı verilen MCU tarafından okunabilir forma dönüştürüldüğü bir derleyici. Hex dosyamızı PIC MCU'larımıza dökmek için kullanılan bir IPE (Entegre Programlama Ortamı).
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Derleyici: XC8
Microchip tüm bu üç yazılımı ücretsiz olarak verdi. Doğrudan resmi sayfalarından indirilebilirler. Size kolaylık sağlamak için bağlantıyı da verdim. Bunları indirdikten sonra bilgisayarınıza kurun. Bunu yaparken herhangi bir sorun yaşarsanız, videonun sonunda verilen videoyu izleyebilirsiniz.
Simülasyon amacıyla Labcenter tarafından sağlanan PROTEUS 8 adlı yazılımı kullandık. Bu yazılım, MPLABX kullanılarak oluşturulan kodumuzu simüle etmek için kullanılabilir. Bağlantı aracılığıyla resmi sayfalarından indirilebilen ücretsiz bir tanıtım yazılımı var.
Donanıma Hazırlanma:
Tüm eğitimlerimiz donanımla sona erecek. PIC'i mümkün olan en iyi şekilde öğrenmek için her zaman kodlarımızı ve devrelerimizi donanım üzerinden test etmeniz önerilir, çünkü simülasyonun güvenilirliği çok daha azdır. Bir simülasyon yazılımı üzerinde çalışan kodlar, donanımınızda beklediğiniz gibi çalışmayabilir. Bu nedenle, kodlarımızı dökmek için bir Perf kartlarında kendi devrelerimizi oluşturacağız.
Kodumuzu PIC'e dökmek veya yüklemek için PICkit 3'e ihtiyacımız olacak. PICkit 3 programlayıcı / hata ayıklayıcı, MPLAB IDE (v8.20 veya üstü) yazılımını çalıştıran bir PC tarafından kontrol edilen basit, düşük maliyetli bir devre içi hata ayıklayıcıdır. bir Windows platformu. PICkit 3 programcı / ayıklayıcı geliştirme mühendisin aracı paketinin bir parçasıdır. Buna ek olarak, Perf board, Lehimleme istasyonu, PIC IC'ler, Kristal osilatörler, kapasitörler vb. Gibi diğer donanımlara da ihtiyacımız olacak. Ancak, eğitimlerimizde ilerledikçe bunları listemize ekleyeceğiz.
PICkit 3'ümü Amazon'dan getirdim, aynı kutudan çıkarma videosu aşağıdaki videoda bulunabilir. PICKIT3 bağlantısı da sağlanmıştır; fiyat biraz yüksek olabilir ama güven bana yatırım yapmaya değer.