# Mikrokontrolleri

Mikro-ohjain
**Mikro-ohjain** eli **mikrokontrolleri** (MCU, engl. *microcontroller unit*) on mikropiiri (integroitu piiri), jossa on mikroprosessori ja joitain muisti- ja liityntälohkoja. Mikro-ohjaimia käytetään sulautetuissa järjestelmissä. Esimerkiksi television, pesukoneen, mikroaaltouunin ja digitaalisen lämpömittarin ohjaustoiminnot ovat usein mikro-ohjaimella toteutettuja.

Mikro-ohjaimessa on yleensä suorittimen lisäksi jotain seuraavista:

* ohjelmamuistia
* datamuistia
* I/O-nastoja

Lisäksi joissakin malleissa voi olla:

* A/D-muunnin
* keskeytysohjain
* ajastinpiiri
* reaaliaikakello
* väylälogiikkaa (RS-232, I2C, GPIO ja niin edelleen)
* vahtikoira-piiri (engl. *watchdog timer*), joka pitää huolen siitä, että ohjelma jumiutuessaan käynnistetään uudelleen.

Kyseessä on siis pieni tietokone, joka ei välttämättä tarvitse muuta kuin virtalähteen toimiakseen. Eräiden valmistajien termistössä mikrokontrolleria kutsutaankin mikrotietokoneeksi.
Toisaalta mikrokontrollerit voivat sisältää vähemmän komponentteja, jotta koko toiminallisuus mahtuu yhdelle piirille. Mikrokontrollerien käyttökohteet eivät vaadi suurta nopeutta tai ohjelmallista monimutkaisuutta. Eräitä oheispiirejä vaativia mikroprosessoreita on kutsuttu MPU:ksi (engl. *micro-processor unit*): MPU-konseptin sanotaan saaneen hyväksyntää 8-bittisten prosessorien myötä.

Nykyään järjestelmäpiiri voi integroida vielä enemmän komponentteja samalle piirille, kuten grafiikkaprosessorin ja langattoman verkon moduulin.

## Käyttö

Mikro-ohjaimen sisältävän laitteen piirilevy on helpompi, edullisempi ja nopeampi valmistaa kuin samat toiminnot logiikkapiirien avulla toteuttavan laitteen piirilevy. Mikro-ohjainta käyttämällä voidaan siis laskea laitteen hintaa, ja lisäksi tulee mahdolliseksi tehdä muutoksia laitteen toimintaan jälkikäteen muuttamalla pelkästään mikro-ohjaimeen ladattavaa ohjelmaa. Tämä on suuri etu elektroniikkateollisuudelle, mutta myös elektroniikan harrastajalle. Erilaiset mikro-ohjaimet ovatkin keränneet ympärilleen suuren joukon harrastajarakentelijoita. Esimerkkejä harraste-elektroniikkasarjoista ovat Arduino, BASIC Stamp, Netduino.

Jotta mikrokontrolleri voi suorittaa haluttuja toimintoja, se tarvitsee ohjelman, joka kirjoitetaan yleensä henkilökohtaisen tietokoneen ohjelmointiohjelmalla, joka sen jälkeen siirretään kontrolleriin.
Irrallisen kontrollerin ohjelmointiin tarvitaan ohjelmointilaite, mutta toisaalta jos kontrolleri on jo valmiilla alustalla, jossa on liitäntä henkilökohtaisen tietokoneen sarja-, rinnakkais- tai USB -portille, niin ohjelmat voidaan siirtää kontrolleriin tämän portin kautta.

## Eri valmistajien mikro-ohjaimia

* TI MSP430 − erityisesti pienen tehonkulutuksen sovelluksiin suunniteltu 16-bittinen mikro-ohjainperhe.
* Microchip PIC − harrastelijoiden suosima mikro-ohjainperhe, johon löytyy runsaasti materiaalia Internetistä.
* Atmel AVR
* ARM − suosittu myös matkapuhelinlaitteissa
* Freescale Semiconductor (ex. Motorola Semiconductor) 68300-sarja
	+ 8-bittiset
	+ 16-bittiset
	+ 32-bittiset
		- PowerQUICC – PowerPC-ytimiin perustuvat tietoliikenneorientoituneet mikrokontrollerit
* Intel 8051 – Intel ei enää jatka sen tuotantoa. Tämä arkkitehtuuri on saatavilla monilta muilta valmistajilta, esimerkiksi Infineonilta, Hitachilta ja Atmelilta, myös integroituna muihin piireihin.

## Valmiita kehitysvälinepaketteja

Mikro-ohjainsovellusten kehitykseen sopivia, valmiita kehitysvälinepaketteja on saatavilla useita, kuten Picaxe, joka soveltuu muun muassa opetuskäyttöön johtuen mahdollisuudesta ohjelmointiin tietokoneella sarjakaapelin välityksellä.

## Markkinat

Vuonna 2013 arvioitiin toimitettavan 6,7 miljardia 4- ja 8-bittistä mikrokontrolleria vuodessa.

8-bittisten mikrokontrollereiden markkinat olivat arvoltaan 7,38 miljardia Yhdysvaltain dollaria vuonna 2017. Maailmanlaajuinen mikrokontrollereiden markkinoiden (8-, 16- ja 32-bittiset) arvioitiin olevan 18,60 miljardia Yhdysvaltain dollaria vuonna 2018.

## Katso myös

* Luettelo mikrokontrollereista
* Järjestelmäpiiri

## Lähteet

## Aiheesta muualla

* ARM (englanniksi)
* Freescale (englanniksi)
* Microcontroller.com (englanniksi)