Texas Instruments markasının ultra low power (çok düşük enerji ile çalışabilen) mikrodenetleyici kategorisinde olan MSP430g2553 günümüzde Amerikan Üniversitelerinin laboratuvar derslerinde işlenir duruma gelmiş, sık kullanılan bir mcu olarak karşımıza çıkmaktadır. Ancak Türkiye de Texas Instruments ürünleri ile ilgili ne örnek kod ne de aydınlatıcı bilgiler bulunmaktadır. Bu nedenle de MSP430g2553 kullanmadan önce ve kullanırken dikkat etmeniz gerekenleri bahsetmek, daha sağlıklı bir projeye imza atmanız için önemlidir.

Dikkat Etmeniz Gerekenler;

  • Energia ile programlamak mı? CCS ile programlamak mı?

MSP430g2553 Texas Instruments markasına ait iki resmi derleyici ile programlanabilmektedir. Bunlar energia ve code composer studio’dur. Bu iki derleyici arasında ki fark, sadece programlama dilini ve kütüphaneleri değil proje ile ilgili bütün akım değerlerini ve mikrodenetleyiciyi kontrol mekanizmasını etkilemektedir.

Energia genellikle hobi elektroniğini kullanan ya da bir işin prototip haline getirilebilmesi için hızlıca programlayabileceğiniz, micro c ile MSP430g2553 mikrodenetleyicisini programlamaya olanak sağlıyor. Fakat derleme sonucunda çıkan .hex dosyasını reassamble yaptığımızda çıkan makine dilinde ki kod satır sayısı, CCS de aynı işi yapan kodu derlediğimizde oluşan .hex dosyasının içinde ki kod satır sayısının binlerce kat daha fazlasıdır. Bu ise kullanılmayan özelliklerin daima açık olmasını sağladığı anlamına gelmektedir. Bunu destekleyecek deneysel bir bilgi vermek isterim; CCS de bomboş bir kodu derlediğinizde mikrodenetleyici 50 mikroamper akım çekerken, energia da bomboş bir kodu derlediğimizde aynı mikrodenetleyici 5,1 miliamper akım çekmektedir. Özetle mecbur kalmadıkça asla energia kullanılmamalıdır. –ki profesyonel işlerde ve datasheetlerde ki özellikleri kullanmak gerektiğinde energia kullanılamamaktadır. CCS profesyoneldir, öğrenimi daha zordur, kaynağı daha azdır ancak uygulama yetisi kıyaslanamayacak kadar çoktur.

  • Hangi güç seçeneğinde kullanacaksınız? (Power Mode Selection)

MSP430g2553 mikrodenetleyicisinin aktif modu ve 4 adet de low power mode seçeneği vardır. Bunlar LPM0, LPM1, LPM2, LPM3, LPM4 seçenekleridir. MSP430g2553 pile bağlı projelerde gerçekten çok büyük avantajlar sağlamaktadır ve şahsen uyguladığım bir projede 2 Duracell seri bağlı 1,5V pil ile 5 yıl çalışma ömrü sunmaktadır. Bu nedenle low power mode seçenekleri, interrupt ile power modların birleşik uygulamaları ile akım değerlerini çok aşağıya çekebilirsiniz.

CCS de “LPM4;” kodu ile low power mode 4’e geçilir. Eğer low power mode 4’de interrupt’ların açık olmasını istiyorsanızda, kullanmanız gereken kod “__bis_SR_register(LPM4_bits + GIE);” kodudur.

  • MSP430g2553’u Launchpad ile kullanıyorsanız ilginç donanımsal özelliklere dikkat etmelisiniz

Programlamak için launchpad kullanıyor ve launchpadda uygulama yapıyorsanız, fabrika çıkışı özellikleri değiştirmeniz ve enteresan donanımsal özelliklere alışmanız gerekmektedir. Aksi takdir de çalışır durumda olan kodlarınızı yüklerken ya da gözlemlerken sorunlar yaşayabilirsiniz. Aşağıda gördüğünüz 1. Fotoğraf olması gerekendir ancak 2. Fotoğrafta ki gibi fabrika çıkışından gelmektedir. 2. Fotoğrafta jumper dizilimleri yanlıştır, hepsi birbirine paralel şekilde konumlandırılmış jumper şekli yanlıştır ve 1. Fotoğrafta ki gibi rx ve tx pin çıkışları kendi içinde kısa devre olması gereklidir. Yani 1. Şekilde ki gibi jumper dizilimi doğrudur.

lp15_2553o
1. şekil
LP
2. şekil

Diğer bir ilginç nokta ise attığınız program başarılı bir şekilde yüklendikten sonra USB bağlantısını bir kez çıkarıp, başlatmadıktan sonra ya da VCC jumperını çıkarıp takmadıktan sonra launchpad programın son halini çalıştırmıyor.

MSP430g2553 UART Haberleşme CCS Örneği;

Aşağıda ki kodlar UART haberleşmenin Tx tarafıdır.

void send(char []);
char string[];
void send(char string[])
{
}
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
P1DIR = 0xFF; // P1 portu çıkış yapıldı
P2DIR = 0xFF; // P2 portu çıkış yapıldı
P2OUT = 0; // All P2.x reset
P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
P1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
UCA0CTL1 |= UCSSEL_1; // CLK = ACLK
UCA0BR0 = 0x03;
UCA0BR1 = 0x00;
UCA0MCTL = UCBRS1 + UCBRS0;
UCA0CTL1 &= ~UCSWRST;
while(1){
UCA0TXBUF = '8'; // TX gönderilen karakter
__delay_cycles(50000);
}
}

 

  • “WDTCTL = WDTPW + WDTHOLD; ” kodu WDT’yi durdurur ve gerek duymuyorsanız aktif etmemenizi önerilir. Çünkü 0,3mA gibi bir akıma karşılık gelmektedir. Lakin birçok projede WDT aktif kullanılması önerilir özellikle de 7/24 açık olan sistemlerde “WDTCTL = WDTPW | WDTHOLD;” kodu ile WDT kullanılması önerilmektedir.
  • “UCA0TXBUF = ‘8’;” ile 8 karakteri gönderilmektedir. Buraya bir dizi de koyabilir, uart haberleşme ile gönderebilirsiniz.
  • “UCA0BR0 = 0x03;” Baud Rate LSW bitidir. Baud hızınızın hesaplanması için LSW bitidir.
  • “UCA0BR1 = 0x00;” Baud Rate MSW bitidir. Baud hızının hesaplanması için MSW bitidir. Baud rate ayarı için internette “msp430g2553 baud rate calculator” diye aratırsanız, istediğiniz baud rate hesaplamasını yapacak yazılımları bulabilirsiniz.

 

 

 

 

2 YORUMLAR

  1. bizim labımızda MSP430FR5969 LaunchPad kullanıyor aralarındaki fark nedir biz bulamadık MSP430FR5969 modelini ve launchpad kullanarak programlıycam ama bu modeli yani MSP430g2553 alsam sıkıntı olur mu ?
    Bilgilendirmeniz çok teşekkürler

Emre ATAKLI için bir cevap yazın İptal

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz