Kategori arşivi: MSP430 Dersleri

MSP430 Flash Memory Controller

msp430_chipBu yazımızda MSP430 2x serisi modellerde bulunan Flash Memory Controller birimini inceleyeceğiz. Bilindiği gibi çoğu ileri düzey uygulamalarda ihtiyaç duyulan daha yüksek RAM hafıza isteği bazen bize büyük ölçüde sorunlar çıkarabilmektedir. Veya kullandığımız mikrodenetleyicide eğer flash hafızaya yazma özelliği bulunmuyorsa bu ihtiyaçtan dolayı harici bellek(EEPROM,RAM) gibi birimlere de ihtiyaç duyabilmekteyiz. Bu problemlerden dolayı bir üst düzey modele geçmek veya ekstra malzeme kullanmak maliyet ve zaman kaybına yol açabilmektedir. MSP430’larda bulunan Flash Memory Controller sayesine bu sorundan büyük ölçüde kurtulabiliyoruz.

Bu yazıda MSP430 içerisindeki flash hafızaya, program içerisinden nasıl erişebilebileceğini ve uygulamada ne gibi unsurlara dikkat edileceğini anlatmaya çalışacağım.

Okumaya devam et

7 – I2C Modülü

Bu yazımızda MSP430’un USI Modülü içerisindeki I2C donanımını inceleyeceğiz. USI modülü içerisinde bulunan SPI donanımını daha önce incelemiştik. I2C donanımında ise bazı birimler ortak kullanıldığı için SPI Modülü başlıklı yazımda anlattığım USI biriminin temel özelliklerini iyi kavrayanlar için I2C donanımını çalıştırmak ve anlamak çok zor olmayacaktır. Bu sebeple bu yazıyı okumadan önce USI donanımını hatırlamak adına SPI Modülü başlıklı yazımı tekrar okumanızı tavsiye ediyorum.

 

I2C donanımına bakıldığında çok da kompleks olmayan bir yapıyı aşağıdaki diyagramdan görebilirsiniz.

Okumaya devam et

ADC10 DTC Modu

Bu yazıda size ADC10 Modülü başlıklı yazımda anlatmadığım MSP430 ların ADC modülü içerisinde DTC(Data Transfer Controller) olarak geçen ve oldukça işe yarayan bir donanımı anlatacağım. Bu birimin temel amacı ölçülen analog kanalın dijital karşılığını CPU dan bağımsız olarak RAM de belirlediğiniz bir alana aktarması. Yani bir çeşit DMA(Direct Memmory Acces) gibi çalışması.

DTC olarak adlandırılan bu donanımı kullanabileceğimiz alanlardan bahsedecek olursak;

Mesela bir sinüzoidal bir girişimiz olduğunu varsayalım ve bu giriş için ölçülen sonuçları sürekli olarak bir dizide tutmak isteyelim. Bunu yazılımsal olarak yapacak olursak;

Okumaya devam et

MSP430′da Capture Modu ve Frekansmetre Uygulaması

Bu yazımızda MSP430’da Yakalama(Capture) işleminin nasıl yapıldığını inceleyeceğiz.

MSP430’da sinyal yakalama işlemini Timer_A aracılğı ile yapıyoruz. 4.Ders olan Timer_A Modülünün anlatıldığı yazıda bu kısımdan söz etmemiştik. User’s Manual’de ise bu kısım için sadece bir sayfa açıklama yapılmış. Aslında işlem çok zor değil fakat Capture modunu kullanarak Frekansmetre uygulaması yapmak biraz karışık. Nedenini yazının ilerleyen bölümlerinde anlatacağım.

İlk olarak Capture modu hakkında biraz teknik bilgi verelim ;

Okumaya devam et

6 – SPI Modülü

Bu hafta MSP430’lardaki USI Modülü altındaki SPI birimini inceleyeceğiz. Genellikle düşük seviye MSP430 modellerinde bulunan USI modülü, içerisinde hem SPI hem de I2C birimlerini barındırmaktadır. Daha yüksek seviyeli modellerde ise USCI adı verilen, SPI ve I2C birimlerine ek olarak bir de Seri haberleşme(UART) birimini barındıran bir modül bulunmaktadır.

Arıca USI modülünden gelen bilgilerin tutulduğu USISR Shift Registerına 8 ya da 16 bit olarak erişilebilmektedir. İşaret kaynağı olarak ise ACLK, SMCLK, MCLK kaynaklarına ek olarak USI modülünün kendi işaret kaynağı olan USISWCLK seçilebilmektedir. Okumaya devam et

5 – ADC10 Modülü

Bu dersmizde ise MSP43’ların bazı modellerinde bulunan ADC10 modülünü inceleyeceğiz. ADC10 modülü, adından anlaşılabileceği gibi 10 bit çzöünürlükte Analog / Dijital dönüşüm yapmaya olanak tanıyan bir modüldür. Bu modül, 200 ksps hızında dönüşüm yapabilmektedir. Ayrıca bu çevrebirim kendi içerisinde 1.5v ve 2.5v referans gerilimi üretebilmektedir. İşaret kaynağı olarak ACLK, SMCLK, MCLK ve ADC10 modülünün kendi işaret kaynağı olan ADC10CLK kullanılabilmektedir. Son olarak bu modül, dahili sıcaklık sensörü ile ortamın sıcaklığını ölçebilmemize olanak sağlamaktadır. Bu yazıda hem A/D çevrim hem de sıcaklık ölçümü örneklerini bulabileceksiniz

Okumaya devam et

4 — Timer_A Modülü ve Low Power Yönetim Modları

Bu yazımızda MSP430’un Timer_A modülünü inceleyeceğiz. Bazı modellerde Timer_B de bulunmakta ama her iki birim de hemen hemen aynı olduğundan sadece Timer_A yı incelememiz şimdilik yeterli olacaktır.

MSP430 Timer_A birimini genel hatlarıyla ele alacak olursak Timer_A, 16 bitlik bir sayıcıdır. Bu birim için işaret kaynağı olarak farklı işaret kaynakları(ACLK,SMCLK…) seçebiliriz ve PWM çıkışları da alabiliriz Bir diğer özellik ise MSP430’da bulunan kesme vektörleri sayesinde Timer_A birimi için oluşan kesme anında programı vektörlere dallandırıp işlemlerimizi daha hızlı halledebiliriz. Okumaya devam et

3 — Clock Modülü

Bu yazımızda MSP430’un Clock modülünden bahsedeceğiz. MSP430 düşük-güç bir mikrodenetleyici olduğu için buna uygun çeşitli saat birimlerini barındırmakta. Bu birim eğer uygum amaca göre kullanılırsa elde edilebilecek güç tasarrufu hiç de küçümsenecek cinsten değil.Mesela osilatör olarak dahili VLO (Very Low Power Oscillator) kullanılırsa, bu birimini harcadığı akım yaklaışık 0.8uA dir. Bu, fazla hız gerektirmeyen uygulamalarda taşınabilir cihazlar için saatlerce pil ömrü demektir.

Okumaya devam et

2-16 Bit RISC CPU

MSP430’un diğer çevrebirimlerine geçmeden önce işlemcisini ele almak istedim. Çünkü sahip olduğu işlemcide aşina olduğumuz PIC’te olmayan özellikler var. ASM olarak komut seti Intel’in komut setine benziyor biraz. Toplam 27 adet komuta sahip olan MSP430’da ASM ile program yazmak çok da zor değil aslında…

Ben bu yazımda komutlardan fazla bahsetmeyeceğim çünkü komutlar zaten az hem de datasheetinde en ince ayrıntısına kadar anlatılmış. Okumaya devam et

1-MSP430 Port Giriş/Çıkış İşlemleri ve Harici Kesmeler

Bu yazımızda ise MSP430’un port giriş/çıkış işlemlerini ve portlardan gelecek olan harici kesmeleri inceleyeceğiz. İlk olarak MSP430F2001′in portlarından bahsedelim.

MSP430F2001, P1 ve P2 olmak üzere iki adet porta sahiptir. Bunlardan P1, 8 adet giriş/çıkış, P2 ise 2 adet g/ç içermektedir. Bu portlar, ilgili kaydediciler aracılığıyla g/ç, kesme ve herhangi bir çevresel birimi kullanmak üzere ayarlanabilir.

Okumaya devam et