Skip to main content

Meghatározott sorrendű be- és kikapcsolás többtápfeszültséges rendszerekben

Megjelent: 2017. február 27.

MCA693 eyecatcherGyakori műszaki feladat, hogy a gazdaságos tápellátás megvalósításához több tápfeszültséget kell összetett logikai feltételrendszerrel kezelni. A feltételek teljesülésén – melyek közt a legelemibb a tápfeszültségek be- és kikapcsolási sorrendjének szigorú betartása – az áramkör helyes működése vagy akár épsége is múlhat.

 

A tápfeszültség be- és kikapcsolási sorrendjét meghatározó áramkörök[1] általánosan használt részmegoldásai az olyan, teljes rendszereket megvalósító kártyáknak, amelyek több – előírt sorrendben be- és kikapcsolódó – tápfeszültséggel működnek. Ezek a sorrendkapcsolók könnyen megvalósíthatók egyszerű mikro-
vezérlők (MCU-k) felhasználásával. Az ilyen megoldás különös előnye, hogy könnyen hozzáigazítható eltérő számú és előírt sorrendű tápfeszültséget használó rendszerek igényéhez.
A sorrendkapcsolókat alkalmazó rendszereknek rendszerint különféle alkatrészeik, részegységeik vannak, amelyek működtetéséhez különböző tápfeszültségekre van szükség. Ezeket meghatározott sorrendben kell bekapcsolni ahhoz, hogy a különféle részegységek, alkatrészek működésében ne lépjenek fel konfliktusok. A rendszer kikapcsolásakor hasonló problémákat kell megoldani. Jó, ha a be- és kikapcsolási sorrend programozható, és meghatározott időzítésű „forgatókönyvet” követ.
Vegyünk példának egy négycsatornás sorrendkapcsolót, amely négyféle tápfeszültséget (5 V, 3,3 V, 2,5 V és 1,8 V) kezel. Mindegyiküket egy-egy tápegység (power module – PM) állítja elő. Minden PM-nek tipikusan 5 kivezetése van: a teljesítmény be- és kimenet, a földpont, az engedélyezés (enable) és a kimenőfeszültség értékbeállítás (trim).
Az alkalmazásnak természetesen nem kell négy PM-re korlátozódnia, mert a mintaként megtervezett, PM-modulokat felhasználó rendszer akár 10 PM kezelését is lehetővé teszi, amelyeket a rendszer működésének megfelelően, igény szerint lehet bármikor be- és kikapcsolni. Az adott célra egy kiterjesztett képességű processzormag köré épített MCU-t, a PIC16F1509-et választottuk, amelynek a következő perifériáit használjuk fel: általános célú, párhuzamos be- és kimenetek (GPIO), egy időzítőcsatorna (timer1), AD-konverter (ADC), I2C-interfész és egy impulzusszélesség-modulátor (PWM).
A PM-egységek lehetnek például meghatározott áram- és teljesítményspecifikációjú, készen kapható blokktápegységek. A PM-egység céljára ebben a tervben ilyen készen kapható blokk-
tápegységként a BEL Power Products cég VRAE-10E1A0 tápegységeit használjuk.
Minden PM-nak öt csatlakozópontja van: a bemenőfeszültség (VIN), a kimenőfeszültség (VOUT), a közös földpont, az engedélyező (enable) bemenet és a kimenőfeszültség értékének beállítására szolgáló (trim) kivezetés. Az engedélyezőbemenet aktív magas logikai szintű, azaz a magas szintre kapcsolt „enable” pontnál a kimeneti csatlakozóponton megjelenik a kimeneti feszültség. A „trim” csatlakozópontra kapcsolt Rtrim-ellenállással a kimeneti feszültséget lehet a kívánt értékre beállítani.
A trim-kivezetés feszültsége tipikusan 0,591 V. A trim pont egyenfeszültségével a rendszer bizonyos mértékig befolyásolni képes a VOUT-feszültség terhelésszabályozását. A jelen tervezési példában ezt a feszültséget egy PWM-jellel vezérelt RC-szűrőből kialakított DA-konverter juttatja el a trim csatlakozópontra. Egy másik alkalmazási lehetőség, hogy a trim csatlakozópont egyenfeszültségét egy rákapcsolt ellenállással állítjuk be, amelynek a másik végpontja a földkivezetésre csatlakozik. Ez esetben értelemszerűen nincs lehetőség a PWM-kimenettel történő beavatkozásra. Ha tehát ez utóbbi lehetőséget választjuk, a PWM-áramkört nem használjuk fel, és a hozzá kapcsolódó hardverelemek, valamint a vezérlésére szolgáló firmware-részletek elhagyhatók.

MCA693 eyecatcher

A tápegység bekapcsolása

A PIC16F1509 mikrovezérlő 5 V-ról működik, és 4 MIPS számítási teljesítményre képes. Órajelét egy beépített RC-óragenerátor állítja elő, és ez határozza meg a bekapcsolási folyamat időzítését. A bekapcsolási folyamatot egy – a soros I2C-interfészen keresztül érkező – parancs vagy egy gomb megnyomása indítja. Az egyes PM-ek bekapcsolási időpontját egy 1…16 393 ms (16,4 s) közötti értékre 1 ms felbontással programozható időkésleltetés határozza meg. Egy bekapcsolási „forgatókönyvre” példa a következő: a PM1-et az indítási parancs vételétől számított 10 ms-nál, a PM2-t 25 ms-nál, a PM4-et 200 ms-nál, végül a PM3-at 1000 ms-nál kell bekapcsolni. Minden PM-hez tartozik tehát egy bekapcsolási időpont, amelyet 14 bites előjeltelen, egész számként értelmezett adat határoz meg. Ezt az értéket összehasonlítjuk egy időzítőben tárolt adattal, amely milliszekundumonként 1-gyel növekszik. Ha az időzítőben tárolt érték megegyezik valamelyik PM bekapcsolási időpontját meghatározó adattal, megtörténik a megfelelő PM bekapcsolása. A kikapcsolási sorrendet is a felhasználó határozza meg, és az azt meghatározó időértékek a mikrovezérlő flash-memóriájában vannak tárolva. A be- és kikapcsolási szekvenciát a grafikus felhasználói interfészen (GUI) kiadott és a soros I2C-buszon továbbított utasítással lehet elindítani.
Amikor egy PM bekapcsolása kerül sorra, a hozzá tartozó PWM-csatorna működését engedélyezi a szoftver, és a VOUT értékét a mikrovezérlő AD-konvertere mintavételezi. A PWM-ek kitöltési tényezőjét egy-egy hozzájuk rendelt, nyolcbites DAC-érték határozza meg. A trim csatlakozópont feszülségét az Rtrim és a mikrovezérlőből kapott PWM-kimenet határozza meg. Ez a PWM-kimenet egy RC-szűrőre kerül, amely előállítja a PWM-jelsorozat egyenáramú középértékével azonos DA-konverter feszültséget. Ez az Rtrim-ellenállással együtt meghatározza a trim-csatlakozó-pont feszültségét. A tápegység kimeneti feszültségét az MCU 10 bites AD-konvertere felügyeli. Minden PM kimeneti feszültségét 16 egymás utáni mérés átlagolásával kapjuk, amely ezért 14 bites felbontású. Ennek legfelső nyolc bitjét tekintjük az adott PM átlagolt, mért VOUT értékének. Az AD-konverter referenciafeszültsége a VDD, vagyis 5,0 V. Például ha a PM kimenőfeszültsége 2,5 V, akkor a mérés abszolút pontossága (2,5 V/5,0 V)/256=1,95 mV. A rendszer minden kimeneti feszültséget folyamatosan felügyel annak érdekében, hogy ellenőrizze, kimeneti feszültsége a megengedett alsó és felső értékhatárok által meghatározott tartományon belül van-e. Ha a kimeneti feszültség kilép ebből a minden PM-re egyedileg megadott tartományból, hibajelzés keletkezik, és a feszültségsorrend-vezérlő automatikusan kikapcsolja a rendszert.

A tápegység kikapcsolása

A mikrovezérlő a négy tápegységmodul kikapcsolását is programozható idősorrend szerint végzi. A kikapcsolást a soros I2C-buszon érkező parancs vagy a PM-eknél keletkező bármilyen hibaállapot, a bemeneti feszültség rendellenes értéke vagy gombnyomás kezdeményezheti.
A PM-ek kikapcsolását is egy 1…16 393 ms (16,4 s) közötti értékre 1 ms felbontással programozható időkésleltetés határozza meg. Egy lehetséges kikapcsolási sorrend például a következő: a PM4-et a kikapcsolási parancs vételétől számított 20 ms-nál, a PM2-t 25 ms-nál, a PM3-at 200 ms-nál, végül a PM1-et 1000 ms-nál kell kikapcsolni. Az egyes PM-ek kikapcsolási időpontját egy 14 bites, előjeltelen egész érték formájában adjuk meg. Ezeket az értékeket egy 16 bites, 1 ms-onkén léptetett számlálóval hasonlítjuk össze. Ha a számláló értéke megegyezik valamelyik PM kikapcsolási idejét megadó értékkel, az MCU kikapcsolja a megfelelő PM-et. A kikapcsolási időzítésértékeket a felhasználó adja meg, és az MCU flash-memóriájában vannak tárolva. Hibaállapot miatti kikapcsolás esetén egy új bekapcsolási szekvencia hajtódik automatikusan végre, amelynek az ismétlésszámát a felhasználó határozhatja meg. Általában a felhasználó két vagy három újrapróbálkozást ír elő. Ha az összes ismétlés megtörtént, és a hibaállapot továbbra is fennáll, a rendszer véglegesen kikapcsolja az összes PM-et, és hibaállapot-jelzés történik.
Az I2C és a grafikus felhasználói felület (GUI) arra is alkalmas, hogy a felhasználó megállapíthassa, melyik PM hibája, esetleg a bemeneti feszültség eltérése okozta a hibaállapotot. Ennek alapján a felhasználónak meg kell tennie a megfelelő intézkedéseket a hibát okozó körülmény megszüntetésére, és ezután megkísérelheti a bekapcsolási szekvencia megismétlését.

A mikrovezérlő

Mivel a mintafeladatban négy PM-egységet használunk, legalább négy szabad I/O-vezetékre van szükség a tápegységek engedélyező–tiltó funkciójának megvalósításához. Hasonlóképpen négy-négy AD-konverter és PWM-csatornára is szükség van, továbbá két vezetékre az I2C-busz vezérléséhez. Egy további AD-konverter csatorna szükséges a bemeneti feszültség méréséhez, továbbá a mikrovezérlő működéséhez szükséges az MCLR-jel, a VDD és VSS, továbbá egy programozóvezeték is. Ez összesen 20-kivezetést foglal le a mikrovezérlőn. Az 1. ábra mutatja a rendszer tömbvázlatát (ezen csak egy PM-csatorna elemeit ábrázoltuk).

MCA693 Fig1

1. ábra A rendszer tömbvázlata


Az MCU tápfeszültsége 5 V, amelyet egy 5 V-os stabilizátor biztosít. A CPU 4 MIPS-es számítási teljesítményéhez szükséges 16 MHz-es belső órajelet RC-óragenerátor állítja elő. A hardver és a firmware is módosítható úgy, hogy a rendszer akár 10 PM-et is vezérelhessen. Ha ennél is több PM vezérlését kell megvalósítanunk, a szükséges I/O-vezetékek számának növelését egy nagyobb kivezetésszámú mikrovezérlő választásával érhetjük el. Ha csak kevesebb PM-et kell kezelni, kisebb kivezetésszámú MCU-t is választhatunk.
A tápegységek kimenőfeszültségének finombeállítása is változtathatja az igényeket. Ha ugyanis a felhasználó a PM feszültségét egyedül az Rtrim-ellenállás értékének megválasztásával kívánja megoldani, akkor a DA-konverterre nincs szükség, azaz az RC-szűrő és a PWM-csatorna is elhagyható a vezérlésükhöz szükséges szoftverrel együtt.
Minden PM-hez tartozik egy saját felső és alsó feszültség-határérték. Hasonlóképpen a trimfeszültségekhez is hozzárendelhető egy-egy felső és alsó határérték.
A mikrovezérlőn egy I2C slave-interfészt is meg kell valósítani ahhoz a soros kommunikációhoz, amit a tápfeszültség-sorrendkapcsoló folytat a GUI-felületet futtató külső egységgel. Egy MCP2221 típusjelű integrált áramkörrel I2C-mini USB-interfész is megvalósítható a felhasználó saját hardverén, illetve egy külső I2C-interfész is használható a grafikus felhasználói interfészt futtató külső egységgel folyó kommunikációra.
Az I/O, az időzítő (timer1), az AD-konverter, a PWM, a flash-memória és az I2C-periféria megvalósításához szükséges összes firmware előállítható és konfigurálható az ingyenes MPLab Code Configurator (MCC) szoftver segítségével.
Az AD-konverziót vezérlő alprogram végigfut a 0-tól 4-ig tartó bemenetein, és azok feszültségét mintavételezi. A 0. csatorna a tápegységmodulok közös bemeneti feszültségét méri, amelyet folytonosan felügyel a rendszer az ebből eredő hibaállapot felderítése érdekében. A bemeneti feszültség hibás értéke lekapcsolási folyamatot indít el. Ez esetben visszakapcsolási kísérlet, „újrapróbálkozás” nem történik. A 10 bites AD-konverter vezérlőprogramja minden mért feszültségből 16 mintát vesz, és az ezekből képzett 8 bites átlagot használja fel hibaellenőrzésre, azaz az adott csatornához tartozó alsó és felső feszültséglimit által meghatározott tartományból való kilépés ellenőrzésére.
Az általunk megépített mintahardverben a feszültségreferencia 5,0 V vagy a rendszer VDD feszültsége. Az 5 V-os referencia nagyon megfelel az 1,8, 2,5 és 3,3 V-os feszültségek méréséhez. Ha viszont az 5 V-os kimenetű modul feszültségét vagy a bemeneti feszültséget kívánjuk mérni, feszültségosztót kell közbeiktatni, hogy a teljes mérendő feszültségtartomány „beleférjen” az 5 V-os referenciafeszültségbe. A feszültségosztó átvitele (osztásaránya) az 5 V-os modulkimenethez 0,55, a bemeneti feszültség méréséhez pedig 0,239 átvitelű osztót használtunk. A felhasználónak az alsó és felső feszültséglimittel való összehasonlításkor figyelembe kell vennie ezeknek a feszültségosztóknak az átvitelét is, ezért azokat célszerű a programkonstansokat (is) tartalmazó header fájlban definiálni. Ez különösen igaz akkor, ha a felhasználó úgy dönt, hogy az általunk felhasználtaktól eltérő értékeket valósít meg.

A tápfeszültség-sorrendvezérlő grafikus kezelőfelülete

A tápfeszültség-sorrendkapcsoló grafikus felhasználói interfészének (GUI) célja, hogy a felhasználó megadhassa a sorrendkapcsolónak a működést meghatározó; és figyelhesse a működést jellemző adatokat, és vezérelhesse a sorrendkapcsoló működését. A GUI a 2. ábrán látható.

MCA693 Fig2

2. ábra A grafikus felhasználói interfész (GUI)


A fő ablak bal oldalán érhetők el a rendszer működésének választható paraméterei, a jobb oldalon pedig az egyes tápegységmodulok saját adatai. A rendszeropciókkal a felhasználó elindíthatja és leállíthatja a tápellátó rendszert, kiolvashatja és alaphelyzetbe állíthatja a firmware-ben tárolt értékeket. Az állapot- (státus-) ablak lehetővé teszi, hogy a felhasználó megadhassa az egyes – sorszámukkal azonosított – modulok VOUT előírt kimeneti feszültségét. Ezeket az értékeket a felhasználó módosíthatja, és azok a GUI-felület bezárásakor mentődnek el. A felhasználó megadhatja az AD-konverter referenciafeszültségének értékét is, amelyet a mintaalkalmazásban 5,0 V-ra kell beállítani. Végül pedig a felhasználó a „burn flash”-gombra kattintással „beégetheti” a frissített modulbeállításokat a flash programmemóriába. 

A modulokhoz tartozó „fülek” alatt a felhasználó az adott modulhoz tartozó adatokat állíthatja be, illetve olvashatja ki. Az 1. modul 5 V-os tápfeszültséget állít elő, amelynek normál értékét, tűréstartományát, alsó és felső határértékét itt adhatja meg a felhasználó a be- és kikapcsolási késleltetés ms-ban megadott értékeivel együtt. Ennél a fülnél a feszültségosztó osztásarányát is megadhatja és szerkesztheti a felhasználó.
Minden modulhoz tartozó fülnél a DA-konverter bemenő értéke is növelhető vagy csökkenthető a DA-konverter értékét tartalmazó párbeszédablak oldalán látható fel- és lefelé mutató nyilakra kattintva. Ezek hatására az érték fel- vagy lefelé léptethető, és ha a modul be van kapcsolva, a kimeneti feszültség aktuális értéke is beolvasódik és frissítődik. Ahhoz, hogy láthassuk a feszültségváltozást, előfordulhat, hogy egynél többször kell a fel- vagy lefelé léptető nyilakra kattintani. Ez ad lehetőséget a felhasználónak arra, hogy a rendszerteszt során akkor is növelhesse vagy csökkenthesse a beállított feszültséget, ha az elérte a határértékét. Ezt feszültséglimit-tesztelésnek nevezzük, amely lehetővé teszi, hogy a felhasználó a teljes rendszert olyan körülmények között is tesztelhesse, amikor egy vagy több tápfeszültség eléri az alsó vagy felső határértéket. A feszültségértékek a valódi feszültségeknek megfelelő formátumban (3,3 vagy 2,5 V) jelenítődnek meg, a DA-konverter kimenete és a határértékek viszont 8 bites egész értékekként (0…255).

Összefoglalás

Egy mikrovezérlő (PIC16F1XXX) segítségével megvalósíthatunk egy tápfeszültség-sorrendkapcsolót. A felhasználó ezáltal négy tápfeszültségmodul működését vezérelheti, illetve a tervet úgy módosíthatja, hogy a rendszer tulajdonságai megfeleljenek a tervező által megfogalmazott szakmai követelményeknek. Ezenkívül egyszerű lehetőség nyílik a felhasznált tápegységmodulok számának növelésére vagy csökkentésére, ha az alkalmazás ezt igényli. A hardver és a firmware tervezése moduláris megközelítésű annak érdekében, hogy ezeket a célokat könnyen el lehessen érni. A teljes, megépített áramkör képe a 3. ábrán látható.

MCA693 Fig3

3. ábra A teljes, megvalósított tápfeszültség-sorrendkapcsoló

 


[1] Az ilyen áramköröket szokás a hazai gyakorlatban is az angol nevén, „sequencerként” emlegetni. A szokásokat tiszteletben tartjuk ugyan, de a cikkben mégis „sorrendkapcsolónak” nevezzük majd az e funkciót megvalósító áramkört. – A ford. megj.

 

Stan D’SouzaMicrochip Technology
www.microchip.com

Még több Microchip