Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Elektroniikka ja ohjelmointi

Sivun loppuun

Azure [11.04.2007 13:44:05]

#

Miten omatekoisia elektroniikka piirejä ohjelmoidaan esim. LED diodit vilkkumaan tietyllä tavalla jonkin ohjelman avulla. En ole vielä niin pitkälle kehittyny, että osaisin elektroniikka ohjelmointia, mutta ajattelin vain kysyä, että minne ohjelma sinne tallentuu(jollekkin mikropiirille vai?). Samoin olis mukava tietää, että mitä ohjelmointikieltä pitäisi alkaa opettelemaan, että oppisin ohjelmoimaan omia elektroniikka kytkentöjä sitten joskus. Kelpaako java vai olisko joku muu ohjelmointikieli helpompi tai parempi siihen hommaan?

tkarkkainen [11.04.2007 14:11:53]

#

Java ei oikein sovellu, sillä se on turhan korkean tason kieli. Mikrokontrollereille löytyy yleensä C-kääntäjä, joten C:n osaaminen on hyväksi. C++-kääntäjän löytyminen ei ole yhtä varmaa. Toisaalta jotkut ovat sitä mieltä että tosimies koodaa mikrokontrollerinsa assemblylla.

Kun koodi on valmis, se käännetään aivan kuten "tavallisessakin" ohjelmoinnissa. Sen jälkeen se pitää siirtää ohjelmoitavalle piirille, ja siihen tarvitaan ohjelmointilaite. Yksinkertaisimmillaan se voi koostua johdoista, vastuksista ja liittimistä, tai sitten voidaan käyttää vähän monimutkaisempiakin virityksiä. PC-päässä se kytketään yleensä sarja- tai rinnakkaisporttiin. Esimerkiksi AVR-perheen piirit ohjelmoidaan tyypillisesti niin, että piirilevyltä löytyy 6- tai 10-pinninen piikkirima, johon ohjelmointilaitteesta tökätään liitin. Sitten ohjelma laitetaan piirille PC:llä olevalta ohjelmistolta.

Ohjelmointilaitteita saa kaupasta, mutta niihin löytyy myös kytkentäkaavioita netistä. Riippuu kovasti valitsemastasi mikropiiristä, millaisen laitteen tarvitset.

Grez [11.04.2007 14:18:27]

#

Elektroniikalla pystyy rakentamaan vaikkapa ledivilkuttimen täysin ilman ohjelmointiakin. Eli tyyliin bistabiili multivibraattori voidaan helposti toteuttaa peruskomponenteilla.

Jos elektroniikkaan sisältyy prosessori, niin silloin kyseinen prosessori voi luonnollisesti ohjemoida. Lisäksi ohjelmoitavia logiikkapiirejä ohjelmoidaan. (Mikro)prosessorien ohjelmointi tapahtuu aivan samalla tavalla kuin PC:n prosessorinkin ohjelmointi, joskin yksinkertaisia mikrokontrollereita ohjelmoidaan ehkä useammin Assemblyllä kuin esim. PC:n prosessoreita nykyään. C ja C++ ovat varmaan yleisimmät sulautettujen järjestelmien ohjelmointikielet. Pienessä projektissa kätevintä on mikrokontrolleri, joka sisältää "kaiken tarvittavan", eli jossa on käyttömuistia joitakin kymmeniä tai satoja tavuja sekä puolesta kilosanasta muutamaan kilosanaan pysyvää muistia ohjelmakoodille. Tällöin käännetty ohjelmakoodi ohjelmoidaan suoraan mikrokontrollerille. On myös sellaisia mikrokontrollereita joissa on muistiväylä ulkoiselle muistipiirille. Tällöin käännetty ohjelmakoodi tallennetaan kyseiselle ulkoiselle muistipiirille ja (mikro)prosessori lukee sen sieltä.

Ohjelmoitavien logiikoiden ohjelmointi poikkeaa aika paljon prosessorien ohjelmoinnista (joskin hieman isompaan ohjelmoitavaan logiikkaan on usein mahdollista ohjelmoida prosessori, joka suorittaa ohjelmakoodia). Yleensä ohjelmoitavan logiikan kuvaamiseen käytetään VHDL tai Verilog tai vastaavia.

Java ei yleensä ole kovin pop vähätehoisissa sulautetuissa järjestelmissä, joskin muistaakseni Sunilla on omia javaprossuja joita voi toki käyttää. Ledivilkuttimeen sellainen tosin olisi varmasti "overkill".

Lahha [11.04.2007 15:02:52]

#

Mainostaisin tässä Elektroniikkafoorumia jonka ylläpidossa puuhailen, mutta näyttää personal.fi olevan taas maissa.

Osote on http://www.elektroniikka.dy.fi/

eraggo [21.04.2007 00:35:39]

#

Azure kirjoitti:

mutta ajattelin vain kysyä, että minne ohjelma sinne tallentuu(jollekkin mikropiirille vai?). Samoin olis mukava tietää, että mitä ohjelmointikieltä pitäisi alkaa opettelemaan, että oppisin ohjelmoimaan omia elektroniikka kytkentöjä sitten joskus.

Hei. opiskelen ammatikseni ko. asioita ja voin sanoa että osuit naulan kantaan: Ohjelmat kyllä tallentuvat mikropiireille, mutta ohjelmien tekeminen vaatii muutamia asioita, kuten: ohjelmointilaitteen (jos kyseessä olisi flash-muisteilla varustetut mikropiirit, niin laitteen voi tehdä itse), ohjelmointikielestä sen verran, että java ei todellakaan ole se paras mahdollinen (kääntäjiä assembly-kieleen nähden vähän). Assembly olisi 1 valinta mutta kyllä se C:lläkin onnistuu.

Baglair [21.04.2007 11:34:27]

#

En tiiä oiskos tästä hyötyä https://www.ohjelmointiputka.net/keskustelu/13844-piirilevyn-ohjelmointi

panttu [21.04.2007 13:19:30]

#

OOPICejä voi ohjelmoida javalla tosin ne on AVR-piirejä kalliimpia, mutta myös huomattavasti monipuolisempiakin.

netissä
http://www.tietomyrsky.fi/
http://www.esutech.com/OOPic/default.shtml

kirja
http://www.microsalo.com/mainos.html

eraggo [22.04.2007 13:20:23]

#

myös microchipin piireistä (esim. PIC16X84) löytyy ohjeita jopa suomenkielellä. suosittelen lämpimästi, että katot: http://koti.mbnet.fi/matjarv/elektron/pic/index.htm
sivuilla käsitellään ko. mikrokontrollerin ohjelmointia ja ohjelmointilaitteen tekemiseenkin löytyy ohjeet

sooda [22.04.2007 13:40:18]

#

Itse lueskelen juuri nyt (no, parhaillaan kirjoitan tätä viestiä, mutta äsken luin) attiny2313:n datasheetiä. Pic16f84:ää kokeilin, mutta siirryin pois siitä monestakin syystä.

- Ensinnäkin se on kalliimpi kuin esim. tämä avr (pic16f84 ~4-7e ostopaikasta riippuen, yleensä ~5.5e vs. attiny2313:n ~3.5e), ja sain niitä kaksi rikki jostain syystä, mahdollisesti syynä staattinen sähkö, vaikka varovainen olinkin. Kokeillaan vaihteeksi miten avr kestää sormiani.
- Picit tarvitsevat ohjelmointilaitteen. Valmiita ei kannata harkitakaan ostavansa kunhan juotin pysyy kädessä, hinnat ovat kymmeniä euroja. Alle kympillä rakentaa oman viritelmän, näille ei kuitenkaan ole hirveästi ohjeita ja hyvät vaativat korkeahkon (?) ulkoisen jännitelähteen. Monia eri piirejä ei voi samalla vimpaimella ohjelmoida. Monille avreille riittää käsittääkseni tyyliin parin vastuksen kautta printteriporttiin kytkeminen tietyistä nastoista.
- Avreista löytyy rutkasti tietoa ja monia foorumeita. http://www.avrfreaks.net/ on kiva.
- Laiskana en jaksa assemblyllä hirveän paljon kirjoitella vaikka ihan mielenkiintoista se onkin eikä 16f84:n käskykanta iso ole (muutama kymmenen käskyä), avreille on jopa avr-gcc ja jonkinmoinen c-standardikirjasto. C:tä on mielestäni mukavampaa ja huomattavasti nopeampaa kirjoittaa kuin assemblyä. Pieniin picceihin ainakaan ei hyviä c-kääntäjiä ole.
- Käsittääkseni melkein kaikissa avreissa on valmiina jo usart sarjaporttikikkailuun ja useampi sisäinen pwm-ajastin, esim. pic16f84:ssä ei mitään.
- yms.

En näissä mitenkään ammattilainen ole, aloittelen vasta. Avr:t vaan jotenkin tuntuvat mukavammalta vaihtoehdolta. Kirjoittelin kun on nyt itselle vähän ajankohtaista.

eraggo [22.04.2007 13:46:07]

#

jännitettä ohjelmointilaite tarvitsee 16-24V. Eli se on suhteessa hieman suuri. kyllä avr käy myös. itse en ole vain sattunut huomaamaan sellaista :D katsois senkin tietoja...

Grez [22.04.2007 14:23:02]

#

sooda kirjoitti:

- Ensinnäkin se on kalliimpi kuin esim. tämä avr (pic16f84 ~4-7e ostopaikasta riippuen, yleensä ~5.5e vs. attiny2313:n ~3.5e), ja sain niitä kaksi rikki jostain syystä, mahdollisesti syynä staattinen sähkö, vaikka varovainen olinkin. Kokeillaan vaihteeksi miten avr kestää sormiani.

Aika mielenkiintoista ottaa vertailukohteeksi melko ikivanha PIC ja suht tuore AVR. Attinyt2313 vs PIC16F819 (alle 2e) olisi ehkä järkevämpi vertailukohta. En ole koskaan saanut yhtään picciä rikki staattisella sähköllä vaikka olen miten huolettomasti käsitellyt. En kyllä AVR:kään.

sooda kirjoitti:

- Picit tarvitsevat ohjelmointilaitteen. Valmiita ei kannata harkitakaan ostavansa kunhan juotin pysyy kädessä, hinnat ovat kymmeniä euroja.

Jälleen vanhat vaativat korkean jännitteen, uudet eivät. Ja kaikki mikrokontrollerit vaativat ohjelmointilaitteen, ihan valmistajasta ja mallista riippumatta. Yleensä ohjelmointilaite on PC ja sitten se itse rakennettavissa oleva on lähinnä sovitinkaapeli. Olen kyllä tehnyt ihan ohjelmointilaitteenkin niin PICeille kuin AVRllekin (eli ohjelmoivat itsenäisesti ilman PC:tä).

sooda kirjoitti:

- Käsittääkseni melkein kaikissa avreissa on valmiina jo usart sarjaporttikikkailuun ja useampi sisäinen pwm-ajastin, esim. pic16f84:ssä ei mitään.

Joo, tässä voi taas kysyä että miksi ihmeessä käytät tuollaista antiikkimallia?

Sinänsä aika sama mulle mitä käytät, piti nyt vaan noita muutamia kohtia kommentoida ettei jää ihmisille pahasti väärää käsitystä.

GCC:n AVR-tuki on kyllä erinomainen peruste AVR:n valintaan. Tosin silläkään ei voi huonoimmille AVR:lle koodata.

sooda [22.04.2007 14:41:42]

#

Nojoo, ei ehkä olisi pitänyt kirjoitella kun ei kamalasti tosiaan ole uudemmista kokemusta. :o sori hämmennyksestä. 16f84 vaan tuntuu olevan paljon esillä pic-sivuilla, niin unohtui että mokoma on vanhake. (ja eraggokin sen mainitsi, niin hämäs :p)

eraggo [22.04.2007 19:45:35]

#

oon ite tottunut enemmän 18f84:een :D sori jos en maininnut tota uudempaa ;)

maka78 [23.04.2007 08:57:38]

#

Mainittakoon vielä että mm. PIC:eille löytyy myös basic-kääntäjä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta