PIC16F17146 Mikrodenetleyici: Özellikler ve Programlama

İçindekiler

PIC16F17146 Curiosity Nano Board Programming

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 Microcontroller (MCU)

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

AttributeValue
ModelPIC16F17146
ArchitectureRISC
Temperature Range-40°C to 85°C
Frequencyup to 32MHz
Voltage1.8V to 5.5V
Size6.5 x 9.4 x 1.5mm
Memoryup to 28 KB
EEPROMup to 256 Bytes
SRAMup to 2 KB
Timer3 x 16-bit, 3 x 8-bit
PWM4 x 16-bit
CLC4
DAC2 x 8-bit
ADC1 x 12-bit
USART1
I2C1 x 7/10-bit
SPI1
Operational Amplifier1
I/O Portup to 35 pins
Package14-Pin PDIP, SOIC, TSSOP; 16-Pin VQFN; 20-Pin PDIP, SOIC, SSOP, VQFN

PIC16F17146 Curiosity Nano Geliştirme Kartı Nasıl Programlanır?

2022 09 26 9 40 59
Görsel kaynağı: Microchip Technology | Mouser

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#

Downloading the MPLAB X IDE v6.10
Downloading the MPLAB X IDE v6.10
Installing MPLAB X IDE v6.10
Installing MPLAB X IDE v6.10

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.

Overview of MPLAB X IDE v6.10 User Interface
Overview of MPLAB X IDE v6.10 User Interface

Projemize devam edelim. Yeni bir proje oluşturmak için "Dosya > Yeni Proje" seçeneğine tıklayın.

Create a New Project in MPLAB X IDE
Create a New Project in MPLAB X IDE

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.

Choose a Standalone Project in MPLAB X IDE
Choose a Standalone Project in MPLAB X IDE

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

Select Device - PIC16F17146 Curiosity Nano
Select Device - PIC16F17146 Curiosity Nano

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

Select Compiler Toolchains
Select Compiler Toolchains

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

Open MCC Content Manager
Open MCC Content Manager

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.

Select MCC Melody
Select MCC Melody

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

Run MCC in Offline Mode
Run MCC in Offline Mode

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.

PIC16F17146 Curiosity Nano MCU Schematic
PIC16F17146 Curiosity Nano MCU Schematic

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.

PIC16F17146 Curiosity Nano Input Output (IO) Configuration
PIC16F17146 Curiosity Nano Input Output (IO) Configuration

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

Generate the Code of LED Blinking for PIC16F17146 Curiosity Nano
Generate the Code of LED Blinking for PIC16F17146 Curiosity Nano

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

Apply Code Completion for PIC16F17146 Curiosity Nano
Apply Code Completion for PIC16F17146 Curiosity Nano

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.

Program the Project PIC16F17146 Curiosity Nano
Program the Project PIC16F17146 Curiosity Nano

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.

Add the Delay Module Code to Project
Add the Delay Module Code to Project

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

Display Delay Function in main. c
Display Delay Function in main. c

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.

Abone ol

Aylık blog güncellemeleri, teknoloji haberleri ve vaka analizleri almak için abone listemize katılın. Asla spam göndermeyeceğiz ve istediğiniz zaman aboneliğinizi iptal edebilirsiniz.

Yazar Hakkında

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Yardıma mı ihtiyacınız var?

Scroll to Top

Anında Fiyat Teklifi

Instant Quote