Da je mikrokontroler res miniaturni računalnik, priča tudi podpora za merjenje realnega časa in pet časovnikov za različne namene. Vse to lahko počeli tudi z osebnim računalnikom, a je veliko prevelik in predrag, da bi se ga splačalo uporabljati za tako elementarne funkcije, kot je npr. krmiljenje koračnih motorjev.
Merjenje časa, frekvence in širne signalov ter vzporedno vodilo. V preteklih nadaljevanjih smo spoznali osnovno zgradbo in delovanje ter uporabo vhodno-izhodnih vrat, enote PPS (angl. Peripheral Pin Select), ter A/D pretvornika. Zdaj so na vrsti nekoliko bolj zapletene, hkrati pa tudi zelo uporabne funkcionalnosti PIC18. A najprej se bomo lotili še zunanjega vzporednega vodila, ki je izpadlo iz prejšnjega nadaljevanja.
Zunanje vzporedno vodilo
Tisti, ki mislijo, da mikrokontrolerji ne omogočajo priključevanje zunanjih naprav, kot je dodaten pomnilnik ali tiskalnik, se motijo. Res je sicer, da je nekoliko težje nanj priključiti napravo USB, kot pa da sam deluje kot naprava na tem vodilu, vendar z dodatnim čipom, krmilnikom vodila USB, tudi to mogoče izvesti brez večjih težav.
Zunanje vzporedno vodilo s podporo za gospodarja vodila (PMP, parallel master port) omogoča raznovrstne načine delovanja, pri katerih je PIC18 v vlogi gospodarja vodila. Vsebuje podporo za različne vrste asinhronih prenosov podatkov. Brez težav, denimo podpremo standard centronix, ali pa komunikacijo med dvema PIC18. Tudi klasični zunanji pomnilnik je dokaj enostavno povezati. Upoštevati moramo le to, da je fizična širina podatkovno/naslovnega vodila 8 bitov. To pomeni, da so naslovne in podatkovne linije nujno multipleksirane. Vendar je demultiplekser sorazmerno enostavno zgraditi iz čipov 74HCT373, od katerih vsak vsebuje po 8 enobitnih pomnilnih celic, ki jih uporabimo za medpomnjenje pomnilniškega naslova in dela podatkovne beseda. Potrebno je poudariti, da je način potrebnega medpomnjenja odvisen od izbire načina delovanja PMP. Mogoče so skoraj vse kombinacije, ki si jih lahko zamislimo. Naslov je lahko 8-biten ali 16-biten, ali pa ga ne uporabljamo. Enako velja za podatke.
Za implementacijo je sicer najenostavnejši način brez multipleksiranja, kjer prenašamo hkrati po 8 podatkovnih bitov (1 bajt). Tu se brez težav prilagodimo skoraj poljubnemu asinhronemu standardu, kot je centronix. Na voljo je tudi strojna podpora za rokovalni protokol (angl. handshake protocol). Zato je programsko kodo za izmenjavo podatkov veliko lažje implementirati.
Drugi načini delovanja PMP vključujejo tudi uporabo naslovnih signalov. Zato se demultipleksiranju ne moremo izogniti. Najenostavnejša možnost je, da za naslavljanje uporabimo 8 bitov. V tem primeru bo zadoščal en sam 74HCT373, ki bo rabil kot medpomnilnik za 8-bitni naslov, ki se bo pravi pojavil na 8-bitnem vodilu. 8-bitni podatke, ki mu bo sledil, ne bo potrebno vmesno shraniti. Tak način delovanja bo večinoma zadoščal za krmiljenje raznih prikazovalnikov s tekočimi kristali (LCD).
Za priklop klasičnega statičnega pomnilnika z naključnim dostopom (SRAM) s 100 ali več kB, bo potrebno uporabiti 16-bitno naslavljanje. Zato bomo potrebovali dva 8-bitna vmesna pomnilnika, oziroma 3, če ima pomnilnik tudi 16-bitno podatkovno vodilo.
Nerodno je predvsem to, da PMP pri PIC18 z le 28 nožicami za svoje delovanje porabi pretežni del prostih nožic. Zato jih za krmiljenje ostane bore malo. Kdor namerava uporabljati PMP, bo verjetno iz praktičnih razlogov raje posegel po izvedbah PIC18 s 44 in več nožicami. Vendar so slednje v glavnem primerne za vgradnjo na strojno izdelana tiskana vezja, saj je za postavitev povezav potrebna velika natančnost, ki jo je z letrasetom ali alkoholnim flomastom skoraj nemogoče zagotoviti.
V podrobnosti delovanja PMP se zato ne bomo spuščali. Več informacij je na voljo v referenčni dokumentaciji za družino mikrokontrolerjev PIC18F46J50, ki jo dobimo preko Microchipove spletne strani www.microchip.com.
Osnovna zgradba in delovanje PIC18 (3)
2013_SE212_32