PIC16F17146'ya Giriş
PIC16F17146, yüksek performansı ve düşük güç tüketimiyle tanınan PIC16F ailesine ait bir mikrodenetleyici yongasıdır. Bu yonga, tüketici elektroniği, otomotiv uygulamaları ve endüstriyel kontrol sistemleri gibi çeşitli elektronik cihazlarda yaygın olarak kullanılmaktadır. PIC16F17146, çoklu iletişim arayüzleri, analog-dijital dönüştürücüler ve program komutlarını ve verileri depolamak için bol miktarda bellek dahil olmak üzere geniş bir özellik yelpazesi sunar. Bu çok yönlü çip, esnek mimarisi ve kapsamlı çevre birimleri seti sayesinde geliştiricilerin sofistike uygulamaları kolaylıkla oluşturmasını sağlar. Örneğin, otomotiv sistemlerinde motor fonksiyonlarını kontrol etmek için veya akıllı ev cihazlarında çeşitli ev otomasyon görevlerini yönetmek için kullanılabilir.

PIC16F17146 Özellikleri
- C Derleyicisi için Optimize Edilmiş RISC Mimarisi
- 49 komut ve 16 yığın seviyesine sahip geliştirilmiş orta sınıf çekirdek
- Kendi kendine okuma/yazma özelliğine sahip flash program belleği
- Düşük Akımlı Güç Açma Sıfırlama (POR)
- Hızlı Kurtarma Özelliğine Sahip Programlanabilir Brown-Out Sıfırlama (BOR)
- Düşük Güçlü Brown-out Sıfırlama (LPBOR)
- Bekleme ve Hazırda Bekleme Düşük Güç Modları
- Pencereli Watchdog Zamanlayıcı (WWDT)
- Çevre Birimi Modülü Devre Dışı Bırakma (PMD)
- Çevre Birimi Pini Seçimi (PPS)
- Geliştirilmiş güç açma/kapama sıfırlama
- Yapılandırılabilir Güç Açma Zamanlayıcısı (PWRT)
PIC16F17146 Teknik Özellikleri
| Attribute | Value |
|---|---|
| Model | PIC16F17146 |
| Architecture | RISC |
| Temperature Range | -40°C to 85°C |
| Frequency | up to 32MHz |
| Voltage | 1.8V to 5.5V |
| Size | 6.5 x 9.4 x 1.5mm |
| Memory | up to 28 KB |
| EEPROM | up to 256 Bytes |
| SRAM | up to 2 KB |
| Timer | 3 x 16-bit, 3 x 8-bit |
| PWM | 4 x 16-bit |
| CLC | 4 |
| DAC | 2 x 8-bit |
| ADC | 1 x 12-bit |
| USART | 1 |
| I2C | 1 x 7/10-bit |
| SPI | 1 |
| Operational Amplifier | 1 |
| I/O Port | up to 35 pins |
| Package | 14-Pin PDIP, SOIC, TSSOP; 16-Pin VQFN; 20-Pin PDIP, SOIC, SSOP, VQFN |
PIC16F17146 Curiosity Nano Geliştirme Kartı Nasıl Programlanır?

Gerekli araçlar:
- MPLAB® X Entegre Geliştirme Ortamı (IDE)
- PIC16F17146 Curiosity Nano Kartı *1
- USB Kablosu * 1
PIC16F17146 Curiosity Nano - LED Yanıp Sönme Testi
Öncelikle, Microchip web sitesinden MPLAB X IDE v6.10'u indirip kurun:
https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide#


MPLAB® X IDE'yi kurduktan sonra, kullanıcı dostu bir arayüzle karşılaşırız. Yeni başlayanlar için hazırlanmış birkaç başlangıç kılavuzu bulunmaktadır.
Projemize devam edelim. Yeni bir proje oluşturmak için "Dosya > Yeni Proje" seçeneğine tıklayın.

Bu adımda, "Microchip Embedded > Standalone Project" seçeneğini seçiyoruz; bu seçenek, projenizi derlemek için bir IDE tarafından oluşturulan make dosyasını kullanır.

Ardından, "PIC16F17146" cihazını ve ilgili aracını seçin.

Geliştirme kartınız için derleyici araç zincirlerini seçin.

Yukarıdaki adımları tamamladıktan sonra, program kodunu yapılandırmak için "MCC" düğmesine tıklayın.

Projeniz için "MCC İçerik Yöneticisi Sihirbazı"nda bir içerik türü seçin; hangisini seçeceğinizden emin değilseniz lütfen resmi ayrıntılara bakın.

MCC işlevinin hızlı bir şekilde başlatılmasını sağlamak için, sistemi çevrimdışı moduna alabilirsiniz.

G/Ç'yi yapılandırmadan önce, PIC16F17146 Curiosity Nano Geliştirme Kartı şemasını dikkatlice okuyun. Şemadan şunu anlayabiliriz:
RC1 düşük seviye çıkış verdiğinde I/O yanar; IO'da harici çekme direnci bulunmadığından, yonga üzerindeki çekme direnci yapılandırılabilir ve bağlantı noktası basıldıktan sonra düşük seviye sinyali tetikler.

Nihai yapılandırma aşağıdaki gibidir. Bu yapılandırma, LED'in varsayılan olarak yanmasına neden olacaktır. LED'i varsayılan olarak kapatmak istiyorsanız, ilgili "Start High" seçeneğini işaretleyebilirsiniz; yani, güç verildiğinde IO çıkışı yüksek seviyededir.

G/Ç kesme işlevini kullanmayacaksak, yapılandırma burada sona erer; kodu oluşturmak için "Oluştur" düğmesine tıklayın.

Kod yazarken kod otomatik tamamlama işlevini kullanabiliriz; ayrıntılar şu şekildedir:

C/C++ Tanımlayıcıları için Otomatik Açılır Pencere Tetikleyicileri:
.;->;.*;->*;::;new ;A;a;B;b;C;c;D;d;E;e;F;f;G;g;H;h;I;i;J;j;K;k;L;l;M;m;N;n;O;o;P;p;Q;q;R;r;S;s;T;t;U;u;V;v;W;w;X;x;Y;y;Z;z;_;
Döngünün gövdesine kodu şu şekilde yazın:
while(1)
{
if(BUTTON_GetValue()==0)
{
while(BUTTON_GetValue()==0);
LED_Toggle();
}
}
LED programını derlemek ve PIC16F17146 Curiosity Nano geliştirme kartına yazmak için Çalıştır düğmesine tıklayın.

Ardından, MCC sekmesine geri dönün, projeye gecikme işlevini ekleyin; bunun için "Aygıt Kaynakları" > Zamanlayıcı > "DELAY" seçeneğini tıklamanız yeterlidir. Sonra da "Oluştur" düğmesine tıklayın.

Şimdi, main.c dosyasına "DE" harflerini yazdığımızda delay işlevi görünecektir.

Gecikme kodlarımız şu şekildedir; biri mikrosaniye, diğeri milisaniye cinsindendir:
while(1)
{
LED_Toggle();
DELAY_milliseconds(500);
}
Bu programı kaydedip çalıştırdığınızda, geliştirme kartımızdaki LED'in 1 saniyelik aralıklarla yanıp sönmeye başladığını görebilirsiniz.
PIC16F17146 Serisi ile Güç Tüketimini Azaltma
Günümüzün gömülü tasarımlarının çoğu, sensörler, amplifikatörler, veri dönüştürücüler veya diğer analog modüller içersin içermesin, analog sistemler içerir. Bu tasarımlar, tüketicilerin günlük elektronik cihazlarda rahatlık sağlamak amacıyla genellikle pille çalışır. Ancak analog sinyallerin sayısallaştırılması ve işlenmesi gerektiğinden, pil ömrü tasarımcılar için bir zorluk teşkil eder; bu durum, pille çalışan uygulamalar için ideal değildir. Aşağıda, güç tüketimini azaltmanın birkaç yolu yer almaktadır:
Temel Bağımsız Aygıtlar (CIP)
PIC16F17146 serisi MCU ile birçok analog tasarım, güç tüketimi sorunlarının üstesinden gelebilir. PIC® ve AVR® cihazları, çeşitli Çekirdek Bağımsız Çevre Birimleri (CIP) sunar. CIP'ler, Merkezi İşlem Birimi'nden (CPU) bağımsız olarak çalışabilen özel donanımlardır. PIC ve AVR cihazlarında çok sayıda CIP bulunduğundan, bunlar sensör arayüzleri, dalga formu kontrolü, zamanlama/ölçüm ve daha fazlasını yönetirken CPU'nun yükünü hafifletmek için kullanılabilir. Sonuç olarak, sistem düşük güç modlarında çalışabilir ve bu da tasarımın güç tüketiminde genel bir azalmaya yol açar.
Hesaplama Özelliğine Sahip Analog-Dijital Dönüştürücü (ADCC)
Enerji tasarrufu imkânları sunan analog çevre birimlerinden biri, Hesaplamalı Analog-Dijital Dönüştürücümüz (ADCC)dur. CPU, genel güç tüketimini azaltmak için çeşitli güç tasarrufu modlarına sahiptir. PIC16F17146 serisi MCU'nun sunduğu enerji tasarrufu özelliklerinden biri, MCU'nun büyük bir kısmının kapatıldığı, daha az güç tükettiği ve ADC dönüştürme sırasında ölçüm gürültüsünü azalttığı SLEEP modudur. ADCC, donanımın uyku modunda çalışmasını sağlayan özel bir osilatöre sahiptir. Bir uyandırma tetikleyicisi etkinleştirildiğinde, CPU kısa bir süre sonra çalışmaya devam eder.
Bekleme modu ve Doze modu
PIC16F17146 serisi MCU'ların sunduğu diğer güç tasarrufu modları arasında Bekleme modu ve Uyku modu bulunmaktadır. Bekleme modunda, çevre birimleri aktif haldeyken CPU diğer tüm işlemleri durdurur; Uyku modunda ise CPU, azaltılmış komut saat hızıyla çalışır.
Çevresel Modül Devre Dışı Bırakma (PMD)
Çevresel Modül Devre Dışı Bırakma (PMD), MCU’nun sunduğu bir başka özelliktir. Etkinleştirilmemiş olsalar bile, kullanılmayan çevresel aygıtlar az miktarda parazitik güç tüketir. PMD’yi etkinleştirerek, kullanıcılar kullanılmayan çevresel aygıtları etkinleştirebilir veya devre dışı bırakabilir. Bu çevresel aygıtlar devre dışı bırakıldığında, MCU mümkün olan en düşük güç durumunda çalışır ve toplam güç tüketimi azalır.
Gömülü sistem geliştirme alanında, PIC16F17146 serisi MCU, diğer Microchip 8 bit MCU'larla birlikte, kullanıcılara gömülü sistemlerin güç tüketimini optimize etmek için çok sayıda seçenek sunar. Daha fazla bilgi edinmek ve bir sonraki tasarımınızda düşük güç tüketimli bir uygulama nasıl gerçekleştirileceğini keşfetmek için, birçok düşük güç tüketimli uygulama da dahil olmak üzere zengin bir proje yelpazesi sunan MPLAB® Discover'ı mutlaka inceleyin.




