A mikrokontroller nem más, mint egy komplett számítógép, aminek csak és kizárólag néhány perifériája van kivezetve. Na jó, lehet, hogy a mai GHz-es nagyságrendű órajellel menő 64-bites processzorokkal menő gépekhez képest túlzás a "számítógép" kifejezés egy 1-2 MHz-el menő áramkörre, amiben egy 8 bites processzor van, és pár 100 Byte memória gubbaszt mellette, ha egyáltalán van benne memória. Architektúráját tekintve viszont teljesen illeszkedik a Neuman által elképzelt rendszerre.
A nagy világban sok mikrokontroller létezik, mindegyikhez külön-külön égető és fejlesztőeszköz tartozik. Általában egy égető beszerzése nem olcsó mulatság, csak akkor érdemes, ha sorozatban gyártunk valamit, vagy nagyon elszánt "hobby-elektrobűvészek" vagyunk. Az Atmel által fejlesztett AVR architektúra esetén sincs ez másképp. Fejlesztőeszköznek az AVR Studio-t ajánlják, ami ingyenesen letölthető, de kizárólag Windows alatt fejleszthetünk vele. Az égetőt is meg lehet venni, ami nagyságrendileg 20 000 Ft-os beruházás.
Hohó! Ennyire nem szomorú a helyzet. Az AVR architektúra esetén léteznek más fejlesztői eszközök is, pl. tavrasm, avr-gcc (mellesleg ezt hasztálja az AVR Studio is), amelyek UNIX alatt is mennek. Hurrá, tudunk a megszokott UNIX-os környezetben fejleszteni, már csak rá kell égetni a programot a chip-re...
Ezzel az írási móddal azonban nem tudunk mindent megoldani. Vannak bizonyos speciális bitek (fuse bits, lock bits), amiket csak "nagy feszültségű" íróval lehet állítani. Ide tartozik a beépített RC oszcillátor ki-be kapcsolása.
A "nagy feszültségű" írás attól nagy feszültségű, hogy a mikrokontroller RESET lábára 12V-ot kell kapcsolni. Az égetőhöz kell egy egyszerű tápegység, ami ad nekünk 12V-ot, és egy kis illesztőáramkör, amivel tud kommunikálni a PC.
Egy ilyen illesztőáramkört a fent leírt okok miatt a legegyszerűbben és
legolcsóbban egy mikrokontrollerrel tudunk megvalósítani. Erre az
AT90S1200-at
választottam. Ez teljesen kompatibilis az AT90S2313-mal és az ATtiny2313-mal.
Az elvi kapcsolási rajz itt látható:
A párhuzamos port 8 adatbitje egy az egyben hozzá lett kötve az égetendő mikrokontroller adatportjára (AT90S1200 esetn PortB). Itt fog megjelenni a megfelelő cím- vagy adat-byte. Valahol vezérelni is kell a vezérlő mikrokontrollert is, így az első 2 adatbit a vezérlő IC-hez is hozzá lett kötve. Az, hogy ugyanazon vezetékeken egyszer az égetendő, egyszer pedig vezérlő IC-nek szóló jel jelenik meg, nem okozhat gondot, ugyanis a vezérlő IC mindig tudja, hogy éppen mi van az adatkábeleken, az égetendő IC-nek meg csak akkor ad órajelet a vezérlő IC, amikor éppen neki szóló byte van beállítva. (Ez persze csak akkor igaz, ha a vezérlő IC-be égetett program illeszkedik a meghajtóprogramhoz.)
Hogy az IO lábakat pontosan hogy kötjük be, azt programból könnyű beállítani,
ezért nem arra törekedtem, hogy az 1-es bit az aktuális port 1-es bitjére kerüljön,
hanem arra, hogy a nyák ne legyen nagyon kusza. Az általam készített nyák
egy egyszerű egy oldalas nydák, házilag fotolakkos vagy vasalós technikával elkészitheto. Igénytelenebbek
alkoholos filctollal is kísérletezhetnek.
Íme a nyákrajz:
avrburn_nyak-1.0.0.fig
avrburn_nyak-1.0.0.pdf
avrburn_nyak-vasalo-1.0.0.pdf
Ez utóbbi nyákrajz a "vasalós" technikához készült, vagyis a tényleges nyák
fordítottját látjuk a pdf fájlban. Ha ezt kinyomtatjuk lézernyomtatóval és
rávasaljuk a nyers nyáklapra, akkor éppen jó lesz. Ajánlatos vasalás után
alkoholos filctollal átrajzolni ,,lyukak'' számának csökkentése érdekében.
Ahhoz, hogy tényleg meg tudjuk építeni, szűkségünk van a páruhamos port bekötésére, ez itt van: parport.html
Itt tölthető le a jelenlegi vezérlőprogram:
avrburn-1.0.0-beta1.tar.gz
A forrás tartalmazza a mikrokontroller kódjának forrását továbbá a nyákrajzokat és a kapcsolási
rajzot is.
Mivel nem minden AVR mikrokontrollernek egyezik meg az írási módja, meg kell
adnunk egy típust is a -t kapcsolóval.
Ajánlatos a -e kapcsolót használni, ekkor törli is a mikrokontrollert az
írás előtt.
Pl.:
avrburn -t atmega -e prog.bin