MSP430 Nedir? – MSP430 Başlangıç Rehberi

Diğer MSP430 Yazılarımız için Buraya Tıklayabilirsiniz

Bu yazımızda sizlere MSP430 hakkında bilgi verirken aynı zamanda başlarken yapılması ve bilinmesi gerekenlerden bahsedeceğiz. MSP430 eğitim yazılarımıza başlamadan önce bilinmesi gereken herşeyi sizlerle paylaşacağız.

MSP430 Nedir

MSP430 Texas Instrument tarafından üretilen bir mikrodenetleyici serisidir. İçerisinde RISC mimariye sahip 16-bit işlemci (CPU) bulunmaktadır. Düşük güç tüketimiyle ön plana çıkan MSP430 genellikle taşınabilir ölçüm cihazlarında kullanılmak üzere tasarlanmıştır. Fakat kullanım alanı oldukça geniştir. Düşük güç tüketiminin gerekli olduğui pil ile çalışan sistemlerde oldukça sık tercih edilmektedir. MSP430’un oldukça fazla çeşidi mevcuttur. Biz yazılarımızda en sık kullanılan modellerinden biri olan MSP430g2553 modelini kullanacağız. Ayrıca Texas Instrument tarafından üretilen MSP430 Launchpad üzerinde de bu denetleyici mevcuttur ve ülkemizde şu an diğer Launchpad’ler üzerinde kullanılan modeller dışındaki modellere ulaşmak çok mümkün değildir. En azından geliştirme kartı üzerinde bulunan ve dünya genelinde en çok kullanılan model g2553 modelidir.

MSP430g2553 için iki adet dokumana ihtiyacımız var. Bunlar datasheet ve manual dokumanları. İki dokuman birbirini tamamlar nitelikte olduğu için maalesef arada geçiş yapmamız gerekebiliyor. Manual daha geniş kapsamlı iken datasheet içerisindeki bilgiler de oldukça önemli. MSP430 yazılarımızda MSP430g2553’ün üzerinde olduğu Launchpad’i kullanacağız. Dokumanlar => msp430g2553 msp430manual

MSP430g2553 Modelinin Özellikleri Şu Şekildedir:

• Low Supply-Voltage Range: 1.8 V to 3.6 V • Universal Serial Communication Interface
• Ultra-Low Power Consumption (USCI)
– Active Mode: 230 μA at 1 MHz, 2.2 V – Enhanced UART Supporting Auto Baudrate
– Standby Mode: 0.5 μA Detection (LIN)
– Off Mode (RAM Retention): 0.1 μA – IrDA Encoder and Decoder
• Five Power-Saving Modes – Synchronous SPI
• Ultra-Fast Wake-Up From Standby Mode in – I2C™
Less Than 1 μs • On-Chip Comparator for Analog Signal
• 16-Bit RISC Architecture, 62.5-ns Instruction Compare Function or Slope Analog-to-Digital
Cycle Time (A/D) Conversion
• Basic Clock Module Configurations • 10-Bit 200-ksps Analog-to-Digital (A/D)
Converter With Internal Reference, Sample-
– Internal Frequencies up to 16 MHz With and-Hold, and Autoscan (See Table 1)
Four Calibrated Frequency
• Brownout Detector
– Internal Very-Low-Power Low-Frequency
(LF) Oscillator • Serial Onboard Programming,
No External Programming Voltage Needed,
– 32-kHz Crystal Programmable Code Protection by Security
– External Digital Clock Source Fuse
• Two 16-Bit Timer_A With Three • On-Chip Emulation Logic With Spy-Bi-Wire
Capture/Compare Registers Interface
• Up to 24 Capacitive-Touch Enabled I/O Pins

Üzerindeki bütün çevre birimler (peripheral) ayrı ayrı yazılarda örnek kodlarıyla beraber anlatılacaktır. Şimdilik sadece standart GPIO, UART, SPI, I2C, ADC, TIMER gibi çevre birimlerinin olduğu bilinmesi yeterli. Ayrıca yazılarımızda Low-Power özelliğinin nasıl kullanıldığını, PWM ayarlarının nasıl yapıldığını, Clock ayarları ve kesme (Interrupt) yönetimlerinin nasıl yapıldığını anlatacağız.

MSP430 Lauchpad

Texas Instrument MSP430 üzerinde çalışabilmemiz için Launchpad ismini verdiği bir geliştirme kartı üretmiştir. Geliştirme kartı üzerinde kullanıcı için ayrılmış olan pinler mevcuttur. Erkek header olarak ayrılmış olan bu pinler için bir tarafı dişi olan jumper kablo kullanılması gerekmektedir. Ayrıca üzerinde UART haberleşmenin SW mi HW mi olacağını seçmemiz için jumperlar mevcuttur. Bunların yanında kullanıcıya ayrılmış olan bir buton, 2 adet LED ve debug için M430f1612 entegresi mevcuttur. LED’lere bağlı olan pinleri başka bir iş için kullanmak isterseniz diye de sistemden ayıran jumper’lar mevcuttur. Bağlantı için mini USB kablo gereklidir. Kart 3.3V ile çalışmaktadır. Ayrıca kart üzerinde GND ve VCC pinleri de birden fazla yerde konumlandırılmıştır. Son olarak kartın kutusundan çıkan ve düşük güç için kullanılan 32 kHz’lik kristalin lehimlenmesi için de alan mevcuttur.

MSP430 vs Arduino

MSP430 Lauchpad ve Arduino birbirine benzer olduğu için oldukça sık karşılaştırılmaktadır. İkisinin clock hızlarının aynı olması (16 MHz) ve benzer çevre birimleri sahip olmasından dolayı aynı segmentin kartları denebilir. Fakat kullanım alanları biraz farklıdır. MSP430 daha önce de bahsettiğimiz gibi düşük güç uygulamaları için daha uygundur. Ayrıca Arduino üzerinde bulunan Atmega serisi denetleyicilerin flash hafızası daha büyük olduğu için içerisine daha karmaşık programlar yüklenebilmektedir. Bununla birlikte Arudino UNO ve MEGA 8-bit iken MSP430g2553 16-bit RISC mimariye sahiptir. Yani biraz daha gelişmiş olduğu söylenebilir. Fakat MSP430’un çok stabil olmaması ve floating point bencmark sonuçlarının kötü olması onu Arduino’nun önüne geçirememekte. Ayrıca MSP430g2553 için pin sayısının biraz az olduğu söylenebilir. PWM çıkış sayısı 6 adet olsa da aslında 3 farklı çıkış ayarlanabilmektedir. Yani her PWM çıkışı aslında bir adet de kopyasına sahiptir. İleriki derslerimizde daha ayrıntılı anlatılacaktır. Hepsi bir yana MSP430’un düşük güç özelliği onu her türlü diğer denetleyicilerden ayırmaktadır. Bizler de yazılarımızda daha çok düşük güç özelliğinin ön planda olduğu fazla karmaşık olmayan kodlar paylaşmaya çalışacağız.

MSP430 Programlama

MSP430 Launchpad’i programlamak için farklı seçeneklerimiz mevcut. Bunlardan en çok kullanılanları TI CCS, IAR ve Energia olduğu söylenebilir. CCS adı eğer önceden PIC kullandıysanız tanıdık gelebilir ama maalesef aynı değiller. CCS – Code Composer Studio, Texas Instruments tarafından bizlere sunulmuş olan, TI tarafından üretilen denetleyici ve işlemcileri programlamak için kullandığımız bir IDE. Bizler de eğitim yazılarımızda TI’ın kendi derleyicisi olduğu için CCS kullanacağız. Bunun dışında Arduino IDE’sinin birebir kopyası olan Energia ile de projelerimiz olacak.

MSP430 eğitim yazılarımızda register seviye programlama yapacağız. Eğer önceden PIC veya benzeri bir denetleyici ile çalıştıysanız alışmakta çok zorluk çekmezsiniz fakat sadece Arduino ile çalışmış biriyseniz sizi bazı zorlukların beklediğini söylemem gerek. Register seviye programlamada çevre birimleri kullanırken dışarıdan bir kütüphane kullanmadan sadece denetleyici içerisindeki register’lar üzerinde değişiklik yapılarak programlama yapılmaktadır. Örneğin seri haberleşme için Arduino’da olduğu gibi Serial.print komutu yerine UART register’ları üzerinde değişiklikler yaparak bu işlem gerçekleştirilmektedir. Bu şekilde kullanmamızın sebebi bütün çevre birim kütüphanelerinin açık kaynaklı olarak bulunması, Texas Instruments’in yayınlamış olduğu bir ortak kütüphane havuzunun bulunmaması, zaten düşük olan flash hafızanın bir de kütüphanelerle doldurulmak istenmemesidir. Register seviye programlama size başlarda zor gelse de zaman ilerledikçe denetleyici üzerindeki kontrolünüzün arttığını hissettiğiniz için oldukça faydalı olmaktadır. Register seviye programlamanın kullanılmasının – sadece bu kart için değil- en büyük sebebi yazılımı çok büyük bir ölçüde hafifletmesi ve maksimum verimde denetleyicinin kullanılmasına izin vermesidir. Aynı zamanda bu şekilde RISC mimarinin nasıl çalıştığı hakkında da ayrıntılı bilgi sahibi olmak mümkündür.

CCS Texas Instruments’in kendi sitesinden indirilebilmektedir. Ücretsiz olduğu için başka kaynaklardan indirilmesinde bir sorun yoktur. Bununla birlikte ülkemizde çeşitli yerlerden MSP430 Launchpad satın alabilirsiniz. Fiyatı Arduino’ya göre biraz yüksek ama yine de aşırı pahalı değil.

Evet arkadaşlar bu yazımızın sonuna geldik. Sizlerle zaman geçtikçe MSP430 eğitim yazılarımızı paylaşmaya başlayacağız. Sorunuz olursa lütfen yorumlarda belirtin. Şimdiden iyi eğlenceler!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.