Mikrokontrollerit

Seuraa 
Viestejä848
Liittynyt30.9.2005

No, tätä ledikeskustelua seuranneet tietävät miksi kiinnostukseni heräsi... Nyt tämä on jo kuitenkin irti alkuperäisestä aiheesta, joten ajattelin että tämä ansaitsisi oman ketjunsa.

Nyt siis kiinnostaisi tietää mikä olisi hyvä tapa aloittelijalle tutustua mikrokontrollerien ohjelmointiin. Ihan tyhjästä en lähde liikkeelle, vaan olen jonkin verran analogia- ja hitusen yksinkertaista digitaalielektroniikkaakin suunnitellut ja rakentanut. Ja ohjelmointia jokunen kurssi koulussa. Mutta mikrokontrollereista ei siis ole mitään kokemusta.

Mistä siis olisi hyvä lähteä liikkeelle? Miten olisi vaikka tämä Microchpin ohjelmointikitti?

Kommentit (10)

Vierailija
iisakka
No, tätä ledikeskustelua seuranneet tietävät miksi kiinnostukseni heräsi... Nyt tämä on jo kuitenkin irti alkuperäisestä aiheesta, joten ajattelin että tämä ansaitsisi oman ketjunsa.

Nyt siis kiinnostaisi tietää mikä olisi hyvä tapa aloittelijalle tutustua mikrokontrollerien ohjelmointiin. Ihan tyhjästä en lähde liikkeelle, vaan olen jonkin verran analogia- ja hitusen yksinkertaista digitaalielektroniikkaakin suunnitellut ja rakentanut. Ja ohjelmointia jokunen kurssi koulussa. Mutta mikrokontrollereista ei siis ole mitään kokemusta.

Mistä siis olisi hyvä lähteä liikkeelle? Miten olisi vaikka tämä Microchpin ohjelmointikitti?

Itse ohjelmointia voit opiskella suoraan kirjoista. Ehkä parhaiten asia selitetään kyseisen aiheen oppikirjoissa. Siinä vaiheessa, kun osaa jo ohjelmoida kannattaa varmaan hankkia jonkun piirivalmistajan "evaluation board" (tälle on varmaan joku hyvä suomennoskin?) jolla voi testata kirjoitettua koodia. Riittävällä elektroniikan taidolla ja "data sheet":n kyttäämisellä voit myös rakentaa oman raudan.

Oletan, että haluat ohjelmoida assemblerillä? Tätä varten löydät hyviä dokumentteja piirivalmistajien kotisivuilta. "instruction set":stä eli käskykannasta näet kaikki mahdolliset käskyt prossulle. 8-bittisellä Microchipin PIC:llä on ihan hyvä aloittaa. Ei se mikään tehokas vehje ole, mutta käskykannan puolesta ehkä helpoin. Muistaakseni Microchipiltä sai vielä jonkunlaisen kääntäjäympäristön millä pystyi simuloimaan koodia (MLAB?).

Volitans
Seuraa 
Viestejä10670
Liittynyt16.3.2005

MPLAB:lla voi tosiaan ajaa koodia virtuaalisesti ilman ensimmäistäkään mikrokontrolleria - itse tein ensimmäisen PIC-softani juuri tuolla, enkä ollut edes kyseistä piiriä nähnyt. Joissain malleissa onnistuu myös oikean piirin debuggaus MPLAB:lla - itse en ole käyttänyt tuota, mutta olen rakennellut omat debuggaus rutiinit, joilla saa dataa syötettyä sarjaporttiin tai kytkennässä kiinni olevalle LCD:lle.

Noita PIC:ejä löytyy hurja valikoima eri ominaisuuksilla. Löytyy PWM:ää, timereita, A/D-muuntimia, EEPROMia, komparaattoria jne. Monissa malleissa on myös sisäinen kello, jolloin ulkoista kidettä tms. ei tarvita - erittäin hyvä ominaisuus, koska ainakin itsellä tulee lähes aina ongelmia koekytkentälevyn kanssa ulkoista kidettä käyttäessä.

PICeistä on monesta ihan perinteisä DIP-malleja, kuin myös pintaliitosversioita. Pinnejä ja kokoja löytyy. Itselläni on tuossa vielä kokeilematta muutama ainakin joskus maailman pienin mikrokontrolleri: PIC10F202 - sen verran pieniä, että kerran jo hävisivät!

Hyvä startti on microchipin oma PicKit2, joka on USB-porttiin tuleva ohjelmointilaite. Tuolla pystyy ohjelmoimaan kontrollerin, joka on kytkennässä kiinni - mahdollistaa päivityksen jopa valmiiseen laitteeseen.

Assembleria ei välttämättä tarvitse - paitsi, jos on kyse nopeutta vaativasta aikakriittisestä koodista. Kääntäjiä löytyy C:tä ja Basicia ainakin. Itse käytän C:tä ja tarvittaessa assembleria.

Muista kontrollereista ei itsellä juurikaan ole tietoa, mutta ainakin Atmelia on kehuttu.

Tuosta käskykannasta, sen pienuudesta ja helppoudesta vielä: Kun vehkeessä on vain kolmisenkymmentä käskyä, niin ohjelmointi ei siitä ainakaan helpotu! Jopa kahden luvun vertailu suuremman selvittämiseksi vaatii hieman pähkäilyä. Noissa PIC:ssä on se hyvä puoli, että käsky vie aina yhden kellojakson (paitsi hyppy 2), joka mahdollistaa tarkan ajoituksen - yllättäen huomaakin, että NOP (No Operation) on erittäin hyödyllinen komento ajastuksen säädössä.

Vierailija

Itse valitsin Atmelin prossun. Ilmainen ohjelmointiympäristö houkutteli. Lisäksi lataamisessa ei tarvita sen kummempia ohjelmointilaitetta kuin rinnakkaisportti. Eikä prossukaan tarvitse oheiskomponentteja ympärilleen kovin paljoa.

ykskivi
Seuraa 
Viestejä1950
Liittynyt27.3.2006

Tässä mielenkiintoinen uutuus: http://www.parallax.com/propeller/index.asp

Kannattaa katsoa myös niitä basic stamp - moduleja.

To refuse a hearing to an opinion, because one is sure that it is false, is to assume that one's own certainty is the same thing as absolute certainty. All silencing of discussion is an assumption of infallibility. - John Stuart Mill -

Neutroni
Seuraa 
Viestejä26835
Liittynyt16.3.2005
iisakka
No, tätä ledikeskustelua seuranneet tietävät miksi kiinnostukseni heräsi... Nyt tämä on jo kuitenkin irti alkuperäisestä aiheesta, joten ajattelin että tämä ansaitsisi oman ketjunsa.

Nyt siis kiinnostaisi tietää mikä olisi hyvä tapa aloittelijalle tutustua mikrokontrollerien ohjelmointiin.

Riippuu aloittelijan käytettävissä olevan ajan ja rahan suhteesta. Helpoin on tosiaan hankkia joku valmis ohjelmointiympäristö, jossa on kortti ja ohjelmat valmiina. Niitä saa kai kaikkiin mikro-ohjaimiin. Yksinkertaisimmillaan ne eivät ole kalliita, muutamasta kympistä alkaen. Kontrolleriperheen valinta lienee aika samantekevää. Atmelin AVR-piirit ovat esimerkiksi kohtuullisen helposti lähestyttäviä (oma kokemus), mutta tiettävästi suuria eroja ei siinä suhteessa ole. Jos sinulla on joku tuttu, joka harrastaa mikrokontrollereja säästät paljon kantapään kautta opettelun tuskaa valitsemalla saman kontrolleriperheen ja kysymällä neuvoa. Tietysti kannattaa valita yleinen piiriperhe, jotta kontrollereja on ylipäätään pieninä määrinä saatavilla. AVR:iä ja PIC:ejä on ainakin saatavilla.

Matalan budjetin lähestyminen on tehdä ohjelmointilaite itse. Ohjeita on maailma väärällään, kyllä niillä ihan toimivia laitteita aikaansaa. Toisaalta jos kaikki on outoa, ongelmien selvittelyyn kuluu valtavasti aikaa, kun ei tiedä onko vika omassa ohjelmassa, netistä ladatun ohjelmointiohjelman asetuksissa vai laitteissa. Minusta kannattaa ennemmin kerätä budjetti kasaan, ostaa valmis ohjelmointilaitteisto ja käyttää virittelyltä säästynyt aika itse piirien toiminnan opiskeluun.

MaKo71
Seuraa 
Viestejä1467
Liittynyt15.11.2006

Mikrokontrollereista yleensä; itse aikoinani ohjelmoin PIC:iä, mutta kuuleman mukaan AVR on kuronut välimatkan umpeen ja ehkä jopa edelle. PIC:stä oli joskus olemassa sellainen 50/75 MHz versio, joka kiinnosti kovasti, mutten koskaan päässyt siihen käsiksi.

tietää
Voisiko kännyn ohjelmoida, johonkin ohjainkäyttöön? Mikähän niiden ohjelmointiympäristö on?

Sympparipuolelle voi tehdä itsekin koodia, mutta puhelimissa on harvoin I/O -pinnejä, joita kontrollerikäytössä tarvitaan. Toki löytyy sellaisia M2M-moduuleita, joissa on siis puhelin, prosessori ja IO. Eräs kaveri käytti PIC:iä ohjaamaan tavallista kännykkää piuhan kautta (siis lähinnä lähettämään tekstiviestejä).

Uusimmat

Suosituimmat