EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ 1
Mikrodenetleyici Anatomisi Çevre Birimler (Peripherals) Timers Watchdog Timer Program sonsuz döngüye girdiğinde işlemciyi resetler İletişim Arayüzleri Veri için Kalıcı Bellek Analog Sayısal Çevirici Sayısal Analog Çevirici Gerçel Zaman Saatı Monitor, Background debugger ve embedded emulator Programı µc ye indirmek ve geliştirme aşamasında bilgisayar ile haberleşmek 2
Geçici / Kalıcı Bellek Geçici (Volatile): Random Access Memory RAM Static RAM Dinamik RAM Kalıcı (nonvolatile) Read Only Memory ROM Masked ROM: Veri üretim aşamasında yazılır. EPROM: Elektriksel olarak programlanır fakat ultraviole ile silinir OTP (One-time programmable memory): Optik penceresi olmayan EPROM dur. Flash Memory: Elektriksel olarak programlanır ve silinir. 3
Yazılım Makine Kodu Her komut bir OpCode a sahiptir. Assembly Dili Her mimari için farklıdır. Daha efektif ve verimli kod fakat yeni derleyiciler ile kullanımı azalıyor. Disassembly : Makine kodun assembly koda dönüştürülmesi C Derleyici C kodunu makine koduna dönüştürür. C++ Daha büyük sistemlerde kullanılan nesneye yönelik dildir. Küçük mikrodenetleyiciler sınırlandırılmış bir set ile çalışabilir. 4
MSP 430 Düşük güç gerektiren uygulamalar için tasarlanan 16 bitlik von Neumann mimarisine sahip mikrodenetleyicidir. 16 bit adres bus == 2 16 = 64 KB bellek (MSP430X haric) RISC gibi (Bellekden doğrudan aritmetik işlem yapabilir) Özellikler: Çok sayıda register ile küçük ve verimli CPU Düşük güç moduna sokmak kolaydır. Değişik düşük güç modları mevcuttur. Geniş saat seçeneği Geniş çapta çevre birim Doğrudan LCD aygıtı sürme 5
MSP 430 MSP430x1xx : Genel amaçlı, basit versiyon MSP430F2xx : yeni genel amaçlı versiyon MSP430x3xx : Orijinal, eski aile MSP430x4xx : 160 segmana kadar LCD sürebilir. MSP430X : Extra bellek 6
MSP430 Mimarisi Dahili İşaret Kaynakları MCLK : Master Clock olarak adlandırılır. CPU ve birkaç çevre birim tarafından kullanılan clock kaynağıdır. SMCLK : Sub-system Master Clock olarak adlandırılır. Hız gerektiren çevre birimler tarafından kullanılan clock kaynağıdır. ACLK : Auxiliary Clock olarak adlandırılır. Çevre birimler tarafından kullanılır. SMCLK dan farkı daha düşük frekans ile çalışan çevre birimler tarafından kullanılmasıdır.(rtc gibi çevre birimlerde) MSP430 Mimarisi Temel Blok Diyagram 7
MSP430 Ailesi 8
MSP430 Ailesi Özellikler 9
MSP430 Model Numaraları 10
Yazılım Geliştirme Araçları IAR 4 KB Kod Limiti - Görsellik zayıf - Kullanımı kolay - Kod optimizasyonu çok başarılı - C++ desteği Code Composer Studio 16 KB Kod Limiti - Eclipse tabanlı bir IDE, görsellik çok iyi - Kod optimizasyonu IAR kadar başarılı değil - Kullanımı IAR'dan kolay - C++ desteği 11
MSP430 LaunhPad 4.3 $ Kutu içerisinde USB Kablosu, 32.768kHz kristali ve MSP430G2211 mikrodenetleyicisi mevcut Spy-Bi-Wire Debugger 20 Pinlik diğer G2xx serisi mikrodenetleyicileri destekleme 2 LED, 1 Buton 12
MSP430 Paket MSP430F2003 ve F2013 Paketi ve Pin Yapısı 13
MSP430 Pin Vcc, Vss : Besleme gerilimi ve toprak P1.0 P1.7, P2.6, P2.7 : P1 ve P2 portlarının sayısal giriş çıkış uçları TACKL, TA0 ve TA1: Timer_A ile ilişkililer TACKL : Zamanlayıcının saat girişi olarak kullanılır. TA0, TA1: Zamanlayıcı için Giriş ve Çıkış olarak kullanılır. A0-, A0+, A4- ve A4+ : ADC girişleri ACLK, SMCLK : Mikrodenetleyicinin saat sinyali çıkışları. SCLK, SDO, SCL: SPI veya I2C kullanarak harici aygıtlar ile haberleşme sağlayan evrensel seri arayüz için kullanılırlar. XIN, XOUT: Kristal için bağlantılardır. RST : Aktif negatif (Active Low) silme NMI (Nonmaskable Interrupt Input): Harici kesme ucu TCK,TMS,TCLK,TDI,TDO ve TEST: JTAG arayüz. 14
MSP430 Paket MSP430G2x31 Paketi ve Pin Yapısı 15
MSP430 Paket MSP430G2x53 Paketi ve Pin Yapısı 16
MSP430G2553 Pin 17
MSP430G2553 Pin 18
MSP430G2553 Pin 19
MSP430G2553 Pin 20
MSP430G2553 Pin 21
MSP430 Fonksiyonel Blok Diyagram MSP430F2003 ve F2013 Fonksiyonel Blok Diyagram 22
MSP430 Fonksiyonel Blok Diyagram CPU ve destek donanım CPU Emulation, JTAG Arayüzü ve Spy-Bi Wire: Programı indirirken bilgisayar ile haberleşme için kullanılır. Clock Memory Address Bus (MAB) ve Memory Data Bus (MDB) Flash ve ROM Giriş/Çıkış Port Arayüzleri Timer_A Watchdog Timer Evrensel Seri Arayüz Sigma-Delta ADC Brownout Protection: Besleme gerilimi tehlikeli seviyelere düşerse aktiflenir. 23
MSP430 Fonksiyonel Blok Diyagram MSP430G2x31 Fonksiyonel Blok Diyagram 24
MSP430 FonksiyonelBlokDiyagram MSP430G2x53 Fonksiyonel Blok Diyagram 25
MSP430 Bellek Bellek registerların veya yuvaların bir dizisi. Her register veya yuva 8 bit veya 1 byte tutar. MAB 16 bit olduğu için bellek 0x0000 0xFFFF arası adreslenir. Little-endian Order Big-endian Order MSP430, LEO kullanır. 26
Bellek Organizasyonu RAM, değişkenler için kullanılır. Bootstrap loader, çoğunlukla PC nin COM portunda haberleşme için kullanılan program Flash, geçici olmayan veri depolama Code memory, programları tutar 27
Bellek Organizasyonu MSP430G2553 Bellek Organizasyonu 28
Merkezi İşlem Unitesi ALU 16 Register (R0-R15) Komutların kodunu çözen ve gerçekleyen lojik Maksimum saat frekansı 16 MHz PC: Yürütülecek komutun adresini içerir. SP: Dönüş adresi içerir, stack işlemleri SR: 3 kategoriye ayrılan bayrakların kümesini içerir. C, Z, N, V CG: Sık kullanılan 6 sabit GPR: Genel amaçlı kullanım, adres yada data 29
BellekdeTemsilli Giriş/Çıkış Port: Sayısal giriş/çıkış için kullanılan pin topluluğu P1, P2 P1.0 P1.7, P2.0 P2.7 Bellekde Temsilli I/O: Portlar bellekde özel registerlar ile temsil edilir. Her port değişik registerlara sahiptir. P1IN : Giriş veri registerı P1OUT: Çıkış veri registerı P1DIR: Bit 0 ise ilgili pin giriş, bit 1 ise ilgili pin çıkış olarak kullanılır. 30
Saat Üreteci Senkron sistemler için temel bir elemandır. Kare dalga formunda, kenarlar ile değişik bileşenleri tetikler ve senkronizasyonu sağlar. İki farklı karakterde saat gereklidir. CPU u süren hızlı saat, enerjinin korunumu için hızlı başlamalı ve durmalıdır, fakat hassas olması gerekmez. Gerçek zamanı izlemek için sürekli çalışan yavaş saat, çok az güç kullanır ve hassas olmalıdır. Önemli saat sinyali üreteçleri Kristal : 2. tip saat için Direnç ve Kapasitör: 1. tip saat için 31
Saat Üreteci MSP430 dahili 3 saate sahiptir. Master clock MCLK CPU ve bazı çevre birimleri için kullanılır. DCO (digital controlled oscilator) dan beslenir. MHz değerlerinde frekanslıdır. Subsystem master clock SMCLK Çevre birimlerine dağılır. MCLK ile aynı frekans değerine sahiptir. DCO (digital controlled oscilator) dan beslenir. Auxiliary clock ACLK Çevre birimlerine dağılır. Düşük frekanslı kristalden elde edilir (tipik 32 khz) Çevre birimleri saat işaretlerini ya SMCLK dan yada ACLK dan seçer. 32
Interrupt Reset Kesmeler (Interrupts) Yazılım tarafından ilklendirilmelerine rağmen donanım tarafından üretilirler. Genellikle acil cevap verilmesinin gerektiği olayların ortaya çıktığını belirtirler. Kesme ortaya çıktığında ISR (interrupt service routine) yürütülür. Kesmelerin ikinci kullanımı, düşük güç durumundan işlemciyi uyandırmaktır. Tekrar Kurma (Reset): Donanım tarafından üretilir. Güç uygulandığında yada normal operasyonun süremeyeceği feci bir durum ortaya çıktığında uygulanır. Aygıtın iyi bilinen durumla (tekrar) başlamasını sağlar. 33
Interrupt Reset Kesme veya reset ardından hangi komutun alınacağı CPU a söylenmelidir. Bu komutun adresine vektör denir ve değişik şekillerde belirtilir. MSP430 vectored interrupts kullanır. Her ISR kendi vektörüne sahiptir. Bu vektörler, program belleğinin sonunda yer alan vektör tablonun önceden tanımlı bir adresinde depolanır. Vektör tablosu belirli sabit bir adrestedir fakat ISR lar belleğin değişik bölgelerinde depolanabilir. 34
Faydalı Dokümanlar Data Sheet Front page, Device pin-out, functional block diagram, terminal functions, short-form description, special function register, memory organization, flash memory, peripherals, peripherial file map, electrical characteristics... Family User s Guide FET User s Guide Application Notes Code Examples 35