STEP-UP CON MICROCONTROLLORE

Schema con Microcontrollore per Realizzare un Convertitore DC-DC Step-up per Elevare una Tensione all’interno del Circuito…

 

 

 
 



 

INTRO

In molte applicazioni e in molti circuiti vi è la necessità di avere più tensioni di alimentazione, ad esempio in un circuito con un microcontrollore a 5V e una ventola a 12V vi è la necessità di avere queste due tensioni. Le soluzioni sono molteplici; si può alimentare il circuito con una sola tensione a 12V e poi ricavare da quest’ultima la tensione a 5V con un convertitore (lineare o switching), si può usare un alimentatore con doppia uscita a 5V e 12V oppure si può alimentare il circuito con 5V e realizzare un convertitore step-up che innalza la tensione a 12V.

L’ultima soluzione viene usata se gli elementi alimentati a 12V e dallo step-up non assorbono correnti elevate >1A, questo perché se non ben progettati gli step-up hanno un’efficienza minore rispetto la soluzione di partire da 12V e ridurre la tensione.

Per innalzare la tensione si può usare un apposito chip che realizza un dc-dc converter step-up, un duplicatore di tensione con ne555 oppure si può realizzare lo step-up con un microcontrollore che regola la tensione di uscita andando a leggere con l’ADC il valore di uscita e regolando di conseguenza il segnale PWM di controllo.

La soluzione di usare un microcontrollore è ottima se nello schema esso è già presente. Inoltre nel microcontrollore possono essere realizzate le funzioni di controllo della tensione di uscita e anche altre funzioni. Ovviamente devono essere funzioni veloci in modo tale che la tensione non rimanga non regolata.

Torniamo all’esempio della ventola e del microcontrollore e supponiamo che lo schema serve per un controllo di temperatura. Nel microcontrollore realizzo il codice di controllo dello step-up e inoltre leggo la temperatura e ad esempio adatto la tensione di uscita alla temperatura per controllare la ventola.

Questo è solo un esempio delle applicazioni del circuito.

 




 

CODICE

Il codice è il seguente:

char value = 0b00010100;
unsigned int conversion;

void main() {

PR2 = 20;

T2CON = 0b00000100;         //settaggi tmr2: postascaler 1:1, tmr2 on, prescaler 1:1

CCP1CON = 0b00111100;       //utilizza pwm e setta il valore di comparazione con i due lsb = 11

TRISC.F2 = 0;               //uscita pwm

CCPR1L = value;             //valore affinchè DC=1 ccpr1l=0001100 ccp1con=0011...

ADC_Init();



   while(1){

   conversion = ADC_Get_Sample(0);

   if(value>0b00000000 && conversion<0b0011001000) value--;

   if(value<0b00010100 && conversion>0b0011001000) value++;

   CCPR1L = value;         //valore affinchè DC=1 ccpr1l=0001100 ccp1con=0011...
   }
}

Nel “main” si va ad inizializzare il modulo che genera il segnale PWM di uscita e in particolare si setta il timer counter 2 con un prescaler e postscaler di 1:1 in modo tale che esso conti alla frequenza di oscillazione interna. Poi si setta il modulo CCP1 come generatore del PWM e si inizializza il PWM a livello alto.

Nel ciclo infinito si va a convertire la tensione presente sul pin AN0 che sarà una parte della tensione di uscita, così da avere informazioni sulla tensione di uscita. Se il valore convertito è minore della soglia (0.8V) allora si va a ridurre il Duty Cycle del PWM in modo tale che l’induttore dello step-up si carichi ad una tensione maggiore. Se il valore convertito è maggiore della soglia allora il Duty Cycle si va ad incrementare.

Il nuovo valore di Duty Cycle viene scritto nel modulo PWM. Sotto la stringa “CCPR1L = value;” possono essere eseguite altre funzioni, si consiglia però di non inserire delay lunghi (>100ms).

 

SCHEMA

Lo schema è il seguente:

Il microcontrollore è alimentato da una tensione a 5V che giunge con il positivo al pin 20 e con il negativo o massa ai pin 19 e 8. R1 mantiene in uno stato di funzionamento il microcontrollore mentre C1, C2 e X1, il quarzo da 20MHz) formano la rete di oscillazione.

Gli elementi del convertitore Step-up sono L1, D1, Q1 e C3-C4 mentre R2 ed R3 formano la rete di retroazione.

Il Mosfet Q1 deve essere un N-Chanel con tensione VDS supportata di almeno 30V, corrente di almeno 3A e una capacità di gate inferiore ai 70nC. L’induttore L1 può essere aumentato a 220uH per aumentare la corrente dai 300mA attuali a circa 500mA mentre il diodo D1 deve essere un diodo Schottky con tensione superiore a 30V e corrente di 1A come ad esempio un 1N5818.

Le due capacità in parallelo C3 e C4 sono così connesse per dimezzare la ESR del condensatore e ridurre il ripple.

Il circuito può essere alimentato anche a 12V e ad esempio elevarli a 24V solo che serve un diodo Zener tra VDD e il pin 20 del microcontrollore con valore di 7.5V in modo tale che il microcontrollore sia alimentato da 12-7.5=4.5V e non si brucia.

Lo schema realizzato su breadboard per il test ha il seguente aspetto:

 

DOWNLOAD

Potete scaricare la simulazione del circuito con PROTEUS e il codice compilato con MIKROC al seguente LINK!!!



 

[Voti Totali: 0 Media Voti: 0]
Segui la Nostra Pagina Facebook: Facebook

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *