MSP430 Mikrokontrollerin ohjelmointi C-kielellä

Launchpadkuvan lähde TI

Tältä sivulta alkaa sarja kirjoituksia, jotka opastavat vasta-alkajia mikrokontrollerin ohjelmointiin C-kielellä. Kirjoitukset liittyvät MSP430-mikrokontrollereihin ja etenkin TI:n Launchpadiin. Asiat on kuitenkin pyritty kirjoittamaan siten, että ne pätevät vaikka mikrokontrollerina ei olisikaan MSP430.

Ohjelmointialustana Launchpad

MSP430 Launchpad on Texas Instrumentsin kehittämä harrastelijoille suunnattu erittäin edullinen mikrokontrollerin kehitysalusta. Launchpad tukee TI:n value line -sarjan mikrokontrollereita, joita ovat kaikki G-sarjan mikrokontrollerit. Launchpadin saa tilattua TI:n e-store verkkokaupasta vaivaiseen 4,30 taalan hintaan, joka on 3,18 € (pvm 16.11.2011 klo 22:00 kurssilla). Launchpadeja on saatavilla mm. myös Mouser, Arrow, Digi-Key ja AvnetExpress toimittajilta, mutta TI:n e-store on minun mielestäni ihan hyvin toimiva verkkokauppa tänne Suomeenkin. Sieltä olen itsekin tilannut kyseisen levyn.

Tässä oppaassa käydään läpi Launchpadille tehtäviä sovelluksia rinnakkain C-kielen opiskelun kanssa. Esimerkit mahtuvat mukana tulevaan MSP430G2231 mikrokontrollerin flash muistiin (2 kilotavua) ja kaikki koodit ovat vapaasti kopioitavissa. Suurin osa esimerkeistä on yksinkertaisia, sillä kyseessä on aloittelijoiden opas. Opas luonnollisesti päivittyy ajan kuluessa, kunhan kerkeän esimerkkejä tekemään. Sattuneet virheet korjataan lukijapalautteen mukaan tai jos itse huomaan niitä.

Työkalut

Launchpadin ohjelmoimiseen tarvitaan IAR:n MSP430 kickstart tai TI:n CCS ohjelmointityökaluja. Tietysti voi käyttää open source -työkaluja, kuten esimerkiksi GCC, mutta tässä oppaassa keskitytään vain CCS:n esimerkkeihin.

CCS on Texas Instrumentsin tarjoama sovelluskehitysympäristö, minkä avulla pystytään sovelluksia Launchpadille luomaan. Tottakai voit käyttää myös IAR:n kickstart sovellusta, mutta CCS on valittu sen takia, koska sen ilmaisversion koodiraja on suurempi kuin IAR:n vastaava. Ennen kuin aloitetaan, kannattaa asentaa CCS:n uusin versio tietokoneellesi. Latauslinkki löytyy TI:n wikisivulta: Download_CCS. Valitse sivuilta "Download latest production CCSv4 MSP430/C28x code size limited image" -tekstin alla oleva latauslinkki. Asennusohjeet puolestaan löytyvät TI:n User's Guidesta, mihin on linkki: http://www.ti.com/lit/ug/slau157s/slau157s.pdf. Tässä oppaassa ei käsitellä CCS:n asennusta, sillä asioita on muutenkin paljon selitettävänä.

Kannattaa tutustua myös Launchpadin dokumentteihin Quick Start Guide ja User's Guideen. Nämä opastavat alkuun launchpadin asentamisessa ja tutustumisessa itse lautaan. Jos haluat päästä nopeasti käsiksi koodiesimerkkeihin, niin löydät niitä myös TI:n sivuilta. Tiedostossa SLAC463.zip on koottuna koodiesimerkit CCS ja IAR:n kääntäjälle assembly-kielellä sekä C-kielellä.

Launchpad ohjelmointiopas

Alle on lisätty linkit kaikkiin osiin jotka ovat julkaisukelpoisessa tilassa, osiin saattaa tulla muutoksia ja voi olla että asiavirheitä löytyy, joten mikään MSP430 tai C-kielen-raamattu tämä ei tietenkään ole. Olettaisin kuitenkin, että aloittelija hyötyy suomenkielisestä oppaasta, vaikka englanninkielisiä oppaita on netissä jo pilvin pimein.

Parissa ensimmäisessä osassa perehdytään ohjelmoinnin perusasioihin, jotka voivat olla joillekin tuttua ennestään. Oppaassa edetään asteittain kohti monimutkaisempia mikrokontrollerisovelluksia, aloittaen kuitenkin ihan perusteista. Suosittelisin kuitenkin (jos opiskelet aihetta parhaillaan), että kun törmäät sinisellä väritettyyn otsikkoon nimeltä Esimerkki X, niin kirjoitat saman esimerkin omaan lähdekoodiisi ja tutkit koodin toimintaa oman kehitysympäristösi avulla.

Opas päivittyy ajan kanssa ja lisää osia tulee enemmän tai vähemmän säännöllisin väliajoin. Myös mahdolliset (ja todennäköiset) virheet korjataan heti kun niitä huomataan ja toki voit laittaa palautetta jos itse huomasit jotain epäselvää. Muista lisätä sivu kirjanmerkkeihin niin voit välillä käydä vilkaisemassa onko mitään uutta julkaistu. Kuten elektroniikka-sivullakin, niin harmaalla olevat osat ovat työn alla.

Ensimmäiset 10 osaa keskittyy enemmän c-kielen perusteiden esille tuomiseen ja siitä eteenpäin tutustutaan enemmänkin Launchpadin mikrokontrollerin ominaisuuksiin ja asioihin mitä sillä voi tehdä.

Johdantoa C-kieleen ja Launchpadiin

Osa 0: Lähtölaukaus - Projektin ja ohjelmarungon luominen (kuvallinen ohje)
Osa 1: Ohjelman perusrakenne ja kirjoitussäännöt
Osa 2: MSP430G2231 muistin rakenne, muuttujat sekä tietotyypit
Osa 3: Perusohjelman rungon selitys ja ensimmäiset esimerkit
Osa 4: If-else ehtorakenteet + LEDin vilkutus ja rekistereihin tutustuminen
Osa 5: Näppäinpainalluksen lukeminen ja viiveet. Lyhyt esittely funktioihin.
Osa 6: Toistorakenteet while ja for
Osa 7: Do-while toistorakenne
Osa 8: Switch-case valintarakenne
Osa 9: Globaalit muuttujat sekä vakiot ja makrot
Osa 10: Taulukoiden perusteet

Launchpadin käyttöä varsinaisissa sovelluksissa

Osa 11: Back to basics - kohti rekistereitä (Porttipinnien rekisterit)
Osa 12: Keskeytykset ja niiden käyttäminen I, esimerkkinä kytkimen painallus
Osa 13: Keskeytykset ja niiden käyttäminen II, useamman kytkimen keskeytykset
Osa 14: Keskeytykset ja niiden käyttäminen III, 2 esimerkkiä timerin käytöstä
Osa 15: Moottorin ohjaus PWM:llä
Osa 16: Launchpad MSP430G2231 mikrokontrollerin kellotus
...

Vaativampaa materiaalia

Osa xx: Osoittimet (pointterit)
Osa xx: Struktuurit ja tietorakenteet
Osa xx: Modulaarinen ohjelmarakenne, usean tiedoston käyttäminen projektissa
...