PIC18F45K22 MİKRODENETLEYİCİSİ
PIC18F45K22 MİKRODENETLEYİCİSİ PIC18F serisi mikrodenetleyicilerin genel özellikleri 77 assembly komut PIC 16 ile uyumlu 2 Mbayt a kadar program bellek kapasitesi 4 Kbayt a kadar veri bellek kapasitesi 40 MHz e kadar çalışma frekansı 8x8 çarpma modülü 16-bit komut 8-bit veri 2 taneye kadar 8-bit zamanlayıcı ve 3 taneye kadar 16-bit zamanlayıcı 4 taneye kadar dış kesme 25mA giriş-çıkış akımı 5 taneye kadar yakala/karşılaştır/pwm modülü SPI bus ve 2 taneye kadar USART modülü PSP 10-bit analog-sayısal çevirici Düşük gerilim algılayan modül Gözlemci nesnesi devresi
PIC18F45K22 MİKRODENETLEYİCİSİ Bazı PIC18F serisi mikrodenetleyicilerde şu özellikler de bulunur: USB modülü Bazı mikrodenetleyiciler üzerinde USB denetleyici birim bulunur. Böylece mikrodenetleyicilerde USB arayüzü üzerinden harici birimlere bağlanması oldukça kolaylaşmış olmaktadır. CAN modülü CAN arayüzü günümüzde otomobil otomasyon sistemlerinde yaygın olarak kullanılmaktadır. Bazı mikrodenetleyici üzerinde CAN birimi bulunmaktadır. Böylece mikrodenetleyicinin CAN uygulamalarında kullanımı son derece kolaylaşmaktadır. LCD modülü Bazı mikrodenetleyiciler içerisinde LCD sürücü devreleri bulunur. Böylelikle bu mikrodenetleyiciler LCD ye doğrudan bağlanabilirler
Ethernet modülü PIC18F45K22 MİKRODENETLEYİCİSİ Bazı mikrodenetleyiciler üzerinde Ethernet kart birimi bulundurmaktadırlar. Böylece mikrodenetleyici ile tasarlanan sistemin Ethernet ağa bağlanmaları son derece kolaylaşmış olur. ZigBee modülü ZigBee arayüzü Bluetooth a benzeyen fakat çok ucuza üretilen ve bilhassa ev otomasyonlarında kullanılan bir telsiz sistemidir. Bazı PIC mikrodenetleyicilerde ZigBee denetleyici birimi bulunmaktadır. Bu tür mikrodenetleyicilerin telsiz uygulamalarında kullanımı oldukça kolaydır. Motor kontrol modülü Bazı PIC mikrodenetleyiciler üzerinde motor kontrol arayüzü bulunmaktadır. Bu tür mikrodenetleyicileri motora bağlayıp çalıştırmak oldukça kolaydır.
PIC18F45K22 MİKRODENETLEYİCİSİ Donanımsal Özellikler Yüksek performanslı RISC CPU 32 Kbayt Flash program belleği 16384 single-word komut 256 Bayt EEPROM veri belleği 1536 Bayt SRAM 16-bit komut 8-bit veri 8x8 çarpma modülü 31 katlı yığın (stack) yapısı Esnek Osilatör Yapısı Yüksek duyarlıklı PLL içeren 4 kristal osilatör modu 64 Mhz e kadar iki farklı harici clock modu Timer1 kullanılarak 32KHz lik ikinci osilatöre sahip olma özelliği Fail-safe clock monitor ile herhangi bir osilatörün durması halinde güvenle kapanma desteği 31KHz-8MHz frekans desteği
PIC18F45K22 MİKRODENETLEYİCİSİ Analog Özellikler 10 bit lik 30 kanallı A/D çevirici (ADC) 2 adet analog karşılaştırıcı modülü DAC modülü Güç Tasarruf Modları Uyku modu 20nA Watchdog timer 300nA Timer1 osilatörü 800nA Özel Mikrodenetleyici Özellikleri 2.3V 5.5V arası çalışabilme ICD (In Circuit Debug) ICSP (In Circuit Serial Programming) Yazılım kontrolü ile kendi kendini programlayabilme Geliştirilmiş Watchdog Timer HLVD (High-Low Voltage Detection) modül Programlanabilen Brown-Out Reset (BOR) CTMU modülü (Charge Time Measurement Unit)
PIC18F45K22 MİKRODENETLEYİCİSİ Çevrebirim Özellikleri 35 adet giriş/çıkış (I/O) pini - 1 adet sadece giriş pini (A, B, C, D, E) Port pinlerinden yüksek akım alabilme ve verebilme 33 adet kesme kaynağı 3 adet programlanabilir harici kesme 4 adet değişim değişim kesmesi 3 adet 8-bit timer 4 adet 16-bit timer SR Latch: Çoklu set/reset giriş seçeneği 2 adet CCP (Capture/Compare/PWM) 3 adet ECCP (Enhanced CCP) 2 MSSP (Master Synchronous Serial Port) (3-wire SPI ve I2C) 2 adet EUSART
PIC18F45K22 MİKRODENETLEYİCİSİ
PIC18F45K22 MİKRODENETLEYİCİSİ Pin Diyagramı
PIC18F45K22 MİKRODENETLEYİCİSİ Pin No Pin Adı İşlevi Açıklama 2 RA0/C12IN0-/AN0 3 RA1/C12IN1-/AN1 4 5 RA2/C2IN+/AN2/ DACOUT/VREF- RA3/C1IN+/AN3/ VREF+ RA0 C12IN0- AN0 Analog giriş 0 RA1 C12IN1- C1 ve C2 karşılaştırıcıları eviren giriş AN1 Analog giriş 1 RA2 C2IN+ C1 ve C2 karşılaştırıcıları eviren giriş AN2 Analog giriş 2 DACOUT VREF- RA3 C1IN+ C2 karşılaştırıcı evirmeyen giriş DAC referans çıkışı A/D referans gerilim (low) giriş AN3 Analog giriş 3 VREF+ C1 karşılaştırıcı evirmeyen giriş A/D referans gerilim (high) giriş
PIC18F45K22 MİKRODENETLEYİCİSİ Pin No Pin Adı İşlevi Açıklama 6 7 RA4/C1OUT/ SRQ/T0CKI RA5/C2OUT/SRNQ/ SS1/HLVDIN/AN4 14 RA6/CLKO/OSC2 13 RA7/CLKI/OSC1 RA4 C1OUT SRQ T0CKI RA5 C2OUT SRNQ SS1 HLVDIN C1 karşılaştırıcı çıkışı SR latch Q çıkışı Timer 0 harici saat girişi C2 karşılaştırıcı çıkışı SR latch Q çıkışı AN4 Analog giriş 4 RA6 CLKO OSC2 RA7 CLKI OSC1 SPI ikincil seçim girişi (MSSP1) High-Low Voltage Detect (yüksek-düşük gerilim algılayıcı) girişi Saat çıkışı Osilatör kristal çıkışı Harici saat kaynağı girişi Osilatör kristal girişi
PIC18F45K22 MİKRODENETLEYİCİSİ Pin No Pin Adı İşlevi Açıklama 33 34 35 RB0/INT0/FLT0/ SRI/AN12 RB1/INT1/ C12IN3-/AN10 RB2/INT2/ CTED1/AN8 RB0 INT0 Harici kesme 0 FLT0 SRI ECCP Auto-Shutdown için PWM Fault girişi SR latch girişi AN12 Analog giriş 12 RB1 INT1 Harici kesme 1 C12IN3- AN10 Analog giriş 10 RB2 C1 ve C2 karşılaştırıcıları eviren giriş INT2 Harici kesme 2 CTED1 CTMU Edge 1 girişi AN8 Analog giriş 8
PIC18F45K22 MİKRODENETLEYİCİSİ Pin No Pin Adı İşlevi Açıklama 36 37 38 RB3/CTED2/P2A/ CCP2/C12IN2-/AN9 RB4/IOC0/ T5G/AN11 RB5/IOC1/P3A/CCP3 /T3CKI/T1G/AN13 RB3 CTED2 P2A CCP2 C12IN2- CTMU Edge 2 girişi AN9 Analog giriş 9 RB4 IOC0 T5G Geliştirilmiş CCP2 PWM çıkışı Capture 2 girişi / Compare 2 çıkışı / PWM 2 çıkışı C1 ve C2 karşılaştırıcıları eviren giriş Değişim kesmesi pini Timer 5 harici saat kapı girişi AN11 Analog giriş 11 RB5 IOC1 P3A CCP3 T3CKI T1G Değişim kesmesi pini Geliştirilmiş CCP3 PWM çıkışı Capture 3 girişi / Compare 3 çıkışı / PWM 3 çıkışı Timer 3 saat girişi Timer 1 harici saat kapı girişi AN13 Analog giriş 13
PIC18F45K22 MİKRODENETLEYİCİSİ Pin No Pin Adı İşlevi Açıklama 39 RB6/IOC2/PGC 40 RB7/IOC3/PGD 15 16 RC0/P2B/T3CKI/T3 G/T1CKI/SOSCO RC1/P2A/ CCP2/SOSCI RB6 IOC2 PGC RB7 IOC3 PGD RC0 P2B T3CKI T3G T1CKI SOSCO RC1 P2A CCP2 SOSCI Değişim kesmesi pini In-Circuit debugger ve ICSP programlama saat pini Değişim kesmesi pini In-Circuit debugger ve ICSP programlama data pini Geliştirilmiş CCP1 PWM çıkışı Timer3 saat girişi Timer3 harici saat kapı girişi Timer1 saat girişi İkincil osilatör çıkışı Geliştirilmiş CCP2 PWM çıkışı Capture 2 girişi / Compare 2 çıkışı / PWM 2 çıkışı İkincil osilatör girişi
PIC18F45K22 MİKRODENETLEYİCİSİ Pin No Pin Adı İşlevi Açıklama 17 18 23 RC2/CTPLS/P1A/ CCP1/T5CKI/AN14 RC3/SCK1/ SCL1/AN15 RC4/SDI1/ SDA1/AN16 24 RC5/SDO1/AN17 RC2 CTPLS P1A CCP1 T5CKI CTMU darbe üretec çıkışı Geliştirilmiş CCP1 PWM çıkışı Capture 1 girişi / Compare 1 çıkışı / PWM 1 çıkışı Timer5 saat girişi AN14 Analog giriş 14 RC3 SCK1 SCL1 AN15 Analog giriş 15 RC4 SDI1 SDA1 SPI mod (MSSP) için senkron seri saat giriş çıkışı I2C mod (MSSP) için senkron seri saat giriş çıkışı SPI data girişi (MSSP) I2C data giriş çıkışı (MSSP) AN16 Analog giriş 16 RC5 SDO1 SPI data çıkışı (MSSP) AN17 Analog giriş 17
PIC18F45K22 MİKRODENETLEYİCİSİ Pin No Pin Adı İşlevi Açıklama 25 26 19 20 RC6/TX1/ CK1/AN18 RC7/RX1/ DT1/AN19 RD0/SCK2/ SCL2/AN20 RD1/CCP4/SDI2/ SDA2/AN21 RC6 TX1 CK1 EUSART asenkron verici çıkışı EUSART senkron saat pini AN18 Analog giriş 18 RC7 RX1 DT1 EUSART asenkron alıcı girişi EUSART senkron data pini AN19 Analog giriş 19 RD0 SCK2 SCL2 AN20 Analog giriş 20 RD1 CCP4 SDI2 SDA2 SPI mod (MSSP) için senkron seri saat giriş çıkışı I2C mod (MSSP) için senkron seri saat giriş çıkışı Capture 4 girişi / Compare 4 çıkışı / PWM 4 çıkışı SPI data girişi (MSSP) I2C data giriş çıkışı (MSSP) AN21 Analog giriş 21
PIC18F45K22 MİKRODENETLEYİCİSİ Pin No Pin Adı İşlevi Açıklama 21 RD2/P2B/AN22 22 27 RD3/P2C/ SS2/AN23 RD4/P2D/ SDO2/AN24 28 RD5/P1B/AN25 RD2 P2B Geliştirilmiş CCP2 PWM çıkışı AN22 Analog giriş 22 RD3 P2C SS2 Geliştirilmiş CCP2 PWM çıkışı SPI ikincil seçim girişi (MSSP) AN23 Analog giriş 23 RD4 P2D SDO2 Geliştirilmiş CCP2 PWM çıkışı SPI data çıkışı AN24 Analog giriş 24 RD5 P1B Geliştirilmiş CCP1 PWM çıkışı AN25 Analog giriş 25
PIC18F45K22 MİKRODENETLEYİCİSİ Pin No Pin Adı İşlevi Açıklama 29 30 8 RD6/P1C/TX2/ CK2/AN26 RD7/P1D/RX2/ DT2/AN27 RE0/P3A/ CCP3/AN5 9 RE1/P3B/AN6 RD6 P1C TX2 CK2 Geliştirilmiş CCP1 PWM çıkışı EUSART asenkron verici çıkışı EUSART senkron saat pini AN26 Analog giriş 26 RD67 P1D RX2 DT2 Geliştirilmiş CCP1 PWM çıkışı EUSART asenkron alıcı girişi EUSART senkron data pini AN27 Analog giriş 27 RE0 P3A CCP3 AN5 Analog giriş 5 RE1 P3B Geliştirilmiş CCP3 PWM çıkışı Capture 3 girişi / Compare 3 çıkışı / PWM 3 çıkışı AN6 Analog giriş 6 Geliştirilmiş CCP3 PWM çıkışı
PIC18F45K22 MİKRODENETLEYİCİSİ Pin No Pin Adı İşlevi Açıklama RE2 10 RE2/CCP5/AN7 CCP5 Capture 5 girişi / Compare 5 çıkışı / PWM 5 çıkışı AN7 Analog giriş 7 RE3 Dijital giriş 1 RE3/VPP/MCLR VPP Programlama gerilim girişi MCLR Aktif-0 Master-Clear (Reset) girişi 11,32 VDD VDD Pozitif güç kaynağı 12,31 VSS VSS Toprak
OSİLATÖR MODÜLÜ PIC belleğinde bulunan komutların çalıştırılması için bir kare dalga sinyaline ihtiyaç vardır. Bu sinyale saat sinyali denir. Saat sinyalinin hızı komutların işleniş hızını da arttırır. 13 ve 14. pinler osilatör girişi olarak kullanılırlar. Birincil saat modülü 6 saat kaynağından birini birincil saat olarak sağlamak için konfigüre edilebilir. Saat osilatörü tipleri şunlardır: 1. RC: Harici direnç-kapasite 2. LP: Düşük-güç kristali 3. XT: Kristal-rezonatör 4. INTOSC: Dahili osilatör 5. HS: Yüksek-hız kristal rezonatör 6. EC: Harici saat HS ve EC osilatör devreleri FOSC<3:0> kullanılarak güç tüketimi ve osilatör hızı için konfigüre edilebilir.
OSİLATÖR MODÜLÜ Birincil saat modları CONFIG1H registerının FOSC<3:0> bitleri kullanılarak seçilebilir. Birincil saat işletimi için aşağıdaki bitler de kullanılır. 1. PRICLKEN (CONFIG1H<5>) 2. PRISD (OSCCON2<2>) 3. PLLCFG (CONFIG1H<4>) 4. PLLEN (OSCTUNE<6>) 5. HFOFST (CONFIG3H<3>) 6. IRCF<2:0> (OSCCON<6:4>) 7. MFIOSEL (OSCCON2<4>) 8. INTSRC (OSCTUNE<7>)
OSİLATÖR MODÜLÜ Osilatör kontrolü: OSCCON, OSCCON2 VE OSCTUNE registerları cihazın saat işletiminin kontrolünde rol oynarlar. Ana sistem saat seçimi: Main System Clock Selection bitleri SCS<1:0> ana saat kaynağını seçer. Dahili frekans seçimi: Internal Oscillator Frequency Select bitleri IRCF<2:0> dahili osilatör bloğunun frekans çıkışını seçer.
OSİLATÖR MODÜLÜ Saat Kaynağı Modları: Harici : EC, LP, XT, HS, RC modları (harici devreye ihtiyaç duyarlar) Dahili: Osilatör bloğu (Yüksek, orta ve düşük frekans) Sistem saati OSCCON registerının SCS<1:0> bitleri kullanılarak seçilebilir. Harici Saat Modları: EC (External Clock) Mode
OSİLATÖR MODÜLÜ LP (Low Power Crystal), XT(Crystal Resonator) ve HS (High-Speed Crystal Resonatör) Modu: Bu modlar Kuartz kristal rezonatörlerin ve seramik rezonatörlerin OSC1 ve OSC2 pinlerine bağlanmalarını destekler.
OSİLATÖR MODÜLÜ RC (External RC) Modları: RC Mod RCIO Mod Harici RC modu harici bir RC devresinin kullanılması ile elde edilir. Bu modda RC devresi OSC1 pinine bağlanır. OSC2 pini ise saat çıkışı veya giriş/çıkış pini olarak kullanılabilir.
OSİLATÖR MODÜLÜ Dahili Saat Modları: Osilatör modülü sistem saat kaynağı olarak seçilebilen ve konfigüre edilebilen üç tane bağımsız dahili osilatöre sahiptir. 1. HFINTOSC (High-Frequency Internal Oscillator, Yüksek Frekans Dahili Osilatör) Fabrika ayarlıdır 16 MHz de çalışır. 2. MFINTOSC (Medium-Frequency Internal Oscillator, Orta Frekans Dahili Osilatör) Fabrika ayarlıdır 500 KHz de çalışır. 3. LFINTOSC (Low-Frequency Internal Oscillator, Düşük Frekans Dahili Osilatör) Fabrika ayarlıdır 31.25 KHz de çalışır. OSCTUNE registerı kullanılarak frekanslar ayarlanabilir. Sistem saat hızı OSCCON IRCF<2:0> ile ayarlanabilir Sistem saati dahili veya harici olarak OSCCON SCS<1:0> bitleri ile seçilebilir.
OSİLATÖR MODÜLÜ Saat modları CONFIG1H registerının FOSC<3:0> bitleri kullanılarak seçilir. Konfigürasyon registerı dahili osilatör bloğunu birincil osilatör olarak ayarlamada kullanılır. RA6 ve RA7 uçları normal I/O olarak kullanılmak istendiğinde bu osilatör tipi seçilir. Mode seçimi ilgili pinin (OSC2/CLKOUT/RA6) hangi amaçla kullanılacağını belirler. I/O (RA6) veya Fosc/4 (CLKOUT). CLKOUT ucundan dahili osilatör frekansının ¼ ü alınır. Bu saat çıkışı PIC ile eşzamanlı çalışması istenen harici donanımlara saat girişi olarak bağlanabilir. Her iki durumda da OSC1/CLKIN/RA7 pini genel amaçlı I/O pini olarak kullanılır.
GÜÇ YÖNETİM MODLARI PIC18F45K22 daha etkin güç yönetimi için 7 tane işletim modu sunar. Bu güç yönetim modları 3 kategoride toplanabilir. Run Modes (Çalışma Modları) Idle Modes (Boşta Modları) Sleep Mode (Uyku Modu) Güç yönetim modunun seçimi iki duruma bağlıdır: 1. CPU ya saat bağlı olup olmadığı 2. Saat kaynağının seçimi IDLEN biti (OSCCON<7>) CPU saat durumunu kontrol eder SCS<1:0> bitleri (OSCCON<1:0>) saat kaynağını seçer.
GÜÇ YÖNETİM MODLARI
GÜÇ YÖNETİM MODLARI RUN modu: Bu çalışma modunda mikrodenetleyici normal çalışmasını yapar. Kullanıcı tarafından yapılandırılan bütün çevresel birimler aktiftir. SLEEP modu: IDLEN bitinin sıfırlanması ile bu moda geçilir. Bu modda seçilen osilatör kapatılır. Bu çalışma modundan kesme, WDT veya RESET işlemi sonucu çıkılır. IDLE modu: Bu modda çevresel donanım birimleri çalışmaya devam ederken CPU birimi isteğe bağlı olarak kapatılabilir. Bu çalışma modundan kesme, WDT veya RESET işlemi sonucu çıkılır.
RESET Bir PIC in RESET (yeniden başlama, sıfırlama) yapılması çalışan programın kesilerek başlangıç noktasından itibaren tekrar çalışmaya zorlanması demektir. Reset işlemlerinin bazıları donanımsal bazılarıda yazılımsal yapılır. PIC18F45K22 de 8 farklı reset uygulanabilir. Bu uygulamaların hangisinin aktif olacağı PIC in içerisindeki bir registera (configuration registers) yazılan veri bitleri ile seçilir. 1. Power-on Reset (POR) 2. Normal çalışma modunda MCLR girişi ile uygulanan reset 3. Güç yönetimi modunda MCLR girişi ile uygulanan reset 4. Watchdog Timer (WDT) reset 5. Programlanabilir Brown-Out Reset (BOR) 6. Reset komutu ile 7. Yığın dolu (Stack full) reset 8. Yığın yetersizlik (Stack underflow) reset
RESET Reset olayları RCON (Reset Control) registerı aracılığı ile düzenlenir.
RESET Power-on Reset:PIC ın besleme uçlarına gerilim uygulandıktan sonra PIC uçlarındaki gerilim uygu seviyeye ulaştığında program başlangıç adresinden itibaren normal çalışmasına başlar. Master Clear (MCLR) Reset: PIC ın MCLR ucu programın kesilip, kasti olarak başlangıca döndürülmesiiçin kullanılır. Bu pin değeri 0 yapıldığı an reset oluşur. MCLR pini MCLRE Configuration Bit kullanılarak dijital input olarak da kullanılabilir. Brown-out Reset: PIC içerisinde bulunan BOR devresi PIC in besleme geriliminin belirli bir süre bıyunca belirli bir gerilim değerinin altına düşmesiyle çalışmaya başlar ve PIC yeniden başlatılır. BOR devresi CONFIG2L registerının bazı pinleri ile kontrol edilir.
RESET