0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaProgramiranjeOsnovna zgradba in delovanje PIC18 (10)

    Osnovna zgradba in delovanje PIC18 (10)

    Mikrokontroler je nepogrešljiv sestavni del številnih majhnih, a zelo uporabnih domačih naprav, kot so: vremenska postaja, elektronski termostat, elektronska varuška… Za vsak končni izdelek bomo nemalokrat odšteli veliko več, kot če se projekta lotimo sami.

    Slike niV preteklem nadaljevanju smo se lotili podrobnosti brezžičnega komunikacijskega protokola, ki so se nam je pri takratnem nadaljevanju »izmuznile«, saj je zanje preprosto zmanjkalo prostora. Uporabili smo tudi zadnjo dinamično programsko knjižnico s spletne strani PC USB Projects (https://sites.google.com/site/pcusbprojects/5-custom-projects/bd-unified-dll-v4-1-for-all-microcontrollers-supported-by-pc-usb-projects), v katero je že vgrajen komunikacijski protokol za brezžični prenos podatkov.

    V zadnjem nadaljevanju bomo na osnovi mikrokontrolerja PIC18F26J50 izdelali digitalno uro, ki jo bomo nastavljali preko vodila USB. Želimo neodvisno aplikacijo, ki lahko z lastnim napajanjem deluje tudi brez PC. Zato bomo pri programiranju uporabili tudi programski jezik C in Microchip razvojno okolje MPLAB.

    Kako deluje digitalna ura s prikazovalnikom LCD?

    Slike niDigitalna ura je sorazmerno enostavna aplikacija, saj mikrokontroler PIC18F26J50 že vsebuje strojno podporo zanjo. Za točno merjenje časa moramo dodati le še zunanji, 32,768 kHz, kristalni resonator. Samostojen prikaz ure omogoča dvovrstični prikazovalnik LCD, LCM1602K-FL-YBS, ki temelji na SUNPLUSovem krmilniku za majhne zaslone LCD, SPLC780D, ki je zaradi enostavnosti programiranja zelo priljubljen pri samogradnjah elektronike za domačo rabo. Žal LCM1602K-FL-YBS deluje samo pri napetosti od 5 V naprej, je pa vseeno združljiv s 3,3 V napravami, če te podpirajo na 5 V odporne vhode. PIC18F2xJ50 ima 5 takih vhodov, ki pa jih nismo želeli uporabiti, saj bi s tem zapravili možnost za priklop drugih naprav na vodili SPI in I2C. Mikrokontrolerji PIC18F2xJ50 namreč strojno podpirajo največ dve vodili SPI in eno vodilo I2C. Za strojno podporo vodilu I2C nujno potrebujemo nožici 26 in 25, pri vmesniku SPI pa imamo nekoliko več svobode, saj lahko uporabimo enoto PPS, s katero poljubno pretikamo signale SDI, SCK in SDO vodila SPI. Več o tem v prihodnji nadaljevanki o vremenski postaji. Tokrat se bomo omejili zgolj na izdelavo digitalne ure, nastavljive preko USB. Delovanje strojne podpore za uro realnega časa v PIC18 smo spoznali že v tretjem nadaljevanju, objavljenem v lanski oktobrski številki Sveta elektronike.

    Načrt za izgradnjo

    Digitalno uro lahko sestavimo na osnovi osnovne vezave PIC18F2xJ50 ali PIC18F2550 na vodilo USB. Z uporabo vodila USB se izognemo potrebi po lastnem napajanju, hkrati pa lahko preverimo vse funkcije digitalne ure. Na spletni strani PC USB Projects, v sekciji Custom Projects, je v članku Basic circuit for PIC18F24J50 or PIC18F26J50 to work over USB (slov. Osnovno vezje za delovanje PIC18F24J50 ali PIC18F26J50 preko USB) opisan priklop mikrokontrolerjev PIC18F2xJ50 na PCjevo vodilo USB (https://sites.google.com/site/pcusbprojects/5-custom-projects/basic-circuit-for-pic18f24j50-to-work-over-usb). Primer lahko razširimo tako, da dodamo kristalni resonator iz dveh 12 pF kondenzatorjev in visokega kristala z lastno frekvenco 32,768 kHz, ki je idealen za poganjanje strojno podprte digitalne ure.

    Zdaj nam ostane le še priklop LCD. Zanj potrebujemo 6 digitalnih izhodov. Vhod LCD, R/W (branje/pisanje), fiksno povežemo na maso, s čemer sicer izgubimo možnost branja podatkov z LCD, a prihranimo eno nožico na mikrokontrolerju. Glavni razlog za tako odločitev pa ni v prihranku ene nožice, temveč v tem, da se želimo izogniti vgradnji napetostnega pretvornika, ki bi bil nujno potreben pri prenosu signalov iz LCD na 3,3 V vhode-izhode. PIC18F2xJ50 imajo tudi pet nožic, ki so odporne na 5,5 V, vendar jih bomo dve potrebovali za strojno podporo vodilu I2C. Zato ne preostane drugega, kot da LCD povežemo samo kot izhodno napravo in uporabimo standardne zakasnilne čase pri komunikaciji z njim, namesto signala »zaseden« (angl. busy), ki je aktiven takrat, ko LCD procesira ukaz in ne more sprejeti novih podatkov ali ukazov.

    Programiranje LCD

    Navodila za uporabo LCM1602K-FL-YBS, ki so na voljo na spletu, so dokaj pomanjkljiva in dajo začetniku, z malo ali nič izkušnjami s priklopom LCD, premalo informacij. To velja še posebej, če želimo uporabljati 4-bitni način delovanja. Zato ni odveč, če poiščemo tudi originalna SUNPLUSovs navodila za krmilnik SPLC780D, ki vsebujejo vse potrebno za začetek programiranja.

    Celotni članek

    Osnovna zgradba in delovanje PIC18 (10)

    2014_SE219_59