|
MikrokontrolleritMikrokontrollerit ovat monen nykypäivän sulautetun laitteen äly. Mikrokontrollereita on kaikkialla. Niitä löytyy esimerkiksi kaukosäätimistä, MP3-soittimista, taskulaskimista, kännyköistä, henkilöautoista, televisiosta, radioista, jääkaapeista, pakastimista, pyykkikoneista yms. Nykypäivänä ihminen käyttää todennäköisesti kymmeniä mikrokontrollereita ilman, että sitä varsinaisesti tulee edes ajatelleeksi. Mikrokontrollereita voidaankin luonnehtia computer-on-a-chip tyylisiksi laitteiksi, koska ne sisältävät tietokonemaisia ominaisuuksia hyvin pienessä paketissa. Mikrokontrollereista käytetään yleisesti lyhenteitä MCU (MicroController Unit) ja uC/μC, myös prosessori nimitystä kuulee käytettävän. Miksi mikrokontrollereita sitten käytetään? Miksi ei käytettäisi jotain muuta, esimerkiksi logiikkapiirejä? Tämä kysymys saattaa joillekin herätä. Vastaus kysymykseen on yksinkertaisesti se, että mikrokontrollereilla voidaan hoitaa hyvin monimutkaisia toimintoja ja suorittaa erilaisia laskutoimituksia, mitä millään muulla piirillä ei pystyisi tekemään. Tästä yksinkertaisesta syystä maailmassa on miljardeja mikrokontrollereita, joita käytetään päivittäin. Alla olevissa kappaleissa on selitetty mm. mikrokontrollerin toimintaperiaatteesta, käyttöön ottamisesta, valinnasta ja kytkemisestä. Jos haluat lukea varsinaisesta ohjelmoinnista, niin vilkaise opastani Mikrokontrollerin ohjelmointi C-kielellä. Kuinka mikrokontrolleri eroaa tavallisen tietokoneen aivoista?On tiedossa, että PC:n eli tavallisen tietokoneen pääprosessori CPU kykenee suorittamaan nykypäivänä miljardeja laskusuorituksia sekunnissa. CPU tarvitsee kuitenkin toimiakseen muutakin kuin "aivot", kuten laskentayksikön (ALU), välimuistia (cache), muistinohjaimen (MMU), työmuistia datan käsittelyyn (RAM) yms. Tämän lisäksi tietokoneen CPU tarvitsee ympärilleen emolevyn ja virtalähteen, joka tarjoaa sille tarvittavat käyttöjännitteet ja riittävästi virtaa. Myös suoritettava ohjelmakoodi on ladattava prosessorille massamuistista ja tämän hoitaa tietokoneen emolevy yhdessä muistinohjaimen kanssa, joka voi olla erillinen piiri tai integroituna prosessoriin. Tietokoneen pääsuoritin ei myöskään suoraan ohjaile I/O toimintoja, vaan käyttää näitä jonkin ohjaimen välityksellä. Mikrokontrollerilla on myös CPU ja muut tarvittavat lisälaitteet CPU:n käyttöön, mutta siinä on paljon muutakin. Mikrokontrolleriin on tyypillisesti yhdistetty yleiskäyttöisiä tulo- ja lähtöportteja ja -pinnejä eli I/O:ta. Siinä on usein myös lisälaitteita (peripheral), kuten AD-muunnin, sarjadatan liikutteluun sopiva yksikkö (UART/USART), pulssin leveysmodulaatio ohjain (PWM), ajastimia (timer), lämpötila-anturi jne. Lisälaitteiden lisäksi mikrokontrollerilla on oma ohjelmamuistinsa (Flash) ja työmuistinsa (RAM). Käynnistymiseen ja toimintaan mikrokontrolleri tarvitsee vain sähköä, eikä hirveästi muuta - paitsi joskus myös kiteen ja pari kondensaattoria. Se on siis hyvin autonominen, eikä vaadi ympäristöltään läheskään niin paljon kuin tietokoneen CPU. Täytyy kuitenkin muistaa, että mikrokontrolleri ja CPU on suunniteltu erilaisiin tarpeisiin ja erilaisiin ympäristöihin. Mikrokontrollerin toimintaperiaate lyhyestiVarmaankin on hyvä tietää myös hieman siitä, kuinka mikrokontrolleri ylipäätään kykenee toimimaan. Kuten suurin osa tätä lukevista tietääkin, niin tietokoneen CPU toimii tietyllä kellotaajuudella. Jokaisella kellon jaksolla CPU tekee yhden tai useamman toiminnon ja mitä nopeammin kello tikittää, sen nopeammin CPU suorittaa toimintoja. Tällaista kelloon sidottua toimintaa kutsutaan synkronoiduksi toiminnaksi ja monet digitaalipiirit ovatkin synkronisia. Mikrokontrollerit ja tietokoneiden prosessorit pystyvät nykypäivänä tekemään yhden kellojakson aikana montaa eri toimintoa, joten aina ei voi sanoa, että yhdellä megahertsillä tehtäisiin miljoona toimintoa (operaatiota) sekunnissa, todennäköisesti toimintoja tehdään tällä tavalla laskettuna paljon enemmän. Mikrokontrolleri saa käskynsä ohjelmamuistista, mistä mikroprosessorin rekistereihin ladataan eri lukuja. Mikroprosessori tulkitsee luvut joko käskyiksi suorittaa esimerkiksi kahden luvun yhteenlasku tai siirtää dataa paikasta toiseen tai joksikin muuksi toiminnoksi. Käskyt siitä, mitä mikrokontrolleri kulloinkin tekee, on tietysti laatinut sen ohjelmoija. Ohjelmointiin käytetään PC:tä, millä laadittu ohjelma käännetään ensiksi mikrokontrollerin ymmärtämään muotoon. Tämän jälkeen käännetty tiedosto ladataan mikrokontrollerin ohjelmamuistiin ohjelmointityökalulla tai esimerkiksi USB:n välityksellä, jonka jälkeen ohjelman suoritus voi alkaa. Mikrokontrollerin käyttöönottoMikrokontrollerin käyttämisellä voidaan tarkoittaa loppukäyttäjää, joka esimerkiksi kaupallisessa tuotteessa on lopullinen asiakas kenelle tuote on tehty. Harrastelijapiireissä käyttäjällä kuitenkin tarkoitetaan sitä, joka rakentaa mikrokontrollerin ohjelmointiympäristön ja ohjelmoi sen avulla mikrokontrolleria. Mikrokontrollerin käyttöön ja ohjelmointiin vaaditaan siis vähintään tietokone, ohjelmointityökalut, ohjelmointilaite tai -kaapeli, mikrokontrolleri ja tarvittavat lisäkomponentit. Voi kuulostaa paljolta, mutta on itse asiassa aika vähän. Tyypillinen ohjelmointityökalu on tietenkin ilmainen tai kaupallisen sovelluksen demoversio. Ohjelmointilaitteena voi olla esimerkiksi ISP tai JTAG-laite, ohjelmointikaapelina voi olla sarjakaapeli tai USB (riippuu ohjelmointilaitteesta ja tavasta), ja mikrokontrollerina 8/16/32 bittinen mikrokontrolleri, jonka käyttäjä valitsee itse. Mikrokontrollerin käyttöönotto etenee esimerkiksi vaiheittain seuraavasti. Aluksi "pystytetään" ohjelmointiympäristö, joka tarkoittaa ohjelmointityökalujen asentamista ja ohjelmointikaapelin sekä alustan hankkimista. Tämän jälkeen voidaankin alkaa kokeilemaan ja tutustumaan käytettävään piiriin. Mikrokontrollerin valintaMikrokontrollerin valinta ei aina ole helpoin tehtävä, kuten ei moni muukaan asia tällä alalla. On mietittävä ensiksi mihin ympäristöön mikrokontrolleri tulee ja mitä laitteita se ohjaa. Olisi tärkeää miettiä kysymystä "voisinko tehdä tämän tietokoneella?" - jos vastaus on kyllä, tee se tietokoneella. Jos taas vastaus on ei, niin mikroprosessori on todennäköisin vaihtoehto. Kun on selvillä, että käytetään mikrokontrolleria niin seuraavaksi tulee selvittää mitä mikrokontrolleria käytetään. Todennäköisesti voit käyttää projektissasi hyvin montaa erilaista mikrokontrolleria, joten "parhaimman" piirin valinta riippuu loppujen lopuksi omista mieltymyksistä. Asioita helpottamaan olen kuitenkin luonut pienen listan kysymyksiä, mikä auttaa etsimään sopivaa mikrokontrolleria.
Edellä oleviin kysymyksiin vastaamalla saadaan jo kartoitettua hyvinkin kattava joukko erilaisia mikrokontrollereita. Mikrokontrollereiden kehitysalustat tarjoavat oivan mahdollisuuden tutustua valitun piirin eri ominaisuuksiin ja ohjelmointiin noin muutenkin. Kehitysalustoja on saatavilla hyvin laajalti ja monet elektroniikkaa myyvät nettikaupat tarjoavat näitä alustoja myös harrastajille. Esimerkiksi http://www.robomaa.com/ tarjoaa erilaisia mikrokontrollereiden kehityskittejä. | ||