1. oktobra, 2019

Proženje delovanja perifernih naprav

microchip 300x74 - Proženje delovanja perifernih napravMicrochip Technology Inc
Avtor: Ravikiran Shetty, aplikacijski inženir
2019_278_26

Ravikiran Shetty iz podjetja Microchip Technology Inc. v tem članku predstavlja primere aplikacij, pri katerih lahko določene funkcije poenostavimo z uporabo vgrajenega perifernega generatorja proženja.

Današnje ugnezdene aplikacije so izjemno zapletene, običajno pa so realizirane z enim samim mikrokontrolerjem, ki upravlja z več različnimi funkcijami naprave. Te aplikacije zahtevajo izboljšano varnost in optimalen čas izvajanja z odzivom v realnem času, skupaj z medsebojno sinhronizacijo različnih funkcij. Naj gre za krmiljenje motorja z integrirano korekcijo faktorja moči (PFC) ali nastavljanje intenzivnosti svetlobe, zahtevajo zapletene aplikacije enostaven način preklapljanje med različnimi vgrajenimi perifernimi moduli.

278 26 01 300x245 - Proženje delovanja perifernih naprav

Slika 1: Izvajanje programske kode s PTG prekinitvami

Časovno razporejeno izvajanje zaporedja opravil, s katerimi upravlja procesor, ima določene časovne zakasnitve, ki jih vedno ni mogoče natančno napovedati. Takšen pristop zaseda tudi dragocen čas procesnega jedra in s tem omejuje optimalno izkoriščanje njegovih resničnih zmogljivosti, ki bi jih bilo mogoče doseči z optimiziranim delovanjem aplikacije. Periferni generator proženja (Peripheral Trigger Generator, PTG) je od procesnega jedra neodvisni periferni sistem (CIP), ki se nahaja tudi v 16-bitnem Microchip-ovem digitalnem signalnem procesorju dsPIC33 (Digital Signal Controller, DSC), omogoča pa natančno določanje časovnega razporeda in zaporedja funkcij v kompleksnih aplikacijah, obenem pa razbremeni procesno jedro.

V opisanih primerih je podrobno predstavljeno, kako lahko PTG uporabimo pri racionalizaciji izvajanja zaporedja opravil pri časovno kritičnih aplikacijah, kot so na primer krmiljenje motorja s korekcijo faktorja moči, upravljanje z intenzivnostjo svetlobe ali generiranje signala s konstantno frekvenco, ki lahko deluje tudi kot vir delovnega takta in sicer neodvisno od jedra. Ker je PTG jedro neodvisno, se vse to lahko izvaja tudi takrat, ko procesor spi (s čimer prihranimo energijo) ali pa je osredotočen na izvajanje drugih kritičnih nalog.

Kot že samo ime pove, je PTG uporabniško programirljiv sekvencer, ki generira proženje s kompleksnimi zaporedji vhodnih signalov za koordinacijo delovanja ostalih vgrajenih perifernih naprav v čipu. Aplikacije, ki uporabljajo PTG, to izvedejo z pomočjo drugih perifernih naprav, kot so analogno-digitalni pretvornik (ADC), izhodni primerjalnik-komparator (OC), pulzno-širinski modulator (PWM), časovniki in krmilniki prekinitev, s katerimi lahko dosežejo tudi najbolj zapletena zaporedja proženja in odzivov. PTG pa ne vpliva le na zmanjšanje odvisnosti aplikacije od jedra, ampak tudi povsem samostojno skrbi za interakcije modulov, kar pomaga zmanjšati kompleksnost programske opreme in ohraniti modularnost.

PTG periferna enota podpira 8-bitne ukaze, ki se imenujejo koračni ukazi, v registrih čakalne vrste v PTG. Vsak 8-bitni koračni ukaz je sestavljen iz 4-bitne kode in 4-bitnega polja z raznimi možnostmi. Ti ukazi natančno določajo zaporedje dogodkov za generiranje izhodnih prožilnih signalov za vgrajene periferne naprave. Koračne ukaze lahko uporabite tudi za ustvarjanje prekinitvenih zahtev, ki so namenjene procesnemu jedru.

278 26 02 300x97 - Proženje delovanja perifernih naprav

Slika 2: Krmiljenje delovnega cikla izhoda primerjalnika (OC) z uporabo PTG

Faktor moči in krmiljenje motorja
V integrirani aplikaciji za upravljanje motorja s korekcijo faktorja moči (PFC) en sam DSC krmili sinhronski motor s trajnim magnetom s pomočjo vektorskega krmiljenja (FOC, Field Oriented Control ) in PFC pretvornika. Pri tej aplikaciji potrebujemo tri PWM kanale za krmiljenje delovanja motorja in še enega dodatnega za krmiljenje delovanja PFC. Periferija primerjalnika (OC) se lahko uporablja za povečanje števila PWM kanalov, ki so na voljo aplikaciji, tudi nad razpoložljivim številom zelo hitrih PWM kanalov, ki so v čipu na voljo.

PWM periferno napravo skupaj z OC periferno napravo lahko uporabite za ustvarjanje potrebnih signalov za krmiljenje motorja in delovanja PFC. Vendar pa je v aplikaciji, kot je PFC, zelo pomemben trenutek izvedbe, zaradi česar je potrebno različne naloge opraviti znotraj optimalnega časa izvajanja. Ti vključujejo sinhronizacijo PWM generatorjev za krmiljenje motorja in PFC, proženje ADC za pretvorbo in preklapljanje ADC kanalov, ki se uporabljajo za nadzor povratnih signalov za krmiljenje motorja in PFC.

Te zahteve je mogoče učinkovito doseči z uporabo zunanje PTG enote, ki lahko sinhronizira izjemno hitre PWM generatorje in OC periferne naprave in ustvari periferne ADC sprožilce s spremljanjem obodnih robov PWM. Prav tako spremlja prekinitev »Končana pretvorba ADC« in ustvarja ustrezne prekinitve, pri čemer izvaja FOC nadzorno kodo in digitalno PFC. In zmanjšuje posredovanje CPU-ja, zaradi česar je periferno jedro upravljanja neodvisno. To zmanjša skupno porabo energije vaše aplikacije, hkrati pa sprosti CPU za opravljanje bolj kritičnih funkcij. Preklopno frekvenco krmiljenja motorja in PFC PWM je treba izbrati tako, da je celoštevilčno število oziroma večkratnik takega števila.

AD pretvornik v dsPIC® DSC omogoča štiri-kanalno hkratno vzorčenje. Tako FOC kot tudi PFC algoritem imata svoje lastne analogne kanale, ki jih je treba istočasno vzorčiti, saj je fazno razmerje med temi signali ključno za učinkovito upravljanje.

Povratne signale krmiljenja motorja in PFC je treba izbrati tako, da se z izmenično izbiro ADC kanalov vzorčijo tako krmiljenje motorja kot PFC signali. Signali za krmiljenje motorja in PFC se lahko pred proženjem ADC-ja, ki temelji na robovih PWM, povežejo v vhodna vezja AD pretvornika za vzorčenje in zadržanje trenutne vrednosti napetosti. Kanale je treba konfigurirati tako, da so na koncu zaporedja štiri-kanalnega vzorčenja in AD pretvorbe rezultati pretvorbe za FOC ali PFC na voljo v njihovih ustreznih vmesnih pomnilniških registrih AD pretvornika.

Po nastavitvi izbirnih bitov ustreznih kanalov za povezavo povratnih signalov iz PFC na vhod AD pretvornika mora biti v vsakem PWM PFC ciklu generirano proženje. Podobno mora biti tudi za vsak cikel PWM krmiljenja motorja ustvarjeno proženje AD pretvornika po nastavitvi izbirnih bitov kanalov za povezavo povratnih signalov krmiljenja motorja na vhod AD pretvornika. PTG periferna enota je torej zasnovana tako, da generira proženje ADC, kar doseže s spremljanjem robov signala krmiljenja motorja in impulzov PFC PWM. Poleg tega nastaneta dve PTG prekinitvi za izvedbo programskih kod za FOC in PFC, kot je prikazano na sliki 1.

Kot je razvidno iz tega primera, PTG močno poenostavlja izvedbo te naloge z učinkovitim zaporedjem uporabe ADC in PWM pri krmiljenju motorja s korekcijo faktorja moči (PFC) vse znotraj enega samega čipa dsPIC33.

Nadzor jakosti osvetlitve
V aplikacijah za krmiljenje jakosti svetlobe se lahko v ta namen uporablja PWM generator z uporabo primerjalnika (OC).

V tej aplikaciji se uporabljata dva OC periferna primerjalnika, njuni delovni cikli pa se krmilijo z vhodi, ki jih dobimo iz dveh ločenih ADC kanalov. Glede na vsako posamezno ADC vrednost se delovni cikel posodobi. PTG periferna enota podpira enostavnejši način sinhronizacije ADC in OC perifernih naprav. PTG poleg tega pomaga pri izogibanju zastojem na perifernih napravah in tako izboljša varnost uporabe.

Za vzdrževanje sinhronizacije vezje najprej spremlja AD pretvornika in na podlagi tega ustvari ustrezne prekinitve za spremembo OC delovnega cikla. Nato spremeni ADC kanal, ne da bi pri tem motil delovanje CPU, saj je PTG sposoben to storiti povsem neodvisno. Kot dodatna varnostna funkcija ima v primeru nepričakovane napake PTG periferna enota poseben varnostni časovnik za spremljanje in izvajanje nujno potrebnih korektivnih ukrepov.

Blok shema te aplikacije je prikazana na sliki 2.

278 26 03 300x200 - Proženje delovanja perifernih naprav

Slika 3: Funkcija uporabniško programirljivega maskiranja

Varnostni časovnik znotraj PTG periferne enote prepreči morebitno situacijo, ko PTG med izvedbo ukaza v neskončnost čaka na zunanji dogodek za proženje iz visokega v nizko stanje na nivoju strojne opreme. V tej aplikaciji bo PTG počakal na proženje ob zaključku AD pretvorbe. Kadar omogočen, se začne odštevati čas od začetka izvajanja ukaza. Ko ukaz zaključi z izvajanjem, je njegovo delovanje onemogočeno. Če se pričakovani dogodek ne zgodi, preden se izteče predvidena časovna omejitev, PTG periferna enota praviloma prekine izvajanega ukaza in ustavi običajno sekvenco. Nato CPU enoti v obliki prekinitve signalizira napako tega časovnika.

To deluje kot varnostna funkcija za vrnitev iz situacije, ko bi lahko periferna napravi ADC ali PTG prenehali delovati. Te periferne naprave lahko CPU potem znova ponastavi na začetne vrednosti in spet požene znotraj prekinitvene rutine, ki jo sproži napaka varnostnega časovnika.
PTG bo na ta način aplikacijo poenostavil in jo naredil neodvisno od procesnega jedra s preklopom ADC kanalov in nadzorom perifernih naprav brez posredovanja glavne procesorske enote. S tem se vsa procesna zmogljivost CPU lahko uporabi za druge naloge v aplikaciji.

PTG sam bo poskrbel za vse interakcije znotraj periferne naprave, kar pomaga zmanjšati kompleksnost programske opreme in ohraniti modularnost. Varnostni časovnik PTG periferne enote pa bo pomagal, da si periferija opomore po morebitnih katastrofalnih napakah, kar bo zagotovilo večjo robustnost in zanesljivost pri njeni uporabi.

Signal stalne frekvence
PTG periferna enota se lahko uporablja tudi za generiranje signala s konstantno frekvenco, ki deluje tudi kot vir delovnega takta. PTG sproži primerjalnik, ki deluje kot izbrana maska za izbiro vhoda. Širina impulza PTG prožilnika je lahko različna, ima pa tudi lastni časovnik. Prožilnik periferije lahko deluje tudi kot maska za izbiro vhoda za operacijski ojačevalnik in primerjalnik, kot je prikazano na sliki 3.

S to funkcijo lahko izhod PTG peljete na izhod prek izhodnega primerjalnika (OC). Primerjalnik je konfiguriran tako, da je njegov invertirajoči vhod priključen na maso, neinvertirajoči vhod pa na notranjo referenčno napetost.

Prožilni impulz se bo pojavil neposredno kot izhod iz primerjalnika. Dokler PTG generira proženje neprekinjeno, bo primerjalnik ustvarjal valovno obliko konstantne frekvence. Širina impulza te valovne oblike bo en cikel PTG ure.

Čas vklopa lahko nadzirate s PTG časovnikom in biti za določanje pulzne širine. Širina izhodnega impulza bo določila čas izklopa generiranega signala, časovnik pa bo določal čas trajanja signala na izhodu, kar je pravzaprav zakasnitev med proženjem perifernega primerjalnika.

Glede na izhodno polariteto primerjalnika bo čas trajanja signala na izhodu nadziral bodisi časovnik bodisi biti, ki določajo širino izhodnega impulza. Izhodno frekvenco lahko krmili tudi register, ki deluje kot delilnik takta.

S spremembo izhodne polaritere primerjalnika se lahko ustvari tudi komplementarna valovna oblika s pomočjo štirih primerjalnih perifernih naprav. Širino impulza lahko spremenite s pomočjo bitov, ki določajo njegovo širino, kar vpliva na zmanjšanje frekvence na izhodu. Zaradi te lastnosti je mogoče s pomočjo perifernih naprav PTG in primerjalnika ustvariti konstantno valovno obliko.

Med prednostmi uporabe PTG v tej aplikaciji je vsekakor treba omeniti še eno, namreč to, da lahko izhod deluje kot stalen vir taktne frekvence in da pri tem deluje popolnoma neodvisno od jedra. Z uporabo več primerjalnih perifernih naprav je mogoče ustvariti enakomerno komplementarno valovno obliko. PTG deluje tudi v varčevalnih načinih delovanja, kot sta mirovanje in spanje.

Povzetek
PTG periferna enota v Microchipovem digitalnem signalnem krmilniku dsPIC33 uporabnikom omogoča oblikovanje kompleksnih aplikacijskih zaporedij s povečano prilagodljivostjo za časovno kritične ali takšne aplikacije, ki so kritične glede porabe. PTG omogoča, da različne periferne naprave med seboj komunicirajo z malo ali celo popolnoma brez prekinitev in posredovanja procesnega jedra in tako povečuje zmogljivosti obstoječih vgrajenih perifernih naprav, s čimer močno razširi možnosti tega, kar bi lahko dosegla katerakoli posamezna periferna enota.

Uporaba PTG periferne enote zagotavlja hitrejši odzivni čas in zmanjšuje obremenitev programske opreme, poleg tega pa ponuja tudi vgrajene funkcije, ki povečujejo funkcionalno varnost, na primer varnostni časovnik.

Dodatni viri:
Aplikacije z generatorjem proženja perifernih naprav (PTG) na spletni strani:
http://ww1.microchip.com/downloads/cn/AppNotes/cn586398.pdf

Opomba: Ime in logotip Microchip sta registrirani blagovni znamki podjetja Microchip Technology Incorporated v ZDA in drugih državah. Vse druge blagovne znamke, ki so morda tu omenjene, so last njihovih podjetij.

www.microchip.com
Tags: