Circuito analogico (Figura 1)
Per le specifiche di 0-30 V e 0-1 A, avevo bisogno di trovare componenti in grado di funzionare con un'alta tensione (< 35 V) nella sezione analogica del progetto. Ho scelto l'MCP6V51, una linea di amplificatori operazionali ad alta tensione, e i sensori di corrente high-side MCP6C02, poiché soddisfacevano i requisiti del mio progetto.

Il progetto si basa su un circuito di retroazione di integrazione dell'errore a tensione e corrente costanti convenzionale. Gli amplificatori operazionali selezionati, MCP6V51, possono gestire tensioni fino a 49V e si distinguono per la bassa deriva e le buone prestazioni in corrente continua. I valori delle resistenze sono mantenuti bassi (10 kΩ) e uguali sugli ingressi invertente e non invertente per minimizzare qualsiasi errore di offset. Queste resistenze, insieme ai condensatori da 1 µF (C1, C2), svolgono una funzione di filtro RC per eliminare qualsiasi rumore residuo dalle uscite del convertitore digitale-analogico (DAC). Le tensioni regolate sono fornite dai DAC del microcontrollore, da 0 a 3,3 V, quindi la tensione di retroazione in ingresso deve essere impostata a questo livello tramite R1 e R2.

Per quanto riguarda la corrente, è preferibile misurarla sul lato ad alto potenziale per mantenere una massa comune e utilizzare la resistenza di rilevamento della corrente più bassa possibile, minimizzando così sia la caduta di tensione che la dissipazione di potenza. Il sensore di corrente ad alto potenziale MCP6C02 soddisfa questi criteri. Può funzionare fino a 65 V e con un guadagno di 100, consentendo un piccolo shunt di corrente. Poiché la corrente massima prevista per questa applicazione è di 1 A, la resistenza di shunt dovrebbe essere di circa 30 mΩ, il che produrrebbe una tensione di feedback di 30 mΩ * 1 A * 100 = 3,0 V. La resistenza è realizzata con una traccia di rame larga 40 mil (circa 1 mm) e lunga circa 64 mm sul circuito stampato (vedere Figura 3).


Il carico su un alimentatore da laboratorio può variare da un circuito aperto a un cortocircuito, pertanto sono necessari componenti di protezione aggiuntivi. I diodi generici da 1 A collegati in direzioni opposte (D1, D2), insieme alla resistenza limitatrice di corrente R3, assicurano che la tensione di ingresso differenziale del chip di rilevamento della corrente rimanga al di sotto della tensione massima di 1,2 V in qualsiasi condizione. Il condensatore di integrazione (C3) nell'amplificatore di corrente deve essere di diversi ordini di grandezza maggiore rispetto a quello sul lato tensione per compensare il ritardo di propagazione aggiunto dall'amplificatore di rilevamento della corrente, stabilizzando così il circuito. Un secondo canale del DAC del microcontrollore fornisce la tensione regolata (che a sua volta fornisce la corrente regolata) all'amplificatore di errore di corrente U2.
Le uscite dei due amplificatori sono interconnesse in una porta logica OR con i diodi per piccoli segnali D3 e D4 per pilotare i transistor di passaggio Darlington in uscita. La porta OR determina se l'alimentatore è in modalità a tensione costante o a corrente costante.

 

Circuito del microcontrollore (Figura 2)
Il microcontrollore controlla la tastiera e lo schermo LCD, oltre a generare i livelli di tensione di riferimento per i circuiti di controllo analogici, il che richiede due canali DAC con buona risoluzione. Un convertitore A/D (ADC) verrà utilizzato per misurare vari parametri dell'alimentatore.

Il microcontrollore Atmel SAML21 è stato scelto perché dispone di due canali DAC a 12 bit, affiancati da un ADC a 12 bit, in un piccolo package TQFP a 32 pin. L'applicazione non richiede un DAC a 12 bit completo; tuttavia, è consigliabile un margine di sicurezza aggiuntivo, poiché si verifica una leggera perdita di precisione dovuta a errori di specifica e di arrotondamento durante il calcolo dei valori da parte del firmware.


del firmware
è scritto in C e sono disponibili due versioni del driver: una, denominata PowerSupplyBasic.c, fornisce le funzioni di base, regolando e misurando tensione e corrente; la versione completa, denominata PowerSupplyFull.c, misura anche la temperatura del dissipatore, aziona una ventola in base alla temperatura del dissipatore, visualizza la tensione e la potenza in ingresso e la potenza dissipata nel transistor di potenza. Questi driver sono disponibili nella documentazione di riferimento e devono essere aggiunti a un progetto Studio 7 insieme al file iniziale PowerSupply.h. Il programma è stato compilato utilizzando l'IDE Studio 7 (versione 7.0.129) e per la programmazione e il debug è stato utilizzato un Atmel ICE. I pin di programmazione sul circuito stampato non sono compatibili con il connettore standard fornito con il programmatore, pertanto è necessario installare un nuovo connettore per garantire l'allineamento dei pin con quelli mostrati in Figura 2 e con il layout della scheda.

All'accensione, la tensione viene impostata a 0 V e la corrente a 50 mA. Il display mostra la tensione impostata e la tensione misurata sulla prima riga, e la corrente impostata e la corrente misurata sulla seconda riga (Figura 5).
Se è installata la versione completa del driver (nonché l'hardware associato, come spiegato di seguito), è possibile visualizzare le funzioni ausiliarie.

L'interfaccia principale funziona in questo modo:

Hardware:
Le tensioni di rottura per i componenti passivi a montaggio superficiale non sono solitamente un problema, poiché la maggior parte dei circuiti opera a basse tensioni. Questa applicazione rappresenta un'eccezione, pertanto è importante prestare attenzione a questo parametro. Alcuni dei condensatori che ho utilizzato sul circuito stampato hanno una tensione nominale di 50 V o superiore. Esistono validi motivi per utilizzare condensatori ceramici da 50 V (o superiori) in tutte le posizioni, se disponibili in un formato di tale capacità. La capacità dei condensatori ceramici a chip è dipendente dalla tensione; la capacità diminuisce all'avvicinarsi della tensione al loro valore operativo massimo.

Ho aggiunto un'alimentazione VDD separata al regolatore di tensione L78L3.3, VinLOW. Questo regolatore ha una tensione di ingresso massima di 30V. Se l'alimentatore fornisce una tensione superiore, VinLOW deve essere alimentato da un'alimentazione separata a tensione inferiore, oppure è necessario inserire un componente per creare una caduta di tensione tra Vin e VinLOW. Anche una resistenza o un diodo Zener funzioneranno; questo circuito assorbe circa 25mA di corrente, principalmente attraverso il LED che illumina il retro dello schermo.

Se si sceglie la versione completa, è necessario collegare anche il diodo D5 per garantire un buon contatto termico con il transistor di potenza (TIP140). La resistenza R14 fornisce una corrente costante approssimativa di 100 µA, quindi la caduta di tensione ai capi del diodo dipende solo dalla temperatura, con valori tipici di 0,7 V e -2 mV/°C. Tuttavia, esiste una notevole variabilità nel livello di tensione assoluto e nel coefficiente di temperatura (pendenza) tra i diodi. Pertanto, questo parametro deve essere calibrato separatamente nel software. Il SAML21 incorpora un modulo di temperatura calibrato in fabbrica, il che lo rende un buon punto di partenza.
Ho optato per un contenitore in alluminio e l'alimentatore completo è visibile in Figura 5.


Varianti:
Se si desidera realizzare solo la versione base senza la ventola del dissipatore di calore, i seguenti componenti non sono necessari: T3, R9, R14, R7, R8, D5.
Io avevo un trasformatore che forniva una tensione raddrizzata di circa 40 V a vuoto e una corrente nominale di 1 A. Pertanto, ho impostato la tensione regolata massima a 30 V e la corrente massima a 1 A. I transistor di passaggio dovrebbero fornire una tensione combinata di 4-5 V tra collettore ed emettitore a pieno carico.
Se si dispone di un trasformatore che fornisce una tensione inferiore o superiore, è possibile modificare il codice che imposta la tensione di riferimento del DAC. Se la variazione di tensione desiderata è al di fuori del range di regolazione del potenziometro R2, è necessario modificare il valore della resistenza R1 in modo che la tensione all'ingresso invertente di U1 sia inferiore al livello alto minimo del DAC (VDD – 150 mV) per la tensione di uscita massima dell'alimentatore.
Il limite di tensione massima è determinato dalla tensione massima specificata per gli amplificatori operazionali e/o i transistor di passaggio. Con gli amplificatori operazionali selezionati, la tensione di ingresso a vuoto deve essere inferiore a 49,5 V meno un margine di sicurezza. Il limite superiore di corrente dipende dalla corrente che il transistor di passaggio può gestire. Il TIP140 è adatto per una corrente di collettore CC di 10 A, ma è possibile aggiungere transistor di passaggio in parallelo (con opportune resistenze di ripartizione della corrente) per aumentare ulteriormente la corrente di uscita. Quando i livelli di corrente sono elevati, anche la dissipazione di potenza sarà elevata e questo dovrà essere gestito con un dissipatore di calore adeguato. Ho combinato un dissipatore di calore e una ventola provenienti da una vecchia scheda madre per PC, che funziona molto bene per 30 W. La corrente di controllo di base non sarà un problema, nemmeno al livello di 10 A, poiché l'hFE del TIP140 è ancora elevato.
Il transistor di controllo Darlington più piccolo, il BCV29, è limitato a una corrente di collettore continua di 0,5 A con un hFEMIN = 4000 a quel livello di corrente, fornendo quindi un carico molto piccolo per l'amplificatore operazionale U1. Questo transistor è saldato al circuito stampato e, per applicazioni che richiedono solo basse correnti, è possibile omettere il transistor di potenza TIP140 montato esternamente e collegare l'emettitore del BCV29 direttamente all'uscita dell'alimentatore. Questo transistor è fornito in un contenitore SOT89 per montaggio superficiale, quindi la dissipazione di potenza sarà limitata poiché la dissipazione di calore è minima. Se si considera questa opzione, prestare molta attenzione alla temperatura del transistor BCV29.

Figura 4. Schermata di output.

 

In conclusione,
il microcontrollore apre molte opportunità per integrare funzioni in questo alimentatore, come la possibilità di programmare una curva tensione/corrente nel tempo in test e altre applicazioni.
L'obiettivo di questo progetto non era progettare un alimentatore commerciale di alta precisione, ma uno pratico per il mio banco di lavoro, e ha superato le mie aspettative.

  

Elenco dei materiali per l'alimentatore a 32 bit