0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaProgramiranjeKako v programski prostor mikrokontrolerja shraniti več programov

    Kako v programski prostor mikrokontrolerja shraniti več programov

    Nekateri mikrokontrolerji imajo veliko več programskega pomnilnika, kot ga zares potrebujemo za določeno opravilo. To nam ponuja možnost, da v mikrokontroler istočasno vpišemo nekaj različic istega programa, lahko pa celo popolnoma različnih programov, ki se bodo izvajali namesto glavnega. To je lahko koristno med razhroščevanjem, za demo programe, za različne izpise in še v mnogih drugih primerih. Postopek bomo ilustrirali za mikrokontrolerje iz družin AVR in 8051, ki jih programiramo v Bascom-u, kot idejo pa ga lahko uporabimo tudi za programiranje v drugih programskih jezikih in celo z drugimi družinami mikrokontrolerjev

    Slike ni

    Takoj na začetku naj opozorimo na morebitno napačno razumevanje: postopek, ki ga bomo opisali ne omogoča shranjevanja večjega števila samostojnih programov v programski pomnilnik mikrokontrolerja! Namesto tega bomo pokazali več možnosti, kako znotraj enega programa »zapakirati« različne programe ali njihove različice, kako moramo takšen program organizirati in želeni program ali njegovo različico izbrati, da ga bo mikrokontroler izvajal. Izbiro programa lahko naredimo na več bolj ali manj zapletenih načinov, izbrali pa bomo najbolj preprostega, pri katerem program izberemo s konfiguracijskimi stikali ali z mikrostikali.

    Izbira programa – rešitev z vezjem

    Slika 1 prikazuje »konfiguracijsko vezje«, sestavljeno iz treh stikal ali mikrostikal (S1, S2 in S3), ki omogočajo izbiro enega izmed osmih zapisanih programov v programskem pomnilnikumikrokontrolerja. V odvisnosti od naših potreb lahko to število še povečamo ali zmanjšamo: če dodamo le še eno stikalo, bomo lahko izbirali med 16-timi programi, kar pa bomo le redko potrebovali.

    Slika 2 prikazuje DIL-stikala (levo) in kodno stikalo (desno), ki sta primerna za uporabo v vezju na sliki 1. V prikazanem stikalu so vgrajena po 4 mikrostikala. DIL-stikala proizvajajo v izvedbah z različnim številom vgrajenih mikrostikal; za uporabo v vezju na sliki 1 bo najprimernejše trojno stikalo. Razen v heksadecimalni izvedbi s slike 2, so kodna stikala lahko še BCD (4 mikrostikala, 10 položajev) ali v oktalni izvedbi (3 mikrostikala, 8 položajev). Za uporabo v vezju na sliki 1 bi bilo najprimernejša oktalna izvedba, uporabimo pa lahko tudi vse ostale, če priključek mikrostikala, ki predstavlja najpomembnejši bit, pustimo nepriključen.

    V primerjavi z DIL-stikali, je kodno stikalo primernejša rešitev, saj je s položajem vrtljivega dela nazorno prikazan izbrani program. Slaba stran kodnih stikal pa je, da imajo po en priključek vsakega od vgrajenih mikrostikal interno povezan na skupni izhodni priključek stikala, zato ga v vseh primerih ne moremo uporabiti. DIL-stikalo je v tem smislu bolj prilagodljivo, saj imajo vsi priključki mikrostikal lastne priključke tudi na ohišju.

    Slike ni

    Slika 1 prikazuje tri različice, od katerih je leva (slika 1a) najenostavnejša. V tej vezavi lahko uporabimo DIL stikalo ali kodno stikalo. Slabost te vezave je, da se priključki mikrokontrolerja, ki so uporabljeni za branje stikala, ne morejo uporabljati v druge namene. Ta vezava je dobesedno potratna z viri mikrokontrolerja: položaj teh stikal namreč beremo na začetku programa in morda občasno še med izvajanjem programa, sicer pa so ti priključki popolnoma neizkoriščeni.

    To lahko popravimo z dodajanjem treh MOSFET tranzistorjev (slika 1b). Potrebujemo še četrti priključek, s katerim vklapljamo in izklapljamo tranzistorje. Položaje konfiguracijskih stikal lahko preberemo samo takrat, kadar so tranzistorji vključeni. Ko tranzistorje izklopimo, ostanejo priključki za branje stikal prosti i njih lahko uporabimo kot običajne vhodne ali izhodne priključke (za druge namene ostane neuporaben le priključek, s katerim vklapljamo in izklapljamo tranzistorje, na sliki P3.3/PD3). Predpogoj pri tem je, da elementi ali vezja, ki so priključena na te priključke, ne bodo vplivali na rezultat pri branju stikal ali da po drugi strani sklenjeno mikrostikalo ne bo vplivalo na delovanje priključenega vezja. Priporočljivo je, da te priključke uporabimo le za enostavne naloge, na primer za prižiganje signalnih LED diod. Pa vendar – če dobro poznamo protokol komunikacije, jih lahko uporabimo celo za pošiljanje podatkov na alfanumerični prikazovalnik ali za komunikacijo z drugimi napravami.

    Zaradi le enega skupnega priključka kodna stikala niso primerna za uporabo v vezju na sliki 1b. Lahko jih bomo uporabili z majhno predelavo vezja, kar je prikazano na sliki 1c. V tem vezju so položaji tranzistorjev in stikal zamenjani, tako da so stikala s svojim skupnim priključkom sedaj povezana na maso.

    Celotni članek SE191_31

    2011_SE191_31

    www.svet-el.si