2. januarja, 2017

Harmonija razvoja in programiranja (5)

Revija 248 248 56 1 - Harmonija razvoja in programiranja (5)Revija logo se - Harmonija razvoja in programiranja (5)

Microchip MPLAB Harmony je gotovo najpomembnejši programski okvir za vse tiste, ki se navdušujemo nad Microchipovimi mikrokontrolerji in digitalnimi procesorji. Je tudi pomemben vgradni del razvojnega okolja MPLAB X IDE, ki nekajkrat pohitri in poenostavi delo programerjev.

Revija 248 248 56 2 - Harmonija razvoja in programiranja (5)V preteklem nadaljevanju smo videli, kako našo napravo povežemo preko USB kot HID. Videli smo kako dopolnimo pripravljeno objektno programsko kodo, da je zares uporabna in katere funkcije za podporo komunikaciji preko USB moramo sami implementirati. USB vseeno tako pomemben, zato mu je veljalo nameniti nekoliko več prostora.

V preteklem nadaljevanju smo se lotili datotečnega sistema. PIC32 bomo sprogramirali tako, da se je PCju predstavil kot zunanji podatkovni pogon in bo svoje stanje sporočal preko ene izmed datotek na tem pogonu. Tokrat se bomo lotili povezave tipala za temperaturo in D/A pretvornika.

Predpogoji

Preden lahko začnemo, moramo namestiti prevajalnik Microchip XC32 Compiler, ustrezen Microchip Harmony in razvojno okolje MPLAB X. Zadnje različice omenjenih programskih orodij lahko prenesemo iz Microchipove spletne strani.

Vsekakor bomo potrebovali tudi ustrezne zunanje naprave, ki jih bomo s PIC32 povezali preko zaporednih vmesnikov SPI ali I2C. Izbrali smo pretvornik D/A, MCP4822, in temperaturno tipalo ADT7410, ki delujeta preko vodil SPI in I2C.

Kako delujeta I2C in SPI pri PIC32?

Revija 248 248 56 3 - Harmonija razvoja in programiranja (5)SPI (angl. serial peripheral interface) je zunanje zaporedno vodilo, ki omogoča hkratni dvosmerni prenos podatkov. Če je na vodilo priključenih več naprav, ki izbiramo preko posebnih naslovnih linji, CS (angl. chip select), saj naslov naprave ni del podatkovnih besed, ki jih prenašamo preko SPI in I2S.

Vgrajena programska oprema mora izbrati le ustrezen način delovanja in že lahko prenašamo podatkovne besede dolžin 8, 16 in 32-bitov. V izhodni izravnalnik preprosto prenašamo podatkovne besede ter iz vhodnega izravnalnika beremo besede. S pretvarjanjem podatkov v zaporedje bitov in nazaj v besede se ukvarja izključno strojna oprema. To omogoča za programerja enostavne in zanesljive implementacije protokolov I2C, SPI in I2S; v primerjavi s katerimi se pogosto oglaševani enostavni 8-bitni mikrokontrolerji zdijo kot otroške igračke. Globina strojnih izravnalnikov se prilagaja dolžini podatkovnih besed. Na ta način so izravnalniki vedno v celoti izkoriščeni. Za manj zahtevne aplikacije, ki zahtevajo več prilagajanja imamo tudi možnost posamičnega prenosa podatkovnih besed, brez izravnalnikov in uokvirjanja (angl. framing) pri oddaji podatkovnih besed.

Podatke iz naprave prenašamo preko priključka SDO (zaporedni podatkovni izhod, angl. serial data output), medtem ko preko priključka SDI (zaporedni podatkovni vhod, angl. serial data input. Poleg omenjenih sestavljajo vodilo še priključki: SS (sinhronizacijski signal, angl. sinchroniuation signal), opcijski signali za izbiro posameznih enot, SCK (zaporedni urin signal, angl. serial clock), CSy (angl. chip y select) in GND (masa, angl. ground).

Bistvo komunikacijskega protokola vodila SPI je v sklopu dveh premikalnih registrov. Med seboj povežemo po dva pomikalna registra, tako da je eden oddaji, drugi pa sprejemni. Ob urinem signalu vsakokrat vsebino registra zamaknemo, pri čemer na izhod SDO »porinemo« najvišji bit; oziroma najnižji bit, če registra vrtimo v obratni smeri. Obenem kot namesto najnižjega bita »zajamemo« trenutno vrednost signala SDI. Če sta registra za izmenjavo podatkov enako dolga, se njuna vsebina zamenja natančno takrat, ko je številu urinih impulzov, oddanih preko SCK, enako dolžini podatkovne besede.

Celotni članek

Harmonija razvoja in programiranja (5)

www.svet-el.si

2017_SE248_56

Tags: