Pitäisi valita mikrokontrolleri. Eri tarpeisiin on erilaisia mikrokontrollereita, mutta mikähän täyttäisi kaikki seuraavat vaatimukset samassa mikrokontrollerissa ?
1. Mahdollisuus ohjelmoida sekä Pascalilla että assemblerilla. Jos voi ohjelmoida edellisten *lisäksi* myös C -kielellä, tästä lisäplussaa, mutta ainkain Pascal- ja assemblerohjelmointi tulee olla mahdollista.
2. Kotelointityyppi: joko DIL -kotelo (tyypillisesti 28 tai 40 -nastainen) tai pintaliitosmalli kelpaa, JOS on olemassa piirikanta, joka juotetaan perinteisesti 2.54mm rasterilla oleviin reikiin piirilevylle ja johon pintaliitosmalli sitten vain painetaan kiinni, mahdollisesti ZIF -tyyppinen kanta (kuten PC:n prosessoreissa). Jos tällaista piirikantaa ei ole olemassa, miksei ? - luulisi, että tulisi merkittäviä säästöjä piirivalmistajille, kun erillistä DIL -koteloitua mallia ei tarvitsisi tehdä, koska sopiva piirikanta mahdollistaisi pintaliitosmikropiirin käytön myös perinteisillä läpivienteihin perustuvalla piirilevyllä !
3. Hyvä saatavuus. Pitäisi siis löytyä joko Bebekistä tai Partcosta, ehkä YE:stä tai YE:n kautta RS Componentsista tilaamalla.
Hyvin toteutettu ulkomainen webbikauppa voisi ehkä tulla kyseeseen, jos voi tilata ja maksaa vaikkapa Visa Debitillä ja/tai Verified By Visa -palvelulla.
4. Assemblerohjelmoinnista: Z80 -tyylisestä ohjelmoinnista iso plussa, 8051 -tyylisestä taas miinus. Ai miksikö? Koska Z80:ssa on laaja ja selkeä käskykanta ja paljon rekistereitä sekä 8- bittisyydestä huolimatta mahdollisuus käyttää 16 -bittisiä rekistereitä (IX ja IY) tai -pareja (BC, DE, HL). 8051:ssähän on 1 ainoa 16 -bittinen datarekisteri ja esim. lohkon kopiointi edellyttää siksi tuon ainoan 16-bit osoiterekisterin jatkuvaa uudelleenasetusta lähde- ja kohdeosoitteiden välillä!
5. RAM -muistia riittävästi. ehdoton minimi 1024 tavua !
6. Helppo ohjelmointi myös ilman erillistä ohjelmointilaitetta. Eli joko ns. In-Circuit programming tai sitten valmistajan esiohjelmoima buuttilataaja, joka käynnistyy heti kun virta kytketään (mahd. esim. DIP -kytkimellä valittavissa, käynnistyykö buuttilataaja vai käyttäjän aiemmin piirille ohjelmoima koodi) niin että buuttilataaja ottaa vastaan sarjaportista tai USB -kaapelilla tulevan ohjelmakoodin ja sen voi samantien käynnistää. Toki siis sitten kun systeemi on valmis, sen tulee pystyä toimimaan ilman PC.tä
7. PC -ohjelmointi mieluiten USB -kaapelilla, mutta myös RS-232 sarjaohjelmointi mahdollinen.
Pascal -kääntäjäksi olen ajatellut tätä:
http://users.iafrica.com/r/ra/rainier/
Versiot siis saatavilla näihin:
Z80/Z180 and compatible
8051/8052 and compatible
ATMEL AVR
Z380/Z382 ( Beta )
Jos homma kaikesta huolimatta (=hankala assemblerohjelmointi) päätyy 8051 -pohjaisiin, niin mahdollisesti Pascal -ohjelmointiin voisi tulla kyseeseen myös tämä:
http://turbo51.com/
1. Mahdollisuus ohjelmoida sekä Pascalilla että assemblerilla. Jos voi ohjelmoida edellisten *lisäksi* myös C -kielellä, tästä lisäplussaa, mutta ainkain Pascal- ja assemblerohjelmointi tulee olla mahdollista.
2. Kotelointityyppi: joko DIL -kotelo (tyypillisesti 28 tai 40 -nastainen) tai pintaliitosmalli kelpaa, JOS on olemassa piirikanta, joka juotetaan perinteisesti 2.54mm rasterilla oleviin reikiin piirilevylle ja johon pintaliitosmalli sitten vain painetaan kiinni, mahdollisesti ZIF -tyyppinen kanta (kuten PC:n prosessoreissa). Jos tällaista piirikantaa ei ole olemassa, miksei ? - luulisi, että tulisi merkittäviä säästöjä piirivalmistajille, kun erillistä DIL -koteloitua mallia ei tarvitsisi tehdä, koska sopiva piirikanta mahdollistaisi pintaliitosmikropiirin käytön myös perinteisillä läpivienteihin perustuvalla piirilevyllä !
3. Hyvä saatavuus. Pitäisi siis löytyä joko Bebekistä tai Partcosta, ehkä YE:stä tai YE:n kautta RS Componentsista tilaamalla.
Hyvin toteutettu ulkomainen webbikauppa voisi ehkä tulla kyseeseen, jos voi tilata ja maksaa vaikkapa Visa Debitillä ja/tai Verified By Visa -palvelulla.
4. Assemblerohjelmoinnista: Z80 -tyylisestä ohjelmoinnista iso plussa, 8051 -tyylisestä taas miinus. Ai miksikö? Koska Z80:ssa on laaja ja selkeä käskykanta ja paljon rekistereitä sekä 8- bittisyydestä huolimatta mahdollisuus käyttää 16 -bittisiä rekistereitä (IX ja IY) tai -pareja (BC, DE, HL). 8051:ssähän on 1 ainoa 16 -bittinen datarekisteri ja esim. lohkon kopiointi edellyttää siksi tuon ainoan 16-bit osoiterekisterin jatkuvaa uudelleenasetusta lähde- ja kohdeosoitteiden välillä!
5. RAM -muistia riittävästi. ehdoton minimi 1024 tavua !
6. Helppo ohjelmointi myös ilman erillistä ohjelmointilaitetta. Eli joko ns. In-Circuit programming tai sitten valmistajan esiohjelmoima buuttilataaja, joka käynnistyy heti kun virta kytketään (mahd. esim. DIP -kytkimellä valittavissa, käynnistyykö buuttilataaja vai käyttäjän aiemmin piirille ohjelmoima koodi) niin että buuttilataaja ottaa vastaan sarjaportista tai USB -kaapelilla tulevan ohjelmakoodin ja sen voi samantien käynnistää. Toki siis sitten kun systeemi on valmis, sen tulee pystyä toimimaan ilman PC.tä
7. PC -ohjelmointi mieluiten USB -kaapelilla, mutta myös RS-232 sarjaohjelmointi mahdollinen.
Pascal -kääntäjäksi olen ajatellut tätä:
http://users.iafrica.com/r/ra/rainier/
Versiot siis saatavilla näihin:
Z80/Z180 and compatible
8051/8052 and compatible
ATMEL AVR
Z380/Z382 ( Beta )
Jos homma kaikesta huolimatta (=hankala assemblerohjelmointi) päätyy 8051 -pohjaisiin, niin mahdollisesti Pascal -ohjelmointiin voisi tulla kyseeseen myös tämä:
http://turbo51.com/
Vastaukset 3
Vanhimmat
Tuohon Pascal-ohjelmointiin on ilmeisestikin hyvin perusteltu syy. Sitä en epäile. Omissa kokemuksissa on kokeilu jossa laiskuuttani kopioin pascalilla kirjoitetun pätkän copy/paste systeemillä ConTEXT-editoriin ja jossa winavr teki siitä "selvää jälkeä". Kun en tunne Pascal-kieltä riittävän hyvin joten en uskaltanut muutella muuta kuin vakioitten arvoja tapaukseen sopiviksi. Assemblerohjelmoinnista luovuin suosiolla juuri tuon rekisterirumban pienentämiseksi. Tottakai C:llä ja Pascalilla käsitellään myös rekistereitä, mutta jätetään ne koneen tehtäväksi ja keskitytään ohjelmointiin.
Saatavuus monella piirillä on suhteellisen lyhytjänteistä. Nyt uusin on "muutaman" vuoden kuluttua katseltava siihen korvaavaa tyyppiä josta mahdollisesti vielä tulee pieniä muutoksia alkuperäiseen ohjelmaan. Itse ohjelmoin piirit paikallaan sovellutuksessa jolloin kotelotyypillä ei ole mitään väliä. DIL-koteloiset puuttu toistaiseksi.
Läppärissä on USB-sovitteinen ja pöytäkoneeseen RS232 sekä LPT sovitteiset ohjelmointi kaapelit. Kaikki ovat "kotikutoisia". Valmiit kaapelit ovat suhteellisen edullisia ettei itse tehtynä saavuteta suuriakaan säästöjä ellei sitten puhuta jostain JTAC-kaapelista joitten hinta saattaa olla suolainen.
Jos 8051-pohjaisuus ei ole ylivoimainen este, niin tutustu tähän tutoriaaliin:
http://robotti.wikidot.com/local--files/silabs-ohjeet/ToolStick_ohje.pdf
Minulla on tuossa jäänyt itse tehty mikron rakennussarja. Siinä on piirilevy, useita mikroja ja kirja C and 8051 DC-levy. Jos kiinostaa, niin osoitteen saat blogistani
elektroniikkaabytane.blogspot.com.