Sommario:

Alimentatore switching ad alta tensione (SMPS)/convertitore boost per tubi Nixie: 6 passaggi
Alimentatore switching ad alta tensione (SMPS)/convertitore boost per tubi Nixie: 6 passaggi

Video: Alimentatore switching ad alta tensione (SMPS)/convertitore boost per tubi Nixie: 6 passaggi

Video: Alimentatore switching ad alta tensione (SMPS)/convertitore boost per tubi Nixie: 6 passaggi
Video: Come funzionano i Boost (alimentatori switching DC/DC elevatori di tensione)? 2024, Dicembre
Anonim
Alimentatore switching ad alta tensione (SMPS)/convertitore boost per tubi Nixie
Alimentatore switching ad alta tensione (SMPS)/convertitore boost per tubi Nixie

Questo SMPS aumenta la bassa tensione (5-20 volt) all'alta tensione necessaria per pilotare i tubi Nixie (170-200 volt). Attenzione: anche se questo piccolo circuito può funzionare con batterie/erba da parete a bassa tensione, l'uscita è più che sufficiente per ucciderti!

Il progetto include: Foglio di calcolo di supporto File EagleCAD CCT e PCB Sorgente firmware MikroBasic

Passaggio 1: come funziona?

Come funziona?
Come funziona?

Questo progetto si basa sulla nota applicativa del microchip TB053 con diverse modifiche basate sull'esperienza dei membri di Neonixie-L (https://groups.yahoo.com/group/NEONIXIE-L/). Ottieni la nota dell'app - è una bella lettura di poche pagine: (https://ww1.microchip.com/downloads/en/AppNotes/91053b.pdf) L'illustrazione sotto è estratta da TB053. Descrive il principio di base alla base dell'SMPS. Un microcontrollore mette a terra un FET (Q1), consentendo a una carica di accumularsi nell'induttore L1. Quando il FET è spento, la carica scorre attraverso il diodo D1 nel condensatore C1. Vvfb è un feedback del partitore di tensione che consente al microcontrollore di monitorare l'alta tensione e attivare il FET secondo necessità per mantenere la tensione desiderata.

Passaggio 2: caratteristiche dell'induttore

Caratteristiche dell'induttore
Caratteristiche dell'induttore

Anche se molto bella, la nota dell'app Microchip mi sembra un po' indietro. Inizia determinando la potenza richiesta, quindi sceglie un tempo di carica dell'induttore senza preoccuparsi degli induttori disponibili. Ho trovato più utile scegliere un induttore e progettare l'applicazione attorno a quello. Gli induttori che ho usato sono "C&D Technologies Inductors RADIAL LEAD 100uH" (parte Mouser 580-18R104C, 1,2 amp, $ 1,40), (parte Mouser 580-22R104C, 0,67 amplificatore, $ 0,59). Ho scelto questi induttori perché sono molto piccoli, molto economici, ma hanno una potenza nominale decente. Conosciamo già il valore massimo continuo della nostra bobina (0,67 ampere per il 22R104C), ma dobbiamo sapere quanto tempo ci vorrà per caricare (ora di alzarsi). Piuttosto che utilizzare un tempo di carica fisso (vedi equazione 6 in TB053) per determinare gli ampere della bobina richiesti, possiamo interrogare l'equazione 6 e risolvere per il tempo di salita: (nota: l'equazione 6 in TB053 è sbagliata, dovrebbe essere L, non 2L) (Volt in/Inductor uH)*rise_time=Peak Amp -diventa-(Inductor uH/Volts in) * Peak Amp = tempo di salita.-usando il 22R104C con un'alimentazione a 5 volt si ottiene quanto segue: (100/5)*0.67= 13,5 uSI ci vorranno 13,5 uS per caricare completamente la bobina dell'induttore a 5 volt. Ovviamente questo valore varierà al variare delle tensioni di alimentazione. Come notato in TB053: "La corrente in un induttore non può cambiare istantaneamente. Quando Q1 viene spento, la corrente in L1 continua a fluire attraverso D1 al condensatore di accumulo, C1 e al carico, RL. Pertanto, la corrente nell'induttore diminuisce linearmente nel tempo dalla corrente di picco. "Possiamo determinare la quantità di tempo impiegata dalla corrente per uscire dall'induttore usando l'equazione 7 TB05. In pratica questo tempo è molto breve. Questa equazione è implementata nel foglio di calcolo incluso, ma non verrà discussa qui. Quanta potenza possiamo ottenere da un induttore da 0,67 amp? La potenza totale è determinata dalla seguente equazione (tb053 equazione 5): Potenza=(((tempo di salita)*(Volt in)2)/(2*Induttore uH))-usando i nostri valori precedenti troviamo-1,68 Watt=(13,5uS*5volt2)/(2*100uH)-convertire i watt in mA-mA=((Power Watt)/(output volt))*1000-usando una tensione di uscita di 180 troviamo-9,31mA = (1,68Watt/180volt)*1000Possiamo ottenere un massimo di 9,31 mA da questa bobina con un'alimentazione di 5 volt, ignorando tutte le inefficienze e le perdite di commutazione. È possibile ottenere una maggiore potenza di uscita aumentando la tensione di alimentazione. Tutti questi calcoli sono implementati nella "Tabella 1: Calcoli della bobina per l'alimentazione ad alta tensione" del foglio di calcolo incluso in questa istruzione. Vengono inserite diverse bobine di esempio.

Passaggio 3: guidare l'SMPS con un microcontrollore

Guidare l'SMPS con un microcontrollore
Guidare l'SMPS con un microcontrollore

Ora che abbiamo calcolato il tempo di salita per la nostra bobina, possiamo programmare un microcontrollore per caricarlo abbastanza a lungo da raggiungere i suoi mA nominali. Uno dei modi più semplici per farlo è utilizzare il modulatore di larghezza di impulso hardware di un PIC. La modulazione dell'ampiezza dell'impulso (PWM) ha due variabili descritte nella figura seguente. Durante il ciclo di lavoro il PIC accende il FET, lo mette a terra e consente la corrente nella bobina dell'induttore (tempo di salita). Durante il resto del periodo il FET è spento e la corrente scorre dall'induttore attraverso il diodo ai condensatori e al carico (tempo di caduta). Conosciamo già il tempo di salita richiesto dai nostri calcoli precedenti: 13,5 uS. TB053 suggerisce che il tempo di salita sia il 75% del periodo. Ho determinato il valore del mio periodo moltiplicando il tempo di salita per 1,33: 17,9 uS. Ciò è coerente con il suggerimento in TB053 e garantisce che l'induttore rimanga in modalità discontinua, scaricandosi completamente dopo ogni carica. È possibile calcolare un periodo più esatto aggiungendo il tempo di salita calcolato al tempo di caduta calcolato, ma non l'ho provato. Ora possiamo determinare il ciclo di lavoro effettivo e i valori del periodo da inserire nel microcontrollore per ottenere gli intervalli di tempo desiderati. Nel manuale Microchip PIC Mid-range troviamo le seguenti equazioni (https://ww1.microchip.com/downloads/en/DeviceDoc/33023a.pdf): PWM Duty Cycle uS =(10 bit Duty Cycle Value) * (1 / frequenza dell'oscillatore) * PrescalerSe impostiamo il prescaler su 1 e battiamo questa equazione con uno stick di algebra otteniamo: Valore del ciclo di lavoro a 10 bit = ciclo di lavoro PWM uS * Frequenza dell'oscillatoreSostituire il ciclo di lavoro uS per il tempo di salita calcolato e assumere un oscillatore da 8 Mhz frequency:107 = 13.5uS * 8Mhz107 viene inserito nel PIC per ottenere un duty cycle di 13.5uS. Successivamente, determiniamo il valore del periodo PWM. Dal Mid-Range Manual otteniamo la seguente equazione: PWM period uS = ((PWM period value) + 1) * 4 * (1/oscillator frequency) * (prescale value) Di nuovo, impostiamo il prescaler a 1 e molestiamo l'equazione per il valore del periodo PWM, dandoci: Valore del periodo PWM = ((Periodo PWM uS/(4/Frequenza oscillatore))-1) Sostituisci il periodo uS per (1,33*tempo di salita) e assumi una frequenza dell'oscillatore di 8 Mhz: 35= ((17.9/(4/8))-1)35 viene inserito nel PIC per ottenere un periodo di 17.9uS. Ma aspetta! Il periodo non è più breve del ciclo di lavoro? No - I PIC hanno un registro del ciclo di lavoro a 10 bit e un registro del periodo a 8 bit. C'è una maggiore risoluzione per il valore del ciclo di lavoro, quindi il suo valore a volte sarà maggiore del valore del periodo, specialmente alle alte frequenze. Tutti questi calcoli sono implementati nella "Tabella 2. Calcoli PWM" del foglio di calcolo incluso in questa istruzione. Vengono inserite diverse bobine di esempio.

Passaggio 4: progettazione PCB

Progettazione PCB
Progettazione PCB
Progettazione PCB
Progettazione PCB

PCB e CCT sono in formato EagleCad. Entrambi sono inclusi nell'archivio ZIP.

Ho esaminato diversi progetti esistenti durante la realizzazione di questo PCB. Ecco le mie note su: caratteristiche di progettazione importanti: 1. Ho seguito la nota dell'APP di Microchip e ho usato un TC4427A per pilotare il FET. Questo A) protegge il microcontrollore dalle tensioni di ritorno in uscita dal FET e B) può pilotare il FET a tensioni più elevate rispetto al PIC per una commutazione più rapida/più difficile con una migliore efficienza. 2. La distanza dal PWM del PIC al FET è ridotta al minimo. 3. FET, induttore, condensatori imballati molto stretti. 4. Traccia di rifornimento di grasso. 5. Buona messa a terra tra FET e punto di connessione wall-wort. Ho scelto il microcontrollore PIC 12F683 per questo progetto. Questo è un PIC a 8 pin con PWM hardware, 4 convertitori da analogico a digitale, oscillatore interno da 8 Mhz e EEPROM da 256 byte. Ancora più importante, ne avevo uno da un progetto precedente. Ho usato il FET IRF740 a causa del suo grande successo nella lista Neonixie-L. Ci sono 2 condensatori per livellare l'alimentazione HV. Uno è un elettrolitico (alta temperatura, 250 volt, 1uF), l'altro è una pellicola metallica (250 volt, 0,47 uf). Quest'ultimo è molto più grande e più costoso ($ 0,50 contro $ 0,05), ma necessario per ottenere un output pulito. Ci sono due circuiti di retroazione di tensione in questo progetto. Il primo consente al PIC di rilevare la tensione di uscita e di applicare impulsi al FET secondo necessità per mantenere il livello desiderato. La "Tabella 3. Calcoli della rete di feedback ad alta tensione" può essere utilizzata per determinare il valore di feedback corretto dato il divisore di tensione a 3 resistori e la tensione di uscita desiderata. La regolazione fine viene eseguita con il resistore trimmer da 1k. Il secondo feedback misura la tensione di alimentazione in modo che il PIC possa determinare il tempo di salita ottimale (e i valori del ciclo di lavoro/periodo). Dalle equazioni del passaggio 1 abbiamo scoperto che il tempo di salita dell'induttore dipende dalla tensione di alimentazione. È possibile inserire valori esatti dal foglio di calcolo nel tuo PIC, ma se l'alimentazione viene modificata i valori non sono più ottimali. Se funziona a batterie, la tensione diminuirà man mano che le batterie si scaricano richiedendo un tempo di salita più lungo. La mia soluzione era lasciare che il PIC calcolasse tutto questo e impostasse i propri valori (vedi firmware). Il ponticello a tre pin seleziona la sorgente di alimentazione per il TC4427A e la bobina dell'induttore. È possibile far funzionare entrambi dal regolatore 7805 a 5 volt, ma si ottengono migliori efficienze e una maggiore potenza con una tensione di alimentazione maggiore. Sia il TC4427a che il FET IRF740 resistono fino a ~20 volt. Poiché il PIC si calibrerà per qualsiasi data tensione di alimentazione, ha senso alimentarli direttamente dall'alimentatore. Questo è particolarmente importante nel funzionamento a batteria: non c'è bisogno di sprecare energia nel 7805, basta alimentare l'induttore direttamente dalle celle. I LED sono opzionali, ma utili per la risoluzione dei problemi. Il LED 'sinistro' (giallo nelle mie schede) indica che il feedback HV è al di sotto del punto desiderato, mentre il LED destro (rosso nel mio progetto) indica che è finito. In pratica si ottiene un bell'effetto PWM in cui i LED si illuminano di intensità rispetto al carico di corrente. Se il LED rosso si spegne (fisso) indica che, nonostante il suo massimo sforzo, il PIC non riesce a mantenere la tensione di uscita al livello desiderato. In altre parole, il carico supera l'uscita massima dell'SMPS. NON DIMENTICARE I FILI DEL PONTICELLO MOSTRATI IN ROSSO! Partlist Part Value C1 1uF 250V C3 47uF 50V C4 47uF (50V) C5 0.1uF C6.1uf C7 4u7 (50V) C8 0.1uF C9 0.1uF C11 0.47uF/250V D1 600V 250ns IC2 TC4427a IC5 7805 Regolatore 5 volt IC7 Induttore PIC 12F (22R104C) LED1 LED2 Q1 IRF740 R1 120K R2 0,47K R3 1K Trimmer lineare R4 330 Ohm R5 100K R6 330 Ohm R7 10K SV1 Connettore a 3 pin X2 3 Terminale a vite

Passaggio 5: firmware

Firmware
Firmware

Il firmware è scritto in MikroBasic, il compilatore è gratuito per programmi fino a 2K (https://www.mikroe.com/). Se hai bisogno di un programmatore PIC, prendi in considerazione la mia scheda di programmazione JDM2 avanzata pubblicata anche su instructables (https://www.instructables.com/ex/i/6D80A0F6DA311028931A001143E7E506/?ALLSTEPS). Funzionamento di base: 1. Quando viene applicata l'alimentazione, il PIC si avvia. 2. PIC ritarda per 1 secondo per consentire alle tensioni di stabilizzarsi. 3. PIC legge il feedback della tensione di alimentazione e calcola il ciclo di lavoro ottimale e i valori del periodo. 4. PIC registra la lettura dell'ADC, il ciclo di lavoro e i valori del periodo nella EEPROM. Ciò consente di risolvere alcuni problemi e aiuta a diagnosticare guasti catastrofici. L'indirizzo EEPROM 0 è il puntatore di scrittura. Un registro di 4 byte viene salvato ogni volta che l'SMPS viene (ri)avviato. I primi 2 byte sono ADC alto/basso, il terzo byte è inferiore a 8 bit del valore del ciclo di lavoro, il quarto byte è il valore del periodo. Viene registrato un totale di 50 calibrazioni (200 byte) prima che il puntatore di scrittura si rotoli e ricominci all'indirizzo EEPROM 1. Il registro più recente si troverà al puntatore-4. Questi possono essere letti dal chip utilizzando un programmatore PIC. I 55 byte superiori sono lasciati liberi per futuri miglioramenti (vedi miglioramenti). 5. PIC entra in loop infinito - viene misurato il valore di feedback dell'alta tensione. Se è inferiore al valore desiderato i registri del duty cycle PWM vengono caricati con il valore calcolato - NOTA: i due bit inferiori sono importanti e devono essere caricati in CPP1CON 5:4, gli 8 bit superiori vanno in CRP1L. Se il feedback è superiore al valore desiderato, il PIC carica i registri del ciclo di lavoro con 0. Questo è un sistema di "salto di impulsi". Ho deciso di saltare gli impulsi per due motivi: 1) a frequenze così alte non c'è molta larghezza di lavoro con cui giocare (0-107 nel nostro esempio, molto meno a tensioni di alimentazione più elevate) e 2) è possibile la modulazione di frequenza, e offre molto più spazio per la regolazione (35-255 nel nostro esempio), ma SOLO IL DUTY È DOPPIO BUFFERATO NELL'HARDWARE. La modifica della frequenza mentre il PWM è in funzione può avere effetti "strani". Utilizzo del firmware: sono necessari diversi passaggi di calibrazione per utilizzare il firmware. Questi valori devono essere compilati nel firmware. Alcuni passaggi sono facoltativi, ma ti aiuteranno a ottenere il massimo dal tuo alimentatore. const v_ref as float=5.1 'float const supply_ratio as float=11.35 'float const osc_freq as float=8 'float const L_Ipeak as float=67 'float const fb_value as word=290 'word Questi valori si trovano nella parte superiore del codice del firmware. Trova i valori e imposta come segue. v_ref Questo è il riferimento di tensione dell'ADC. Ciò è necessario per determinare la tensione di alimentazione effettiva da includere nelle equazioni descritte nel passaggio1. Se il PIC è gestito da un regolatore 7805 5volt, possiamo aspettarci circa 5 volt. Utilizzando un multimetro misurare la tensione tra il pin di alimentazione del PIC (PIN1) e la massa al terminale a vite. Il mio valore esatto era di 5,1 volt. Inserisci questo valore qui. supply_ratio Il partitore di tensione di alimentazione è costituito da un resistore da 100K e 10K. In teoria la retroazione dovrebbe essere uguale alla tensione di alimentazione divisa per 11 (vedere la Tabella 5. Calcoli della rete di retroazione della tensione di alimentazione). In pratica, i resistori hanno varie tolleranze e non sono valori esatti. Per trovare l'esatto rapporto di retroazione: 1. Misurare la tensione di alimentazione tra i terminali a vite. 2. Misurare la tensione di retroazione tra il pin 7 del PIC e la massa sul terminale a vite. 3. Dividere Supply V per FB V per ottenere un rapporto esatto. È inoltre possibile utilizzare la "Tabella 6. Calibrazione del feedback della tensione di alimentazione". osc_freq Semplicemente la frequenza dell'oscillatore. Uso l'oscillatore interno 8Mhz 12F683, quindi inserisco un valore di 8. L_Ipeak Moltiplicare la bobina dell'induttore uH per gli amplificatori continui massimi per ottenere questo valore. Nell'esempio il 22r104C è una bobina da 100uH con una valutazione di 0,67 ampere continui. 100*.67=67. Moltiplicando il valore qui si elimina una variabile a virgola mobile a 32 bit e il calcolo che altrimenti dovrebbe essere eseguito sul PIC. Questo valore è calcolato nella "Tabella 1: Calcoli della bobina per l'alimentazione ad alta tensione". fb_value Questo è il valore intero effettivo che il PIC utilizzerà per determinare se l'uscita ad alta tensione è al di sopra o al di sotto del livello desiderato. Utilizzare la Tabella 3 per determinare il rapporto tra l'uscita HV e la tensione di retroazione quando il trimmer lineare è in posizione centrale. L'uso del valore centrale offre spazio di regolazione su entrambi i lati. Quindi, inserisci questo rapporto e il tuo esatto riferimento di tensione nella "Tabella 4. Valore impostato ADC feedback ad alta tensione" per determinare fb_value. Dopo aver trovato questi valori, inseriscili nel codice e compila. Masterizza l'HEX sul PIC e sei pronto per partire! RICORDA: EEPROM byte 0 è il puntatore di scrittura del log. Impostalo su 1 per iniziare la registrazione al byte 1 su una nuova immagine. A causa della calibrazione, il FET e l'induttore non dovrebbero mai riscaldarsi. Né dovresti sentire un suono squillante dalla bobina dell'induttore. Entrambe queste condizioni indicano un errore di calibrazione. Controllare il registro dati nella EEPROM per aiutare a determinare dove potrebbe essere il problema.

Passaggio 6: miglioramenti

Miglioramenti
Miglioramenti

Un paio di cose potrebbero essere migliorate:

1. Avvicinare il terminale a vite al FET per un migliore percorso di massa. 2. Ingrassare la traccia di alimentazione ai condensatori e all'induttore. 3. Aggiungere un riferimento di tensione stabile per migliorare il funzionamento da batterie e tensioni di alimentazione inferiori a 7 volt (dove l'uscita del 7805 scende al di sotto di 5 volt). 4. Utilizzare i 55 byte EEPROM superiori per registrare affascinanti bit di dati inutili: tempo di esecuzione totale, eventi di sovraccarico, carico min/max/medio. -ian istruttori-at-whereisian-dot-com

Consigliato: