320volt blog üzerinde MSP430 Projeleri, devreler kategorisini oluşturdum ve elimden geldiği kadar faydalı içerik paylaşmaya çalışıyorum. MSP430 Texas Instruments’ın ürettiği bir mikrodenetleyici Microchip PIC, Atmel gibi devlere büyük rakip.
Bu yazı Tevfik KADIOĞLU tarafından hazırlanan tezden alınmıştır MSP430 hakkında çok detaylı Türkçe bir kaynak olduğu için bu bölümü ayrı tutmak istedim tez daha önce paylaşılmıştı. Hazırlayan emeği geçen kişilere teşekkür ederim bilgiler MSP430 ile ilgilenen kişilerin çok işine yarayacak.
MSP430F169 TEXAS INSTRUMENTS
· 2 tane16 bit sayıcı,· Hızlı 12 bit a/d dönüştürücü,
· Çift 12 bit d/a dönüştürücü
· 2 tane UART, SPI, I2C arayüzeyleri
· DMA ve I/O
MSP430/16x serileri halinde ailere sahiptir. Tipik uygulamaları ise;
· Sensör Sistemleri,
· Endüstriyel Kontrol Uygulamaları,
· Mobil Aletleri Dçermektedir.
MSP430 serisi çesitli uygulamalara yönelik farklı modüller içeren ultra düşük güçlü bir mikrodenetleyici ailesidir. Düşük güç tüketimi sayesinde temelde pilli uygulamalar için tavsiye edilen bir çözümdür.
· MSP430 16-bit RISC Mimarisi,
· 16-bit CPU tümlesik saklayıcı ve sabit üreteç ile maksimum kod verimi elde edilmektedir,
· Sayısal kontrollü osilatör 6 µs’den daha kısa sürede stabil çalısmaya baslayabilmektedir,
· MSP430x16x serileri iki tümlesik 16 bit zamanlayıcı,
· 12-bit A/D çevirici,
· 12-bit D/A çevirici,
· 2 seri haberlesme ara yüzü(USART)
· DMA ve 48 I/O pine sahiptir.
Analog sinyalleri yakalayan algılayıcı sistemleri içeren tipik uygulamalarda sayısal değerlere dönüştürülüp işlem yapılır ve veri ana sisteme iletilir. Zamanlayıcılar, sayısal motor kontrolü, tasınabilir sayaçlar, optik networklerin kontrolü gibi endüstriyel uygulamalar hep aynı temel mantık vardır. Analog bilgi alınır, sayısala dönüstürülür gerekirse işlenir ve iletilir.
MSP430F169 Özellikleri
· Düsük besleme voltajı aralığı 1,8V … 3,6V,
· Asırı düsük güç tüketimi;
o Aktif mod=1,1 µA 1 MHZ’ de 2,2V’da
o Hazır Bekleme modu
o Kapalı modu (RAM saklama) =0,2 µA
· 6 µs ‘den daha az zamanda Stand-by modundan uyanma,
· 16 bit RDSC yapısı ,125 ns komut çevrim zamanı,
· 3 kanal dahili DMA,
· 12 bit A/D dönüstürücü dahili referans ile model ve tutma ve autoscan özelliği,
· Çift 12 bit DA senkronizasyonlu dönüstürücü,
· 3 tutma karsılastırma saklayıcıları ile 16 bit zamanlama,
· 3 ve 7 karsılastırma saklayıcıları ile zamanlama,
· Seri haberlesme arayüzü (USART0 ve USART1) istenirse SPI, I2C veya UART modunda çalıstırılabilir.
· Giriş gerilimini kontrol eden denetleyici,
· 60Kb+256byte Flash Memory,
· 2Kb RAM.
MSP430F169 ‘un Bacak Tasarımı
MSP430F169 ‘un Fonksiyonel Blok Diyagramları
CPU Tanıtımı
MSP430 CPU’su 16 bit RISC mimarisine sahiptir. Program saklayıcısına ilaveten durum saklayıcısı ve yığın isaretçisi bulunur. Azaltılmıs komut uygulama zamanı sağlayan 16 bit saklayıcılar ile entegre edilmistir. Saklayıcıdan saklayıcıya operasyon uygulama zamanı, CPU saatinin bir çevrimidir. Saklayıcılarının, R0’dan R3‘e kadarı özel saklayıcılar olan; program sayacı, yığın isaretçisi, durum saklayıcısı ve sabit üreteci olarak ayrılmıstır.
Komut Seti
Komut seti 3 formatlı 51 tane komut içerir ve 7 adresleme modundan olusmaktadır. Her bir komut ile çalıstırılırlar. Tablo 10’da, komut formatlarında 3 çesit operandında örnekleri verilmistir. Tablo 11‘de adresleme modları listelenmistir.
MSP430 Çalısma Modları
MSP430, biri aktif ve diğerleri de düsük güç olmak üzere yazılımsal olarak seçilebilir 6 farklı çalısma moduna sahiptir. Kesme olayı 5 düsük güç modundan mikrodenetleyiciyi uyandırır, istenilen servisi uygular ve istenilen düsük güç moduna geri döner. Asağıda 6 tane yazılım ile seçilebilen çalısma modları vardır. Burada belirtmek gerekir ki, bu çalısma modları modüllerin çalısmasını doğrudan etkilemez. Etkilemesi sadece saatlerin kapanması nedeniyle olur.
· Aktif mod AM;
o Tüm saatler aktif
· Düsük –güç modu 0 (LPMO)
o CPU pasif durumdadır.(kullanılmaz)
o ACLK ve SMCLK aktif kalır.MCLK kullanılmaz
Düsük – güç modu 1 (LPM1);
o CPU kullanılmaz, pasiftir.
o ACLK ve SMCLK aktif kalır.MCLK pasiftir
o DCO ‘un dc jeneratör(üretici) kullanılmaz eğer DCO aktif modda değil ise
· Düsük – güç modu 2 (LPM2);
o CPU Pasiftir
o MCLK ve SMCLK pasif durumdadır
o DCO ‘nun dc jeneratörü kullanıma hazır bekler
o ACLK aktif kalır
· Düsük – güç modu 3 (LPM3);
o CPU pasiftir
o MCLK ve SMCLK pasiftir.
o ACLK aktif kalır.
· Düsük – güç modu 4 (LPM4);
o CPU pasiftir.
o ACLK pasiftir
o MCLK ve SMCLK pasiftir
o DCO’ nun dc jeneratörü pasiftir
o Kristal osilatör durdurulmustur
Kesme Vektör Adresleme
Kesme vektörleri ve ortam güç baslatma adresleri (0FFFh-0FFEh) adres aralığında bulunurlar. Vektör kesme isleyicisinin 16 bit adreslerini içerirler. Kesmeler MSP430 ailesinin düsük güç tüketimini sağlayan en önemli özelliğidir. Bu özellik sayesinde, modüller ve CPU birbirlerinden farklı isletim tarzlarında çalısabilirler ve kesme olayı bu durumu tamamiyle destekler.
Bir kesme işlemi, sistemi RETI komutunu kullanarak yapılır. Kesme işlemi fonksiyonu içinde istenilen mikrodenetleyici istenilen moda geçirilip uyandırılabilir yada uyutulabilir. Sistem maliyeti ve güç tüketim amaçları doğrultusunda, CPU ve modüllerdeki farklı gereksinimler farklı saat sinyallerinin kullanımı gerektirir. Bunlar;
· Yardımcı saat ACLK, Çevre Modüller veya CPU için;
· Ana sistem saati MCLK, CPU ve sistem ile kullanılır.
· Alt sistem saati SMCLK, çevre birimi modülleri ile kullanılır.
MSP430 Düsük Güç Tüketim Yeteneği
Düsük güç tüketim yeteneği, temelde CPU ve çevre modüllerinin yazılımsal kontrollü osilatörün hızlı bir sekilde uyanabilme özelliğinden faydalanarak mümkün olduğunca çok uyutulması mantığına dayanır. Bu saat sistemi, optimize sistem maliyeti ve en düsük güç tüketimini korur.
· Harici bilesensiz dahili saat üreteci kullanımı,
· Düsük frekans ve maliyet için, harici kristal veya seramik rezonans devresi seçimi,
· Uygun saat sinyali ve saat bölücü fonksiyonunun yazılımla seçilebilmesi,
· Harici saat üretecinin uygulanabilirliği.
STATUS (durum) Saklayıcısı
Tablo da gösterilen saklayıcı 4 bit CPU ve sistem saati üretecini kontrol eder :
CPU OFF, SCG1, SCG0 ve OscOff
CPU OFF, SCG1, SCG0 ve OscOff, sistem saat üretecinin temel fonksiyonunda kurulduğu zaman düsük bit kontrolünde en önemli bitlerdir. Kesme gelir gelmez yığına itilirler ve kesme isteğinden sonra işleme dönmek için geri yüklenirler.
CPU OFF: Saat sinyali MCLK, CPU ile kullanılır.
SCG1: Set edildiğinde SMLCK sinyali kapatılır.
OscOff: LFXT1 kristali bu bit set edildiğinde pasif duruma geçer. Eğer SMCLK veya MCLK olarak kullanılmayacaksa pasif edilmelidir.
SCG0: DC üreteç SCG0 biti sıfırlandığında aktif olur. DCO eğer SCG0 biti çalıstığında ve DCOCLK sinyali MCLK veya SMCLK gibi kullanılmazsa etkisiz olur. DC kaynak tarafından tüketilen dc akım DCOCLK un temel frekansında tanımlanır.
DCOCLK: Saat sinyali DCOCLK eğer MCLK veya SMCLK olarak kullanılmazsa durdurulabilir.
Kesme Enable 1 ve 2 (kesme izin saklayıcıları)
OFIE: Osilatör hata kesme çalısır durumdadır.
NMIE: Maskesiz – kesme aktiflenir.
ACCVI: Flash hafıza kesme ihlali çalısır durumda
URXIE0: USART0: UART ve SPI alıcı-esme-enable
UTXIE0: USART0: UART ve SPI iletici- kesme enable
Kesme Çalısır Durumda 2
URXIE1†: USART1:UART ve SPI alıcı -kesme enable, veri geldiğinde kesme izni
URXIE1†: USART1:UART ve SPI iletim-kesme enable, veri gönderilmesi tamamlanığında kesme izni
Kesme Bayrakları 1 ve 2
WDTIFG: Gerilim düsümlerinden kullanıcıyı korumak için engellenemez kesme bayrağıdır
OFIFG: Osilatör isaretinde bir sekilde hata olusması durumunda bu bayrak set edilir
NMIIFG: Engellenemez bir kesme olan NMI kesmesinin olustuğunu gösteren bayraktır.
URXIFGO: USART0:UART ve SPI alıcı bayrak
UTXIFGO: USART0:UART ve SPI iletici bayrak
Kesme Bayrak Saklayıcısı 1 ve 2
UTXIFG1†: USART1 UART ve SPI alıcı bayrağı
UTXIFG1†: USART1:UART ve SPI iletim bayrağı
Modül Saklayıcı 1 ve 2
URXE0:USART0:UART modu alıcı
UTXE0:USART1:UART iletim modu
USPIE0:USART1:SPI alıcı ve iletim modu
MSP430F169 Hafıza Organizasyonu
Mikrodenetleyicinin Modülleri
Bootstrap Loader (BSL) Yükleyici: MSP430 (BSL) kullanıcıları flash belleği’ni ve UART seri ara yüzünü kullanarak, programlamayı sağlar. BSL’in hafızaya erisimi bir sifre ile korunmaktadır. Yani isteyen herkesin kod hafızasına bu yolla erisimi engellenmis olur. Yeni nesil BSL yapısında ise Texas firması sifrenin yanlıs girilmesi durumunda hafızayı silerek yazılan kodların güvenliğini arttırmıstır. BSL özelliklerin tanımı ve uygulamaları asağıdaki sekilde tamamlanır.
Bootstrap Loader (BSL)
Flash Bellek
Flash bellekler JTAG portla, bootstrap loader ile veya sistemdeki CPU veya DMA modülü kullanılarak programlanabilir. Flash belleğinin içerdiği özellikler:
· Her biri 128 byte olan A ve B ile adlandırılan 2 tane bilgi hafızasına ve 9 hafıza bilgi bloğuna sahiptir.
· 0’dan N’e kadar olan bloklar bir adımda silinebilir veya bloklar ayrı olarak silinebilir,
· Blok A ve B sırayla ayrı olarak veya 0-n bloklu gruplarda da silinebilir. A ve B bloklarına bilgi hafızası da denebilir,
· Yeni donanımların bazı byteları bilgi hafızasında programlanabilir(imal sırasında ihtiyaç duyulabilir). Önce kullanıcının hafıza bilgisinin silinmesi işlemi gerçeklestirilmelidir.
Flash Bellek Yapısı
DMA Kontroller
DMA kontroller bir bilgiyi bir adresten baska bir adrese kopyalamak ile görevli bir modüldür. DMA’in avantajı bu saklayıcılarına hedef ve kaynak adresleri verildiğinde kopyalama işlemini gerçeklestirebilmek için CPU’ya ihtiyaç duymamasıdır. örnek olarak ADC den okunan değerlerin bulunduğu ADC12MEM0 saklayıcısındaki bilgiler her istenen saat çevriminde bir baslangıç adresi verilen hafızaya kopyalanabilmektedir. Bu işlem sırasında sadece çalıstığı için ADC modülü ve kopyalama yaparken çalısan DMA modülünün aktif olması yeterlidir. Bu yöntem düsük güç tüketim özelliği ile ön plana çıkan MSP430 ailesinin güç tüketiminin diğer mikrodenetleyicilerinkinden daha da az olabilmesini sağlamıstır.
DMA kontroller her modülün saklayıcısına erisebilmekte ve buradan aldığı bilgileri istenilen saklayıcıya gerek hafıza, gerek RAM gerekse diğer modüllerin saklayıcılarına aktarabilmektedir. Tabii ki bunun tersi de geçerlidir.
Osilatör ve Sistem Saati
MSP430x16x donanımı ailesi, yüksek hız kristal osilatöre ve dijital kontrollü osilatöre (DCO) ilaveten bir de düsük güç tüketiminin desteklenmesi için düsük hızlı harici bir osilatörü (ACLK) destekler. Bu osilatör tipik olarak 32768 Hz ayarlıdır. Zaman saati bu osilatörü baz alarak çalısır. Ana saat modülü, sistemin düsük güçlü olduğu göz önüne alınarak dizayn edilmistir. DCO’nun da güç çekmemesini sağlamak ve bekleme modunda kapalı durmasını sağlamak için DCO 6 µs’den daha kısa bir sürede stabil sinyal üretebilen bir duruma gelebilmektedir. Ana saat modülü asağıdaki saat sinyalini sağlar.
· Yardımcı saat (ACLK) zaman kristalinden kaynak alır. Tipik değeri 32768 Hz’dir.
· Ana saat (MCLK) CPU tarafından kullanılan sistem saatidir ACLK’dan veya hızlı kristalden beslenebilir.
· Alt ana saat (SMCLK) periferik modülleri tarafından kullanılan alt sistem saatidir. ACLK, DCO veya hızlı kristalden beslenir.
Gerilim Denetleyici
Voltaj denetleyici (SVS) devresi, besleme gerilimi, kullanıcının seçtiği seviyeden asağı düstüğünü algılamak için dizayn edilmistir. Donanım otomatik olarak tekrar baslatılır. Mikrodenetleyici belirlenenden daha düsük voltajlarda da çalısabileceği için çıkıs portlarının istenen gerilim seviyelerini sağlamaması durumu programın doğru kosması fakat mikrodenetleyiciden ona bağlı diğer birimlere esik seviyelerinden daha düsük gerilimlerin gitmesinin engellenmesini sağlar.
6 tane 8 bit I/O P1 ve P6 portları bulunmaktadır.
· Tüm ayrı I/O portları bağımsız olarak programlanabilir,
· Giris ve çıkısın komut sıraları ve kesme durumları olasıdır,
· P1 ve P2’nin portlarının 8 bitleri için kesime giris kapasiteleri uçları seçilmelidir,
· Tüm komutlar tarafından port kontrol girislerine yazma ve okuma girisleri desteklenir.
Watchdog Timer
WDT modülünün ilk fonksiyonu yazılımsal bir hata olustuğunda donanımı RESET etmesidir. Eğer bu özelliği kullanılmak istenmiyorsa belirlenen aralıklarla kesme üretmesi sağlanabilir. Bu kullanımıyla bir sayıcı/zamanlayıcı gibi de çalısabilmektedir. 4 farklı zaman için kesme üretebilir ve osilatör olarak ACLK, DCO veya hızlı osilatör isteğe göre seçilebilir.
USART0
MSP430 ailesinin içinde dahili olarak 2 adet USART modülü bulunmaktadır. Bu modül 3 farklı modda çalısabilmektedir.
· SPI
· I2C
UART
Her bir modül birbirinden bağımsız olarak farklı protokollerde çalısabilmektedir. Çalısması basitçe saklayıcısına yazılan değerin ilgili modülün TX pininden iletilmesi seklinde olmaktadır. CPU kullanımı zorunlu değildir, saklayıcısına DMA kullanılarak da bilgi yazılabilir. Dahili olarak hata kod düzeltmesi bulunmaktadır. Bir hata olusumunda, saklayıcıdaki bilginin iletimi bitmeden saklayıcıya tekrar bilgi yazılması gibi durumlarda veya gelen bilginin okunmadan üzerine yeni bilgi gelmesi durumunda ilgili hatayı bayraklarında göstererek bir kesme olusturabilir.
Timer-A3
3 adet tutma ve karsılastırma saklayıcıları ile 16 bit (timer /counter) sayıcı ve zamanlayıcıdan olusur. Timer A3 çoklu tutma karsılastırma, PWM çıkısları ve zamanlamayı sağlar. Timer A3 ayrıca kesme kapasitesine de sahiptir. Tasma durumlarında da kesmeler yapabilir.
Timer B7
7 tane tutma karsılastırma saklayıcıları ile birlikte, 16 bitlik (timer/counter) zamanlayıcı ve sayıcıdır. B7 genis kesme kapasitesi vardır. Tutma karsılastırmadan her biri sayıcıdaki tasma durumunda kesmeleri gerçeklestirir.
Karsılastırıcı (Comparator) – A
Karsılastırıcı–A MSP430F169’un içindeki tek karsılastırıcıdır. Giris olarak baska modüllerden gelen gerilimleri(referans gerilim üreteci, sıcaklık sensörü gibi) veya dısardan gelen gerilimleri alarak birbirleriyle karsılastırabilmektedir. Bu modül 1MHz’den daha hızlı karsılastırma sonucunu üretmektedir. Bu noktada ADC’ye hassasiyeti karsılastırılamayacak kadar az da olsa bir alternatiftir denebilir.
CPU Tanımı
CPU, farklı modüllerin hepsinin kontrolünü sağlar, özelliklede, tablo uygulamaları, yüksek düzey seviye dili C dili gibi modern programlama tekniklerinin uygulanmasını sağlar.
· RISC numarası 27 temel komutu ile 7 adresleme modu vardır,
· Her komut her hangi bir adresleme modu ile kullanılır,
· Tam saklayıcı girisi program sayıcı, durum saklayıcı ve yığın isaretçisi içermektedir,
· Tek çevrimlik saklayıcı uygulamalarını içerir,
· 16 bit uzunluğundaki
· Saklayıcı, bellek bilgilerinin aktarılmasını sağlar,
· 16 bit adres yolu direk girisi ve geçisi tüm bellek alanında sağlar,
· 16 bit veri yolu giris kelime bağımsız değiskenlerinin direk kullanılmasını izin verir,
· Sabit jeneratör en çok kullanılan kod uzunluklarını azaltır.
· Direk hafızadan hafızaya tampon olmadan bilgi transfer eder.
· Word ve byte adresleme ve komut formatlarını içerir.
Program Counter(PC/RO)(Program Sayıcı)
Uygulanacak bir sonraki komutu isaret eder. Her komut çift byteların numaralarıyla kullanılır ve buna bağlı olarak PC ‘de artıslar olusur. 64KB adres bosluğundaki komut girisleri kelime sınırlarında uygulanılır.
Yığın Dsaretçisi (SP/RI)
CPU tarafından kesme dönüs adreslerini depolamak için kullanılır. SP, software tarafından tüm komutları ve adresleme modları ile kullanılır. RAM içine SP hazırlanır. Kullanıcı tarafından ve çift adresleme ile hazırlanır.
Sekillerde PUSH SP POP komutları için SP saklayıcısı olarak kullanımı özel durumları gösterilmistir.
Durum Saklayıcısı (SR)
(SR/R2) kaynak ve hedef saklayıcı olarak kullanılabilir, saklayıcı modunda sadece kelime komutları ile adreslenebilir. Adres modlarının genel kombinasyonları sabit jeneratörü desteklemek için kullanılır.
Sabit Üreteç Saklayıcısı CG1 and CG2
Program kodunda sık kullanılan ve dizayna göre belirlenen sabitler her seferinde flash belleğe yazmak yerine üreteç saklayıcısında üretilirler. Böylece kodun uzunluğundan tasarruf edilmis olur. Sabit üreteç genisletilmis komut seti MSP430’un RISC komut setinin 27 tane komutu vardır. Sabit üreteç MSP430 24 eklemeli komutlara izin verir. Mesela tek
islenen komut ;
CLR dst
ile aynı uzunlukta olan çift işlenen konut ile aynı islevi basarırlar.
MOV R3,dst
assembler tarafından #0 yerlestirilir ve R3 AS =00
INC dst
ADD 0 (R3), dst
Genel Amaçlı Saklayıcılar R4-R15
12 adettir. R4-R15 genel amaçlı saklayıcılardır. Tüm bu saklayıcılar bilgi (data) saklayıcısı, adres isaretleyicisi ve içerik değeri ve byte veya kelime komutları ile girilebilir. ile yerlestirebilir.
Adresleme Modları
Dslenen kaynak için 7 adresleme modu ve hedef için 4 adresleme modu vardır.
Kaynak ve Hedef işlemci Adres Modları;
Yukarıda Özetler verildi;
Şifre-Pass: 320volt.com
Yayım tarihi: 2010/10/12 Etiketler: msp430 projeleri, msp430 Türkçe, MSP430F169