Secvențiatoarele de alimentare sunt utilizate uzual în proiectele de plăci la nivel de sistem, în care sunt activate multiple surse de tensiune într-o manieră secvențială. Totuși, inginerii pot implementa cu ușurință o schemă de secvențiator cu ajutorul unui microcontroler, iar aceasta poate fi modificată pentru a controla un număr variabil de module de tensiune pentru diferite proiecte.
În mod tipic, sistemele ce utilizează un secvențiator de putere prezintă diferite componente care necesită tensiuni de alimentare, precum și nivele de putere diferite. Secvența activării diferitelor tensiuni va asigura inexistența unor conflicte între componentele alimentate și că toate unitățile sunt alimentate corect. La închiderea sistemului, poate fi, de asemenea, respectată o secvență. Secvențele de alimentare și de oprire a alimentării sunt programabile și bazate pe intervale de timp.
Să luăm de exemplu un secvențiator de alimentare cu patru canale, în care cele patru tensiuni sunt 5; 3.3; 2.5 și 1.8V. Fiecare dintre aceste tensiuni sunt furnizate printr-un modul de putere (PM). Aceste unități PM au în mod tipic cinci pini: tensiune de intrare și de ieșire, masă, activare (enable) și reglare.
Utilizatorii nu sunt limitați la patru PM-uri, deoarece, ca format modular, pot fi suportate până la zece PM-uri, ce pot fi adăugate sau îndepărtate pentru a răspunde unor cerințe specifice.
Pentru microcontrolerul acestei aplicații poate fi selectat dispozitivul Microchip PIC16F1509 cu nucleu îmbunătățit. Perifericele utilizate sunt GPIO, timer1, ADC, I2C și PWM.
Unitățile PM pot fi blocuri de surse de alimentare “la raft”, vândute cu capabilități de putere și de curent specifice. PM-urile utilizate în această schemă sunt VRAE-10E1A0 realizate de BEL Power Products.
Fiecare PM are cinci pini: tensiune de intrare (VIN), tensiune de ieșire (VOUT), masă, intrare de activare (enable) și ieșire de reglare (trim). Semnalul de activare este de tip activ în nivel superior, iar atunci când este activat, tensiunea de ieșire a PM apare la nivelul pinului de tensiune de ieșire. Pinul de reglare, cu rezistența asociată Rtrim permite tensiunii de ieșire să fie reglată la valoarea dorită.
Tensiunea la nivelul pinului de reglare este în jurul valorii de 0.591V. O tensiune DC pe pinul de reglare permite de asemenea sistemului să furnizeze stabilizarea în sarcină a VOUT. În această schemă, tensiunea DC este oferită de un circuit de filtrare RC comandat prin PWM, care furnizează o ieșire de conversie digital analogică pe pinul de reglare.
Alternativ, tensiunea DC poate fi furnizată prin utilizarea unei rezistențe fixe de la pinul de reglare la GND fără tensiunea de reglare DAC PWM. Cu această opțiune, PWM-ul, cu hardware și firmware-ul său asociate în microcontroler, ar putea fi eliminat.
Pornirea alimentării
Pentru controlul secvenței de pornire a alimentării s-a apelat la PIC16F1509, ce operează la 5V și 4MIPS, utilizând ceasul RC intern. Secvența de pornire este inițiată printr-o comandă serială, utilizând interfața I2C și prin acționarea unui buton cu apăsare.
Fiecare PM este secvențiat la un interval de timp stabilit, de la 1 la 16393ms (16.4s) cu o exactitate de 1ms. De exemplu, PM1 poate fi pornit la 10ms de la comanda de start, urmat de PM2 la 25ms, PM4 la 200ms și PM3 la 1000ms. Fiecare PM are o valoare corespunzătoare pentru comutare ON, care este o valoare întreagă pe 14 biți fără semn scrisă în firmware. Această valoare este comparată cu o valoare de temporizare incrementată la fiecare milisecundă. Dacă apare o potrivire între valoarea din timer și valoare de timp de pornire a PM, atunci respectivul PM este pornit. Temporizarea de pornire-oprire poate fi selectată de către utilizator și este salvată în memoria flash de pe microcontroler. Secvența pornit-oprit poate fi pornită și stopată prin utilizarea GUI serial I2C.
Atunci când un PM este pornit, ieșirea PWM corespunzătoare este activată, iar VOUT este monitorizată prin convertorul digital/analog al microcontrolerului. Factorul de umplere PWM corespunde valorii convertorului D/A pe 8 biți pentru PM. Această valoare poate fi schimbată de către utilizator în interfața grafică GUI sau în firmware.
Tensiunea de reglare este creată prin utilizarea unei combinații între Rtrim și ieșirea PWM de la microcontroler. Această ieșire PWM este trimisă către un filtru RC pentru a crea o tensiune DAC, care, în combinație cu rezistența Rtrim, este aplicată pinului de reglare a PM. Ieșirea PM este monitorizată utilizând un convertor analog/digital pe 10 biți al microcontrolerului. Fiecare tensiune PM este mediată pe 16 citiri pentru a furniza o valoare pe 14 biți. Numai cei mai semnificativi 8 biți ai acestei valori sunt utilizați pentru a reprezenta referință de tensiune VOUT a fiecărui PM. Tensiunea de referință a convertorului A/D este VDD sau 5V.
De exemplu, dacă ieșirea PM este de 2.5V, atunci precizia măsurării va fi (2.5V/5V)/256 = 1.95mV. Toate tensiunile de ieșire sunt constant monitorizate pentru a verifica dacă sunt în limitele impuse de limitele de supratensiune și subtensiune. Dacă tensiunea PM trece de limitele mai sus menționate, atunci problema este semnalizată, iar sistemul se închide automat.
Oprirea alimentării
MCU controlează, de asemenea, și secvența de oprire a alimentării pentru cele patru surse de tensiune. Secvența de oprire a alimentării este inițiată prin comandă serială de la I2C, prin orice condiție de eroare de pe PM sau tensiune de intrare și prin apăsarea unui buton. Fiecare PM este oprit la o valoare stabilită în intervalul de la 1 la 16393ms (16.4s) cu o precizie de 1ms. De exemplu, PM4 poate fi închis la 20ms de la comanda de stop, urmată de PM2 la 25ms, PM3 la 200ms și PM1 la 1000ms.
Fiecare PM are o valoare corespunzătoare a timpului de oprire, care este un întreg pe 14 biți fără semn. Această valoare este independentă de valoarea corespunzătoare pornirii. Ea este comparată cu o valoare a unui numărător pe 16 biți, care se incrementează la fiecare milisecundă. Dacă cele două valori sunt egale, atunci respectivul PM este oprit.
Timpii de oprire sunt selectabili de către utilizator și sunt salvați în memoria flash. În cazul unei condiții de eroare ce generează închidere, va fi inițiată automat o nouă secvență de pornire, în funcție de numărul de reîncercări selectate de utilizator. În mod uzual, utilizatorul poate specifica două sau trei reîncercări. După ce toate încercările au ca efect o eroare, sistemul se închide și condiția de eroare este semnalizată. Utilizând interfața grafică GUI I2C, utilizatorul poate determina care condiție PM sau care tensiune de intrare au cauzat eroare de funcționare. Utilizatorul trebuie să ia decizia corectivă potrivită pentru a îndepărta condiția de eroare și a reinițializa sistemul utilizând comanda serială I2C sau GUI, iar apoi se va reîncerca secvența de pornire a alimentării.
Microcontrolerul
Deoarece în acest exemplu sunt utilizate patru canale ale PM, este necesară utilizarea a cel puțin patru linii de I/O pentru funcțiile de activare/dezactivare. De asemenea, sunt necesare 4 canale de convertoare A/D, patru ieșiri PWM și două linii pentru I2C. Un canal de conversie A/D suplimentar a fost utilizat pentru a eșantiona tensiunea de referință, MCLR, VDD, VSS și pinii de programare; un total de 20 de pini. Figura 1 prezintă diagrama bloc a sistemului.
MCU este alimentat cu 5V printr-un regulator de 5V. Ceasul intern RC de 16MHz este utilizat pentru a comanda CPU la 4MIPS. Hardware-ul și firmware-ul pot fi modificate pentru a lucra cu până la zece PM-uri. Dacă este nevoie de mai multe PM-uri, numărul de I/O va crește și va trebui selectat un microcontroler mai mare.
Dacă sunt necesare mai puține PM-uri, atunci poate fi utilizat un dispozitiv mai mic. Cerințele tensiunii de reglare pot fi de asemenea reglate. Dacă utilizatorul dorește să regleze PM-urile numai cu ajutorul unei rezistențe externe, atunci tensiunea convertorului D/A și PWM-ul asociat nu sunt necesare. Software-ul necesar pentru a comanda PWM-ul și convertorul D/A va fi, de asemenea, eliminat.
Fiecare PM are propriile limite normale de supra și subtensiune. PM-urile au, de asemenea, limite de supra și subtensiune pentru tensiunea de reglare.
Pentru comunicarea serială cu un GUI I2C extern pe MCU este implementată o interfață slave I2C.
Utilizatorii pot implementa în hardware-ul lor un cip de interfațare I2C-miniUSB, MCP2221, sau, dacă este nevoie, pot implementa o interfață diferită I2C.
Întregul firmware pentru IO, timer1, ADC, PWM, memorie flash și periferice I2C a fost creat și inițializat utilizând softwater-ul gratuit MCC (MPLab Code Configurator).
Rutina de conversie A/D rulează și eșantionează tensiuni pentru modulele de la 0 la 4. Modulul 0 corespunde tensiunii de intrare, care este întotdeauna monitorizată în vederea detectării erorilor. Eroarea la nivelul tensiunii de intrare cauzează o închidere. Nu vor fi încercări de repornire. Rutina convertorului A/D pe 16 biți eșantionează fiecare tensiune de 16 ori și apoi utilizează valoarea medie pe 8 biți pentru a detecta erori prin comparație cu limitele de supra și subtensiune.
În hardware-ul utilizat, tensiunea de referință este de 5V sau VDD a sistemului. O referință de 5V va lucra corect atunci când eșantionează și convertește 1.8; 2.5 și 3.3V. Totuși, pentru tensiunea de intrare și modulul de 5V, este necesară o rezistență divizoare de tensiune pentru a opera întreg domeniul de tensiune cu referința de 5V.
Factorul de divizare al rezistenței pentru modulul de 5V este de 0.55, iar factorul de divizare pentru tensiunea de intrare este de 0.239. Utilizatorii vor trebui să utilizeze această valoare pe durata calculului valorilor limită de supra și subtensiune și să le definească corect în fișierele antet. Acest lucru este în special adevărat dacă utilizatorul decide să utilizeze alte valori decât cele menționate aici.
Interfața grafică GUI pentru secvențiatorul de alimentare
Interfața grafică GUI a secvențiatorului de alimentare a fost proiectată pentru ca utilizatorul să introducă date relevante, să monitorizeze date relevante și să controleze aplicarea secvenței de alimentare. Interfața grafică este prezentată în figura 2.
Fereastra principală are opțiunile de sistem în stânga și pe cele de modul ca tab-uri în dreapta.
În ceea ce privește opțiunile de sistem, utilizatorul poate porni, opri, reinițializa și citi valorile curente din firmware. Fereastra de stare permite utilizatorului să definească VOUT corespunzătoare index-ului modulului. Aceste valori pot fi modificate de către utilizator și vor fi salvate atunci când interfața GUI este închisă. Utilizatorul poate de asemenea introduce valoarea de referință a convertorului A/D, care în această notă de aplicație este stabilită la 5V.
În cele din urmă, utilizatorul poate scrie parametrii actualizați ai modulului în memoria program flash, executând click pe butonul burn-flash.
Sub fiecare tab de modul, utilizatorul poate, de asemenea, stabili sau citi valorile existente pentru fiecare modul. Modulul 1 este unul de 5V, iar utilizatorul poate stabili valorile normale și marginale ale limitelor de supra și subtensiune, împreună cu timpii de start și stop în milisecunde. De asemenea, factorul de divizare al tensiunii poate fi editat și introdus în acest tab.
În fiecare tab al modulelor, valoarea convertorului A/D poate fi incrementată sau decrementată utilizând săgețile orientate în sus și jos aferente căsuței cu valoarea DAC. Valoarea incrementează sau decrementează, iar dacă modulul este pornit, atunci tensiunea de ieșire va fi citită și actualizată.
Pentru a vedea schimbarea tensiunii, trebuie efectuat mai mult de un decrement sau increment. Această caracteristică permite utilizatorului să crească sau să descrească tensiunea de ieșire pe perioada unei testări de sistem, atunci când tensiunile își ating limitele. Acest test se numește testarea limitelor de tensiune și permite utilizatorului să observe ce se întâmplă atunci când una sau mai multe tensiuni de ieșire ating limitele de supra sau subtensiune. Valorile de tensiune sunt afișate ca valori curente de tensiune (3.3 sau 2.5V). Valoarea DAC și limitele marginale sunt afișate ca valori pe 8 biți de la 0 la 255.
Concluzie
Un inginer poate implementa un secvențiator de alimentare, utilizând un dispozitiv PIC16F1XXX. Utilizatorul poate modifica destul de ușor dispozitivul pentru a controla cele patru module de tensiune în cadrul aplicației sale. Suplimentar, în aplicație pot fi adăugate mai multe module de alimentare, sau pot fi eliminate unele module în vederea unei aplicații mai mici. Hardware-ul și firmware-ul au fost create într-un format modular pentru a răspunde cu ușurință sarcinilor. Placa completă este prezentată în figura 3.
Autor: Stan D’Souza, Inginer în echipa tehnică la Microchip Technology
Microchip Technology | www.microchip.com