Skip to main content

A PWM-felbontás növelése processzorperifériák kombinálásával

Megjelent: 2017. május 15.

MCA680 eyecatcherA Microchip mikrovezérlőinek egyre gazdagabb beépített perifériaválasztékából számos segédáramkör valósítható meg újabb „megfogható” alkatrészek beépítése nélkül. Ezúttal egy nagy felbontású impulzusszélesség-modulátor (PWM) megvalósítására látunk példát ezen a módon.

 

 

Sok alkalmazás képes működni akár nyolc bitesnél is kisebb PWM-felbontással, de bizonyos esetekben (például lámpák fényerő-szabályozásánál) nagyobb felbontásra van szükség az emberi szem kis intenzitásváltozásokra is jelentős érzékenysége miatt. Egy hagyományos PWM egy időzítőt használ a kívánt kapcsolási frekvencia meghatározására, és egy impulzusszámlálóval határozza meg, hány órajelperiódusnyi ideig kell a kimeneti jelet magas szinten tartani, mielőtt az impulzus véget érne. A kimeneti impulzus szélességét így vezérelni lehet a programvezérelt módon változó kitöltési tényező érdekében.

A felbontás számítása

Egy PWM effektív felbontását (illetve annak bitekben kifejezett értékét) a kimeneti impulzusszélesség beállítási lehetőségei számának 2 alapú logaritmusaként határozzuk meg. Egy 16 MHz-es órajellel működő eszköznél a kitöltési tényező legkisebb változása az órajel egy periódusnyi ideje (62,5 ns). Ha a PWM-et úgy konfiguráljuk, hogy 200 kHz kapcsolási frekvenciát állítson elő, amelynek periódusideje 5 µs, akkor 100 %-os kitöltési tényezőhöz 80 óraimpulzus megszámlálására kell beállítani a kitöltési tényezőt vezérlő regisztert (80×62,5 ns = 5 µs). Ez 6 bitnél alig nagyobb PWM felbontást tesz lehetővé. Ennek oka az, hogy egy órajel-periódus 80-szor fér bele a kapcsolójel egyetlen periódusába. Annak tudatában, hogy a kitöltési tényezőt 80 különböző értékre lehet beállítani, a PWM felbontásának pontos értéke kiszámítható. Egy 16 MHz-es órajellel meghajtott PWM, amelynek 10 bites a kitöltésitényező-regisztere, elveszíti a felbontásának egy részét amiatt, hogy a kapcsolási frekvencia 15,6 kHz. A magasabb PWM kapcsolási frekvenciáknál a kitöltési tényező előbb éri el a 100 %-ot, mielőtt a tízbites számláló elérné a végértékét, és ezt követően az összes többi regiszterértéknél a kimenet egyszerűen megmarad a 100 %-os kitöltési tényezőnél. Az a frekvencia, ahol ezt a pontot eléri a rendszer, ugyancsak kiszámítható.
A legtöbb PWM alkalmazásban a PWM sokkal nagyobb frekvenciával kapcsol, mint ahogy a kimenet valaha is változni képes. Ezt a PWM jelet egy alul áteresztő szűrővel szűrve létrehozható a kívánt kimeneti jel. A szűrő azáltal távolítja el a nagyobb frekvenciájú kapcsolójel-összetevőket, hogy kiszámítja a PWM jel átlagértékét és ezt a kimenetre küldi. Például egy kapcsolóüzemű tápegységben a kimeneti feszültség arányos lesz a kitöltési tényezővel. Ennek következtében minél kisebb lépésekben lehet a PWM kitöltési tényezőjét változtatni, annál kisebb a kimeneti jel egy lépéshez tartozó változása, amely a kimenet pontosabb vezérlését teszi lehetővé.
Egy szabályozórendszer szempontjából nézve, ha a kimenetet kis lépésekben tudjuk változtatni, az csökkenti a PWM alkalmazásával járó kvantálási erősítést. Már pedig szabályozórendszerekben az erősítés csökkentése a stabilitás növekedésével jár.

Az áramkör

Amint az 1. ábrán látható, egy PWM-et elméletileg két paraméter kombinációja határoz meg: egy ismétlődő triggerjel, amely megadja, hogy a kapcsolójelnek milyen gyakran kell megjelennie (ez a kapcsolási periódusidő vagy a kapcsolási frekvencia), és egy impulzusgenerátor, amely megadja, hogy milyen széles legyen az ismétlődő impulzus (ez határozza meg a kitöltési tényezőt).

1. ábra Egy PWM elvi felépítése
1. ábra Egy PWM elvi felépítése


Annak érdekében, hogy javulást érjünk el az effektív PWM felbontásban, egy mikrovezérlő (MCU), például egy Microchip PIC sorozatú MCU beépített perifériája, a digitálisan vezérelt oszcillátor (Numerically Controlled Oscillator – NCO) használható arra, hogy abból egy monostabil áramkört hozzunk létre, amely egy triggerjel hatására egyetlen, rögzített időtartamú impulzust generál. Az NCO egy olyan impulzusjelet állít elő, amelynek időtartama két érték között változik egy meghatározott arány szerint, és amelynek átlagos impulzusszélessége valamely két rendszer-órajel közötti időbeli távolság. A PWM jel impulzusszélességének bizonytalansága a jitter, amely legfeljebb egy órajelperiódusnyi lehet, és amely az NCO konfigurációjától függ. Bármely alkalmazásban, ahol a kimenet egy átlagértéket határoz meg (mint például azt az átlagteljesítményt, amit a terhelésre juttatunk egy világítás-technikai alkalmazásban), az impulzusszélesség ingadozása tökéletesen elfogadható, ha az átlagérték pontosan szabályozott.
Az NCO periféria önmagában nem képes PWM jelet előállítani, de a viselkedése megváltoztatható egy, az MCU konfigurálható logikai áramköri moduljából (Configurable Logic Cell – CLC) előállított logikai áramkörrel, amellyel kiegészítve már képes PWM jel előállítására. Mindez elérhető például úgy is, hogy az MCU hagyományos PWM egységét használjuk fel a triggerjel óragenerátoraként, és az NCO-val pedig az impulzusszélességet határozzuk meg.
Tetszőleges órajelforrást használhatunk, például az MCU beépített időzítőit, külső jelforrásokat, és bizonyos alkalmazásokban olyan külső triggerjel is felhasználható az impulzus indítására, mint egy áramkör, amely az áram nullátmenetét érzékeli egy tápegység bemenetén. A megoldás egyszerűsített tömbvázlatát a 2. ábra mutatja.

 

2. ábra az NCO alapú áramkör működési elve

2. ábra az NCO alapú áramkör működési elve


A CLC-ből kialakított vezérlőlogika arra szolgál, hogy beállítsa (magas értékre állítsa) a kimeneti jelet, amikor a kapcsoló órajel jelzi, hogy itt az ideje a következő impulzus kibocsátásának, és törli (alacsony értékre állítja vissza) ezt a kimeneti jelet, ha az NCO számlálója túlcsordul.

Megvalósítás

Ennek az elgondolásnak a megvalósítása, amelyhez egy-egy beépített CLC és NCO egységet használunk fel, a 3. ábrán látható. A tervezett áramkörben az NCO impulzusfrekvencia üzemmódját használjuk, amely egy rövid impulzust állít elő, amikor az NCO számlálója túlcsordul.

3. ábra A PWM megvalósítása a CLC és NCO perifériákkal

3. ábra A PWM megvalósítása a CLC és NCO perifériákkal


Amikor a rendszer működni kezd, az NCO kimenete alacsony szinten van, mert a számláló túlcsordulásához elegendő impulzus beérkezésére vár, amikor majd előállít egy impulzust. Ezt az alacsony szintű jelet invertáljuk, így a PWM kimenet magas szintű. Ez egy nagy sebességű órajelet juttat vissza az NCO órajel bemenetére.
A PWM kimenet mindaddig magas szinten marad, amíg a számláló túl nem csordul és az NCO kimenete megváltozik. Ez leállítja az NCO órajelét. Ezen a ponton az NCO kimenete ismét csak megmarad magas szinten, amíg a számláló túlcsordulására vár. Ekkor a PWM kimenete alacsony szintre vált. Az időalap-jelforrás ekkor egy magas szintű impulzust állít elő, amely a következő periódus kezdetét jelzi, és ezzel újra rákapcsolja a nagy sebességű órajelet az NCO bemenetére. Az NCO ezt a néhány impulzust arra használja fel, hogy leállítsa az impulzust, amikor is a kimenet visszavált alacsony szintre, és a folyamat elölről kezdődik. A ciklus kezdetétől az NCO számlálójának túlcsordulásáig eltelő idő két dologtól függ: egyrészt az akkumulátor-regiszterben az utolsó túlcsordulás óta maradt impulzusszámtól, másrészt a lépésköz-regiszter tartalmától. A maradékok összegzése miatt előfordul, hogy az impulzus esetenként egy rendszerórajel-periódussal rövidebb lesz a szokásosnál. Azáltal, hogy ez milyen gyakran történik (amit a lépésköz-regiszter tartalma határoz meg), az átlagos impulzusszélesség pontosan vezérelhető.
Az impulzusszélesség kiszámítása az NCO túlcsordulási gyakoriságának számításától függ. Az NCO átlagos túlcsordulási gyakorisága határozza meg azt, hogy mekkora lesz a kimeneti impulzussorozat átlagos impulzusszélessége.
Az NCO-t úgy tervezték, hogy a frekvencia függvényében valósítson meg lineáris szabályozást. Emiatt a szabályozás az impulzusszélesség függvényében szükségképpen nem lehet lineáris. Ennek az a következménye, hogy a PWM effektív felbontása nem állandó a 0…100% kitöltésitényező-tartományban.
A különböző kitöltési tényezők beállításához tartozó effektív felbontás kiszámítható és diagramban ábrázolható. Ennek a diagramnak a megjelenése aszerint változik, hogy mekkora a kapcsolási frekvencia, az impulzusszélességet azonban a kapcsolási frekvenciától függetlenül lehet beállítani.

Összefoglalás

A hagyományos PWM-ek effektív felbontása alacsony kapcsolási frekvenciáknál lecsökken. Azokhoz az alkalmazásokhoz, ahol a kapcsolási frekvenciának aránylag nagynak kell lennie, és közben olyan nagy felbontásra van szükség, amely az ilyen frekvenciáknál egyáltalán lehetséges, egy NCO-ból és egy CLC-ből összeállított áramkört használhatunk, amely nagyon magas felbontású PWM jel előállítására alkalmas.
Az impulzusszélesség legkisebb változtatási lépése, amely egy hagyományos PWM és 16 MHz-es órajel felhasználásával elérhető, 62,5 ns. Ha a legmagasabb elérhető PWM órajel a negyede az oszcillátor Fosc frekvenciájának, ez a minimális lépésköz 250 ns-ra növekszik.
Ugyanilyen feltételekkel egy inkrementális impulzusszélesség-beállítású PWM-mel, amelyet az ismertetett eljárással készítettünk, a minimális lépésköz 15 ps is lehet.
Még ha a nagy felbontás nem is elsődleges követelmény, ez a módszer vonzó lehet számos alkalmazásban, ahol az ismertetett tulajdonságokkal rendelkező PWM-re van szükség, vagy van egy állandó kikapcsolási idővel rendelkező, változó frekvenciájú PWM-ünk, ahol az impulzust külső trigger indítja, amint az például az áram nullátmeneténél kapcsoló, nagy hatásfokú feszültség-átalakítókra jellemző.

 

Szerző: Cobus Van Eeden – Microchip Technology


www.microchip.com

Még több Microchip