Kaip pasirinkti mikrovaldiklį?

PIC valdikliai skirstomi į 3 pagrindines rūšis pagal duomenų perdavimo magistralės plotį: 8 bitų, 16 bitų ir 32 bitų. O konkrečiau viskas atrodo taip:

8-bitų PIC® mikrokontroleriai

  • Baseline
  • Mid-Range
  • Enhanced Mid-Range
  • PIC18

16-bitų PIC® mikrokontroleriai

  • PIC24F
  • PIC24H/E
  • dsPIC30F
  • dsPIC33F/E

32-bitų PIC® mikrokontroleriai

  • 32-bit

Kuo skiriasi 8 bitų valdiklis nuo, pvz., 16 bitų? Pažiūrėkim šitokią schemutę:

Enhanced_Mid-Range_PIC_Microcontroller

Čia aštuonių bitų valdiklio schema. Mėlyna spalva pažymėta duomenų šyna. Tai galima įsivaizduoti kaip kelią, kurį sudaro 8-ios juostos. Kiekviena juosta važiuoja mašina, kuri mikrokontroleryje atitinka bituką. O tas bitukas yra informacijos vienetas 1 arba 0, visa skaitmeninė technika veikia tik vienetukų ir nuliukų pagrindu, tai yra dvejetainėje sistemoje. Taigi, tos mašinos važinėja tarp mikrokontrolerio smegenų (CPU), atminties (Data Memory) ir mikrokontrolerio kojų (Peripheral) – truputį supaprastintai. Keliu vienu metu gali važiuot išsirikiavusios lygiagrečiai viena su kita iškart aštuonios mašinos, pvz.: 01011001 arba 11100011. Šios dvi bitukų sekos dešimtainėje žmogiškoje sistemoje yra 89 ir 227. Akivaizdu kad didžiausią skaičių atitinkanti bitukų kombinacija yra 11111111. Dešimtainėje sistemoje tai bus skaičius 255. Jei norėsim perduoti didesnį skaičių, pvz. 256, vienu metu neišeis, nes jis dvejetainėje sistemoje atrodo taip: 0 00000001. Čia išvis jau reikalingi devyni bitukai, o mūsų kelias juk aštuonių juostų. Ką daryti? Reikia pirmus 8-is dešiniuosius skaičius 00000001 praleisti pirmus, o antru važiavimu praleisti likusį 0. Juk mikrokontroleryje kai tik atvyksta aštuoni bitukai, už jų tuoj važiuoja kiti 8, ir taip be pabaigos. Taip perduoti skaičių 256 reikalingi du važiavimai.

O dabar įsivaizduokim kad turim 16 bitų, arba jau 16 juostų kelią. Tokiu keliu jau galės vienu sykiu iškart daugiausia pravažiuoti 16 mašinų: 11111111 11111111. Toks skaičius dešimtainėje sistemoje atitinka jau 65535. Akivaizdžiai matom, kad pagal informacijos pralaidumą 16 bitų mikrokontroleris žymiai galingesnis.

Dar vienas palyginimas: turim 8 bitų valdiklį ir 16 bitų valdiklį. 8-ių bitų valdiklyje praleidžiame po 8 mašinas kas sekundę, o 16 bitų – po 16, bet tik kas dvi sekundes. Ir dviejų sekundžių bėgyje per abu valdiklius bus praleistas vienodas bitų skaičius – po 16. Kodėl taip yra? Todėl, kad skiriasi vadinamas instrukcijų skaičius, t.y. kiek mašinų važiavimų galima atlikti per sekundę. Instrukcijų skaičius per sekundę ir šynos plotis yra 2 svarbūs parametrai, kurie didele dalimi apsprendžia mikrokontrolerio greitį, o tuo pačiu ir kainą.

Kalbant apie šynos plotį, jis praktikoje dažnai būna neišnaudojamas, nes periferiniai įrenginiai turi savo 8 bitų duomenų perdavimo šynas, pvz. 2-ų eilučių ekranėlis, I2C ar SPI duomenų perdavimo protokolus palaikančios mikroschemos. Mikrovaldiklis turi prisitaikyti prie žemesnio bitų skaičiaus įrenginių ir perduoti ir priimti informaciją po 8 bitus.

Pradedančiajam pilnai užtenka ir 8-ių bitų Mid-Range arba Enhanced Mid-Range valdiklio, su juo galima daug ką nuveikti. 16 ir 32 bitų valdikliai naudojami darbui su grafika, kur reikalingi didesni skaičiavimai. Be to žemesnės klasės mikrovaldikliai turi mažiau funkcijų, todėl lengviau suprasti jų veikimą. Šiuolaikiniai mikrovaldikliai savyje turi daug papildomų modulių, tokių kaip:

  • Komparatorius (dviejų įtampų palyginimui)
  • 8-16 bitų taimeris (laiko skaičiavimui)
  • PWM valdiklis (apšvietimo, variklio galios reguliavimui)
  • Analoginis-skaitmeninis keitiklis
  • Skaitmeninis-analoginis keitiklis
  • Komunikacijos moduliai:
    UART
    SPI
    I2C
    CAN
    USB
  • Bei daug kitų

Taigi renkantis mikrovaldiklį pirmiausiai reikia žinoti ką mes projektuosim ir kokie iš aukščiau išvardintų modulių bus reikalingi. Pradedančiajam LED pamirksinimui tiks pats pigiausias ir paprasčiausias mikrovaldiklis.

Toliau reikia žinoti, kiek mums reikės mikrovaldiklio išvadų (kojelių). Čia vėlgi yra didelė įvairovė – nuo 6-ių kojų iki maždaug 100 kojų. Pasirinkimas tikrai platus. Deja dažniausiai ne visas kojas galima panaudoti informacijai įvesti-išvesti. Jeigu naudojam išorinį kvarcą, atsimeta dvi kojos. Jei naudojam papildomai 32768Hz kvarcą laiko skaičiavimui, dar atsimeta dvi kojos. MCLR išvadą irgi galima palikti mikrokontrolerio programavimui, nes ant jo programavimo metu atsiranda aukštesnė nei maitinimo įtampa.

Dar vienas svarbus dalykas – mikrovaldiklio atmintys. Dažniausiai mikroschemoje jos būna iškart visos. Atmintys būna 3-jų tipų:

  • RAM – greita atmintis, bet išjungus įtampą išsitrina; skirta laikinų kintamųjų saugojimui;
  • FLASH – čia saugoma mikrokontrolerio programa, programa įrašoma programatoriumi;
  • EEPROM – tai pastovi atmintis. Nedingsta net išjungus maitinimą. Turi ribotą įrašymo/nuskaitymo skaičių, kuris yra pakankamai nemažas: naujoms mikroshemoms siekia min. 100000 kartų. EEPROM atmintį turi dauguma PIC mikrovaldiklių, bet ne visi.

Kuriant programą galima pasirinkti, į kurią atmintį norim įrašyti kintamuosius. Pvz.: jei mikrokontroleris turi nedaug RAM, visus duomenis, kurie nesikeičia, galima įrašyti į FLASH atmintį, taip sutaupant RAM vietos. Prieš kuriant programą reikia daugmaž įsivaizduoti, kiek kokios atminties bus naudojama ir atitinkamai pasirinkti mikrokontrolerį. Arba iškart nusipirkti mikrokontrolerį su daug atminties.

Labai geras gamintojo Microchip puslapis valdiklio pasirinkimui: http://www.microchip.com/maps/microcontroller.aspx . Čia patogiai galima “atsisijoti” valdiklį pagal atminties dydžius, valdiklyje esamus modulius ir jų skaičių, įėjimų – įšėjimų kiekį bei kainą.

Leave a Reply

Your email address will not be published. Required fields are marked *