Hög spänning Switch Mode Power Supply (SMPS) / Boost omvandlare för Nixie rör (5 / 6 steg)
Steg 5: Firmware
Om du behöver en PIC programmerare, du min förbättrade JDM2 programmerare ombord också postat på instructables (
Grundläggande drift:
1. När driva, appliceras startar PIC.
2. PIC förseningar i 1 sekund att tillåta spänning för att stabilisera.
3. PIC läser leverans spänning feedback och beräknar optimal månadskapaciteten och tidstypiska värden.
4. PIC loggar ADC läsning, månadskapaciteten och tidstypiska värden till EEPROM. Detta gör att vissa felsökning och hjälper diagnostisera katastrofala misslyckanden. EEPROM adress 0 är skriva pekaren. En 4 byte loggen sparas varje gång SMPS är (åter-) började. Första 2 byte är ADC hög/låg, tredje byte är lägre 8 bitar av duty cycle värde, fjärde byte är perioden värdet. Totalt 50 kalibreringar (200 byte) loggas innan skriva pekaren rullar över och startar igen på EEPROM adress 1. Den senaste loggen kommer att placeras vid pekaren-4. Dessa kan läsas av chip med en PIC programmerare. De övre 55 byte lämnas fri för framtida förbättringar (se förbättringar).
5. PIC träder ändlös ögla - högspänning feedback värde mäts. Om det är lägre än önskat värde PWM duty cycle registren är laddade med det beräknade värdet - Obs: de nedre två bitarna är viktiga och måste laddas in i CPP1CON 5:4, övre 8 bitar går in i CRP1L. Om feedback är över önskat värde, laddar PIC duty cycle registren med 0. Detta är en 'puls skip' system. Jag bestämde mig på puls hoppa av två skäl: 1) vid sådana höga frekvenser finns det inte en massa tull bredd att spela med (0-107 i vårt exempel, mycket mindre på högre matningsspänningar), och 2) frekvensmodulering är möjligt, och ger mycket mer utrymme för justering (35-255 i vårt exempel), men endast plikt är dubbel BUFFRAS i hårdvara. Ändra frekvensen när PWM är i drift kan få "konstiga" effekter.
Med firmware:
Flera kalibrering steg krävs för att använda firmware. Dessa värden måste sammanställas i firmware. Vissa åtgärder är valfria, men hjälper dig att få ut mesta möjliga av din strömförsörjning.
CONST v_ref som float = 5.1 "float
CONST supply_ratio som float = 11,35 ' flyta
CONST osc_freq som float = 8 "float
CONST L_Ipeak som float = 67 ' flyta
CONST fb_value som word = 290 ' word
Dessa värden finns på toppen av firmware koden. Hitta värden och ange följande.
v_ref
Det här är instruktionen spänning för att ADC. Detta är nödvändigt att fastställa den faktiska spänningen i de ekvationer som beskrivs i steg 1. Om PIC körs från en 7805 5 volt regulator kan vi förvänta oss ca 5 volt. Med hjälp av en multimetern mäter spänningen mellan PIC power pin (PIN1) och marken på skruven terminal. Min exakta värdet var 5,1 volt. Ange det här värdet här.
supply_ratio
Leverans spänningsavdelare består av en 100K och 10K motstånd. Teoretiskt feedback ska vara lika matningsspänningen dividerat med 11 (se tabell 5. Leverans spänning Feedback nätverk beräkningar). I praktiken motstånd har olika toleranser och inte exakta värden. Att hitta exakta feedback förhållandet:
1. Mät matningsspänningen mellan skruvplintar.
2. mäta feedback spänningen mellan PIC stift 7 och marken på skruv terminal.
3. dela leverans V av FB V för att få en exakt ratio.
Du kan också använda "tabell 6. Leverera spänning Feedback kalibrering".
osc_freq
Helt enkelt oscillator frekvensen. Jag använder 12F683 interna 8Mhz oscillator, så jag anger du värdet 8.
L_Ipeak
Multiplicera induktor spolen uH med maximal kontinuerlig ampere att få detta värde. I exemplet är 22r104C en 100uH spole med en rating på .67amps fortlöpande. 100 *. 67 = 67. Att multiplicera värdet här eliminerar en 32-bitars flytande punkt variabel och beräkning som annars måste göras på bild. Detta värde beräknas i "Tabell 1: spole beräkningar för hög spänning nätaggregat".
fb_value
Detta är den faktiska heltalsvärde PIC använder för att bestämma om högspänning produktionen är över eller under önskad nivå. Använd tabell 3 för att fastställa förhållandet mellan HV utdata och feedback spänningen när den linjära trimmern är i mittläget. Med hjälp av center-värdet ger justering rum på vardera sidan. Nästa, ange detta förhållande och din exakta spänning referens i "tabell 4. Hög spänning Feedback ADC uppsättning värde"att bestämma fb_value.
När du har hittat dessa värden anger du dem in i koden och kompilera. Bränna HEX till PIC och du är redo att gå! Kom ihåg: EEPROM byte 0 är loggen skriver pekaren. Ange det till 1 börja logga till byte 1 på en färsk bild.
På grund av kalibrering, bör FET och induktor aldrig bli varma. Inte heller bör du hör ett ringande ljud från induktor spolen. Båda dessa villkor anger en kalibrering fel. Kolla data loggen i EEPROM för att avgöra var problemet kan vara.