Inhoudsopgave:

High Voltage Switch Mode Power Supply (SMPS)/Boost Converter voor Nixie Tubes - Ajarnpa
High Voltage Switch Mode Power Supply (SMPS)/Boost Converter voor Nixie Tubes - Ajarnpa

Video: High Voltage Switch Mode Power Supply (SMPS)/Boost Converter voor Nixie Tubes - Ajarnpa

Video: High Voltage Switch Mode Power Supply (SMPS)/Boost Converter voor Nixie Tubes - Ajarnpa
Video: Switched Mode Power Supplies (SMPS) - Buck and Boost Converter 2024, Juli-
Anonim
High Voltage Switch Mode Power Supply (SMPS)/Boost Converter voor Nixie Tubes
High Voltage Switch Mode Power Supply (SMPS)/Boost Converter voor Nixie Tubes

Deze SMPS verhoogt de laagspanning (5-20 volt) tot de hoge spanning die nodig is om nixiebuizen (170-200 volt) aan te drijven. Wees gewaarschuwd: hoewel dit kleine circuit kan werken op batterijen / laagspannings-wall-worts, is de output meer dan genoeg om je te doden!

Project omvat: Helper Spreadsheet EagleCAD CCT & PCB-bestanden MikroBasic Firmware Source

Stap 1: Hoe werkt het?

Hoe werkt het?
Hoe werkt het?

Dit ontwerp is gebaseerd op de Microchip Application Note TB053 met verschillende aanpassingen op basis van de ervaring van Neonixie-L-leden (https://groups.yahoo.com/group/NEONIXIE-L/). Download de app-notitie - het is maar een paar pagina's om te lezen: (https://ww1.microchip.com/downloads/en/AppNotes/91053b.pdf) De onderstaande illustratie is een uittreksel uit TB053. Het schetst het basisprincipe achter de SMPS. Een microcontroller aardt een FET (Q1), waardoor een lading kan worden ingebouwd in inductor L1. Wanneer de FET is uitgeschakeld, stroomt de lading door diode D1 naar condensator C1. Vvfb is een spanningsdelerfeedback waarmee de microcontroller de hoge spanning kan bewaken en de FET kan activeren als dat nodig is om de gewenste spanning te behouden.

Stap 2: Inductorkenmerken:

Inductorkenmerken
Inductorkenmerken

Hoewel erg leuk, lijkt de Microchip-app-notitie een beetje achterlijk voor mij. Het begint met het bepalen van het vereiste vermogen en kiest vervolgens een oplaadtijd van de inductor zonder zich zorgen te maken over beschikbare inductoren. Ik vond het handiger om een inductor te kiezen en de toepassing daaromheen te ontwerpen. De inductoren die ik gebruikte zijn "C&D Technologies Inductors RADIAL LEAD 100uH" (Mouser-onderdeel 580-18R104C, 1,2 amp, $ 1,40), (Mouser-onderdeel 580-22R104C, 0,67 versterker, $ 0,59). Ik heb voor deze inductoren gekozen omdat ze erg klein en erg goedkoop zijn, maar toch een behoorlijk vermogen hebben. We kennen al de maximale continue rating van onze spoel (0,67 ampère voor de 22R104C), maar we moeten weten hoe lang het duurt om op te laden (stijgtijd). In plaats van een vaste oplaadtijd te gebruiken (zie vergelijking 6 in TB053) om de vereiste spoelversterkers te bepalen, kunnen we vergelijking 6 opvragen en de stijgtijd oplossen: (opmerking: vergelijking 6 in TB053 is fout, het zou L moeten zijn, niet 2L) (Volts in/Inductor uH)*rise_time=Piekampère -wordt- (Inductor uH/Volts in) *Piekampère = stijgtijd.-gebruik van de 22R104C met een 5 volt voeding geeft het volgende-(100/5)*0.67= 13.5uSIt heeft 13.5 uS nodig om de spoel volledig op te laden bij 5 volt. Het is duidelijk dat deze waarde zal variëren met verschillende voedingsspanningen. Zoals opgemerkt in TB053: "De stroom in een inductor kan niet onmiddellijk veranderen. Wanneer Q1 wordt uitgeschakeld, blijft de stroom in L1 door D1 vloeien naar de opslagcondensator, C1 en de belasting, RL. Dus de stroom in de inductor neemt lineair af in de tijd vanaf de piekstroom. "We kunnen de hoeveelheid tijd bepalen die nodig is om de stroom uit de inductor te laten vloeien met behulp van TB05-vergelijking 7. In de praktijk is deze tijd erg kort. Deze vergelijking is geïmplementeerd in de bijgevoegde spreadsheet, maar wordt hier niet besproken. Hoeveel stroom kunnen we uit een inductor van 0,67 ampère halen? Het totale vermogen wordt bepaald door de volgende vergelijking (tb053 vergelijking 5): Vermogen=(((stijgtijd)*(Volt in)2)/(2*Inductor uH))-gebruikmakend van onze vorige waarden vinden we-1.68 Watt=(13.5uS*5volts2)/(2*100uH)-converteer watt naar mA-mA=((vermogen watt)/(uitgangsvolt))*1000-met een uitgangsspanning van 180 vinden we -9,31mA = (1,68Watt/180volt)*1000We kunnen maximaal 9,31 mA halen uit deze spoel met een 5 volt-voeding, waarbij alle inefficiënties en schakelverliezen worden genegeerd. Een groter uitgangsvermogen kan worden bereikt door de voedingsspanning te verhogen. Al deze berekeningen zijn geïmplementeerd in "Tabel 1: Coilberekeningen voor hoogspanningsvoeding" van de spreadsheet die bij deze instructable is gevoegd. Er worden verschillende voorbeeldspoelen ingevoerd.

Stap 3: De SMPS besturen met een microcontroller

De SMPS besturen met een microcontroller
De SMPS besturen met een microcontroller

Nu we de stijgtijd voor onze spoel hebben berekend, kunnen we een microcontroller programmeren om deze net lang genoeg op te laden om de nominale mA te bereiken. Een van de gemakkelijkste manieren om dit te doen, is door de hardware-pulsbreedtemodulator van een PIC te gebruiken. Pulsbreedtemodulatie (PWM) heeft twee variabelen die in de onderstaande afbeelding worden beschreven. Tijdens de duty cycle zet de PIC de FET aan, aardt deze en laat stroom toe in de inductorspoel (stijgtijd). Gedurende de rest van de periode staat de FET uit en vloeit er stroom uit de spoel door de diode naar de condensatoren en belasting (valtijd). De benodigde stijgtijd kennen we al uit onze vorige berekeningen: 13.5uS. TB053 suggereert dat de stijgtijd 75% van de periode is. Ik heb mijn menstruatiewaarde bepaald door de stijgtijd te vermenigvuldigen met 1,33: 17,9uS. Dit komt overeen met de suggestie in TB053 en zorgt ervoor dat de spoel in discontinue modus blijft - volledig ontladen na elke lading. Het is mogelijk om een exactere periode te berekenen door de berekende stijgtijd toe te voegen aan de berekende daaltijd, maar ik heb dit niet geprobeerd. Nu kunnen we de werkelijke werkcyclus en periodewaarden bepalen die in de microcontroller moeten worden ingevoerd om de gewenste tijdsintervallen te krijgen. In de Microchip PIC Mid-range handleiding vinden we de volgende vergelijkingen (https://ww1.microchip.com/downloads/en/DeviceDoc/33023a.pdf):PWM Duty Cycle uS =(10 bit Duty Cycle Value) * (1 / oscillatorfrequentie) * PrescalerAls we prescaler op 1 zetten en deze vergelijking verslaan met een algebrastick, krijgen we:10 bit Duty Cycle Value = PWM Duty Cycle uS * Oscillator Frequency Vervang de Duty Cycle uS voor berekende stijgtijd, en neem een 8 Mhz-oscillator frequentie:107 = 13.5uS * 8Mhz107 wordt ingevoerd in de PIC om een duty cycle van 13.5uS te krijgen. Vervolgens bepalen we de PWM-periodewaarde. Uit de handleiding voor het middenbereik halen we de volgende vergelijking: PWM-periode uS = ((PWM-periodewaarde) + 1) * 4 * (1/oscillatorfrequentie) * (prescale-waarde) Nogmaals, we stellen prescaler in op 1 en vallen de vergelijking lastig voor PWM-periodewaarde, wat ons geeft: PWM-periodewaarde = ((PWM Periode uS/(4/Oscillatorfrequentie))-1) Vervangende periode uS voor (1,33 * stijgtijd), en neem een 8 Mhz-oscillatorfrequentie aan: 35= ((17,9/(4/8))-1)35 wordt ingevoerd in de PIC om een periode van 17,9uS te krijgen. Maar wacht! Is de periode niet korter dan de duty cycle? Nee - PIC's hebben een 10-bit duty cycle register en een 8 bit period register. Er is meer resolutie voor de duty cycle-waarde, dus de waarde ervan zal soms groter zijn dan de periodewaarde - vooral bij hoge frequenties. Al deze berekeningen zijn geïmplementeerd in "Tabel 2. PWM-berekeningen" van de spreadsheet die bij deze instructable is geleverd. Er worden verschillende voorbeeldspoelen ingevoerd.

Stap 4: PCB-ontwerp

PCB-ontwerp
PCB-ontwerp
PCB-ontwerp
PCB-ontwerp

PCB & CCT zijn in EagleCad-formaat. Beide zijn opgenomen in het ZIP-archief.

Bij het maken van deze print heb ik verschillende bestaande ontwerpen bekeken. Hier zijn mijn opmerkingen over: belangrijke ontwerpkenmerken: 1. Ik volgde de Microchip APP-notitie en gebruikte een TC4427A om de FET aan te sturen. Deze A) beschermt de microcontroller tegen flyback-spanningen die van de FET komen, en B) kan de FET op hogere spanningen aansturen dan de PIC voor sneller/harder schakelen met een betere efficiëntie. 2. De afstand van de PWM van de PIC tot de FET wordt geminimaliseerd. 3. FET, spoel, condensatoren heel strak verpakt. 4. Vetaanvoerspoor. 5. Goede massa tussen FET en muur-wort verbindingspunt. Ik koos de PIC 12F683 microcontroller voor dit project. Dit is een 8-pins PIC met hardware PWM, 4 analoog naar digitaal converters, 8Mhz interne oscillator en 256 byte EEPROM. Het belangrijkste was dat ik er een had van een vorig project. Ik heb de IRF740 FET gebruikt vanwege zijn hoge waardering op de Neonixie-L-lijst. Er zijn 2 condensatoren om de HV-voeding af te vlakken. De ene is een elektrolytische (hoge temperatuur, 250 volt, 1uF), de andere is een metaalfilm (250 volt, 0,47uf). De laatste is veel groter en duurder ($ 0,50 versus $ 0,05), maar noodzakelijk om een schone uitvoer te krijgen. Er zijn twee spanningsterugkoppelingscircuits in dit ontwerp. Met de eerste kan de PIC de uitgangsspanning detecteren en pulsen toepassen op de FET als dat nodig is om het gewenste niveau te behouden. "Tabel 3. Berekeningen van hoogspanningsfeedbacknetwerk" kan worden gebruikt om de juiste feedbackwaarde te bepalen, gegeven de spanningsdeler met 3 weerstanden en de gewenste uitgangsspanning. Fijnafstemming gebeurt met de 1k trimmerweerstand. De tweede feedback meet de voedingsspanning zodat de PIC de optimale stijgtijd (en periode/duty cycle-waarden) kan bepalen. Uit de vergelijkingen in stap 1 hebben we gevonden dat de stijgtijd van de inductor afhankelijk is van de voedingsspanning. Het is mogelijk om exacte waarden uit de spreadsheet in uw PIC in te voeren, maar als de voeding wordt gewijzigd, zijn de waarden niet meer optimaal. Als u op batterijen werkt, neemt de spanning af naarmate de batterijen ontladen, waardoor een langere stijgtijd nodig is. Mijn oplossing was om de PIC dit allemaal te laten berekenen en zijn eigen waarden in te stellen (zie firmware). De driepolige jumper selecteert de voedingsbron voor de TC4427A en de spoel. Het is mogelijk om beide te gebruiken vanaf de 7805 5 volt regelaar, maar een beter rendement en een hogere output wordt bereikt met een grotere voedingsspanning. Zowel de TC4427a als de IRF740 FET zijn bestand tegen ~20 volt. Aangezien de PIC voor elke gegeven voedingsspanning zal kalibreren, is het logisch om deze rechtstreeks vanuit de voeding te voeden. Dit is vooral belangrijk bij gebruik op batterijen - u hoeft geen stroom te verspillen in de 7805, voed de inductor gewoon rechtstreeks vanuit de cellen. De LED's zijn optioneel, maar handig voor het oplossen van problemen. De 'linkse' LED (geel in mijn borden) geeft aan dat HV-feedback zich onder het gewenste punt bevindt, terwijl de rechter LED (rood in mijn ontwerp) aangeeft dat het voorbij is. In de praktijk krijg je een mooi PWM-effect waarbij de LEDS in intensiteit oplichten ten opzichte van de huidige belasting. Als de rode LED uitgaat (vast) geeft dit aan dat, ondanks alle inspanningen, de PIC de uitgangsspanning niet op het gewenste niveau kan houden. Met andere woorden, de belasting overschrijdt de maximale output van de SMPS. VERGEET DE ROODJES VAN DE JUMPERDRADEN NIET! Deellijst Onderdeel Waarde 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 5volt regelaar IC7 L P1 (22R104C) LED1 LED2 Q1 IRF740 R1 120K R2 0.47K R3 1K Lineaire trimmer R4 330 Ohm R5 100K R6 330 Ohm R7 10K SV1 3-pins header X2 3 schroefaansluiting

Stap 5: Firmware

Firmware
Firmware

De firmware is geschreven in MikroBasic, de compiler is gratis voor programma's tot 2K (https://www.mikroe.com/). Als je een PIC-programmeur nodig hebt, overweeg dan mijn verbeterde JDM2-programmeerbord dat ook is gepost op instructables (https://www.instructables.com/ex/i/6D80A0F6DA311028931A001143E7E506/?ALLSTEPS). Basisbediening: 1. Wanneer de stroom wordt ingeschakeld, start de PIC. 2. PIC-vertragingen gedurende 1 seconde om de spanningen te stabiliseren. 3. PIC leest de terugkoppeling van de voedingsspanning en berekent de optimale werkcyclus- en periodewaarden. 4. PIC logt de ADC-waarde, duty cycle en periodewaarden in de EEPROM. Dit maakt het oplossen van problemen mogelijk en helpt bij het diagnosticeren van catastrofale storingen. EEPROM-adres 0 is de schrijfwijzer. Elke keer dat de SMPS wordt (opnieuw) gestart, wordt één log van 4 bytes opgeslagen. De eerste 2 bytes zijn ADC hoog/laag, de derde byte is de lagere 8 bits duty cycle waarde, de vierde byte is de periodewaarde. Er worden in totaal 50 kalibraties (200 bytes) gelogd voordat de schrijfwijzer omrolt en opnieuw begint op EEPROM-adres 1. Het meest recente logbestand bevindt zich op pointer-4. Deze kunnen met een PIC programmer uit de chip worden uitgelezen. De bovenste 55 bytes blijven vrij voor toekomstige verbeteringen (zie verbeteringen). 5. PIC komt in een eindeloze lus - de hoogspanningsfeedbackwaarde wordt gemeten. Als het onder de gewenste waarde is, worden de PWM-duty cycle-registers geladen met de berekende waarde - OPMERKING: de onderste twee bits zijn belangrijk en moeten in CPP1CON 5:4 worden geladen, de bovenste 8 bits gaan in CRP1L. Als de terugkoppeling boven de gewenste waarde is, laadt de PIC de duty cycle registers met 0. Dit is een 'pulse skip' systeem. Ik heb gekozen voor pulse skip om twee redenen: 1) bij zulke hoge frequenties is er niet veel werkbreedte om mee te spelen (0-107 in ons voorbeeld, veel minder bij hogere voedingsspanningen), en 2) frequentiemodulatie is mogelijk, en geeft veel meer ruimte voor aanpassing (35-255 in ons voorbeeld), maar ALLEEN PLICHT IS DUBBEL GEBUFFERD IN HARDWARE. Het veranderen van de frequentie terwijl de PWM in bedrijf is, kan 'vreemde' effecten hebben. De firmware gebruiken: Er zijn verschillende kalibratiestappen nodig om de firmware te gebruiken. Deze waarden moeten in de firmware worden gecompileerd. Sommige stappen zijn optioneel, maar helpen u om het meeste uit uw voeding te halen. 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 Deze waarden vindt u bovenaan het firmwarecode. Zoek de waarden en stel als volgt in. v_ref Dit is de spanningsreferentie van de ADC. Dit is nodig om de werkelijke voedingsspanning te bepalen die moet worden opgenomen in de vergelijkingen die in stap 1 zijn beschreven. Als de PIC wordt aangestuurd door een 7805 5volt-regelaar, kunnen we ongeveer 5 volt verwachten. Meet met behulp van een multimeter de spanning tussen de PIC-voedingspen (PIN1) en aarde op de schroefklem. Mijn exacte waarde was 5,1 volt. Vul deze waarde hier in. supply_ratio De voedingsspanningsdeler bestaat uit een weerstand van 100K en 10K. Theoretisch moet de terugkoppeling gelijk zijn aan de voedingsspanning gedeeld door 11 (zie Tabel 5. Berekeningen van het voedingsspanningsfeedbacknetwerk). In de praktijk hebben weerstanden verschillende toleranties en zijn het geen exacte waarden. Om de exacte terugkoppelingsverhouding te vinden: 1. Meet de voedingsspanning tussen de schroefklemmen. 2. Meet de feedbackspanning tussen PIC pin 7 en aarde op de schroefklem. 3. Verdeel Supply V door FB V om een exacte verhouding te krijgen. U kunt ook "Tabel 6. Kalibratie voedingsspanningsfeedback" gebruiken. osc_freq Gewoon de oscillatorfrequentie. Ik gebruik de 12F683 interne 8Mhz-oscillator, dus ik voer een waarde van 8 in. L_Ipeak Vermenigvuldig de inductorspoel uH met de maximale continue versterkers om deze waarde te krijgen. In het voorbeeld is de 22r104C een spoel van 100uH met een vermogen van 0,67 ampère continu. 100*.67=67. Door de waarde hier te vermenigvuldigen, elimineert u één 32-bits drijvende-kommavariabele en berekening die anders op de PIC zou moeten worden uitgevoerd. Deze waarde wordt berekend in "Tabel 1: Spoelberekeningen voor hoogspanningsvoeding". fb_value Dit is de werkelijke gehele waarde die de PIC zal gebruiken om te bepalen of de hoogspanningsuitgang boven of onder het gewenste niveau is. Gebruik tabel 3 om de verhouding tussen de HV-uitgang en de feedbackspanning te bepalen wanneer de lineaire trimmer in de middenpositie staat. Het gebruik van de middenwaarde geeft aan beide zijden instelruimte. Voer vervolgens deze verhouding en uw exacte spanningsreferentie in "Tabel 4. Hoogspanningsterugkoppeling ADC-instelwaarde" in om de fb_value te bepalen. Nadat u deze waarden hebt gevonden, voert u ze in de code in en compileert u. Brand de HEX naar de PIC en je bent klaar om te gaan! ONTHOUD: EEPROM byte 0 is de log-schrijfwijzer. Stel het in op 1 om te beginnen met loggen naar byte 1 op een nieuwe foto. Vanwege de kalibratie mogen de FET en inductor nooit warm worden. U mag ook geen rinkelend geluid uit de spoel horen. Beide omstandigheden duiden op een kalibratiefout. Controleer het gegevenslogboek in de EEPROM om te helpen bepalen waar uw probleem zou kunnen zijn.

Stap 6: Verbeteringen

Verbeteringen
Verbeteringen

Een paar dingen kunnen worden verbeterd:

1. Plaats de schroefklem dichter bij de FET voor een beter grondpad. 2. Maak het voedingsspoor naar de condensatoren en de spoel vet. 3. Voeg een stabiele spanningsreferentie toe om de werking van batterijen en voedingsspanningen van minder dan 7 volt te verbeteren (waarbij de output van de 7805 onder de 5 volt daalt). 4. Gebruik de bovenste 55 EEPROM-bytes om fascinerende nutteloze gegevens te loggen - totale looptijd, overbelastingsgebeurtenissen, min/max/gemiddelde belasting. -ian instructables-at-whereisian-dot-com

Aanbevolen: