Stap 5: Firmware
U moet een PIC programmer, overweeg mijn verbeterde JDM2 programmeur boord ook gepost op instructables (
Basisgebruik:
1. Wanneer de macht wordt toegepast begint de PIC.
2. PIC vertragingen gedurende 1 seconde om spanningen te stabiliseren.
3. PIC leest de levering spanning feedback en optimale taakcyclus en periode waarden berekend.
4. PIC aanmeldt de ADC lezing, taakcyclus en periode waarden de EEPROM. Dit maakt het oplossen van bepaalde problemen en helpt diagnosticeren van kritieke fouten optreden. EEPROM adres 0 is de aanwijzer schrijven. Één 4 byte logboek wordt opgeslagen telkens wanneer de SMPS is (her-) begonnen. De eerste 2 bytes zijn ADC hoog/laag, derde byte is lagere 8 bits van plicht cyclus waarde, vierde byte is de historische waarde. Een totaal van 50 kalibraties (200 bytes) worden vastgelegd voordat de aanwijzer schrijven rolt over en begint opnieuw op EEPROM adres 1. De meest recente log zal worden gevestigd op aanwijzer-4. Dit kunnen worden gelezen uit de chip met behulp van een PIC programmer. De bovenste 55 bytes zitten gratis voor toekomstige verbeteringen (Zie verbeteringen).
5. PIC invoert eindeloze lus - hoogspanning feedback waarde wordt gemeten. Als het lager dan de gewenste waarde is de PWM plicht cyclus registers worden geladen met de berekende waarde - Opmerking: de onderste twee bits zijn belangrijk en moet worden geladen in CPP1CON 5:4, hogere 8 bits gaan CRP1L. Als de feedback die hoger dan de gewenste waarde is, laadt de PIC de plicht cyclus registers met 0. Dit is een systeem van 'pulse overslaan'. Ik besloot op puls overslaan om twee redenen: 1) bij dergelijke hoge frequenties er niet veel met de breedte van de plicht om te spelen met (0-107 in ons voorbeeld, veel minder op de hogere voedingsspanningen), en 2) frequentie modulatie is mogelijk, en geeft veel meer ruimte voor aanpassing (35-255 in ons voorbeeld), maar alleen plicht IS dubbele GEBUFFERD IN HARDWARE. De frequentie wijzigen terwijl de PWM actief kan 'vreemd' gevolgen hebben.
Met behulp van de firmware:
Verschillende kalibratie stappen zijn vereist om het gebruik van de firmware. Deze waarden moeten worden gecompileerd in de firmware. Sommige stappen zijn optioneel, maar zal u helpen om het meeste uit uw voeding.
Const v_ref als float = 5.1 ' float
Const supply_ratio als float = 11,35 ' float
Const osc_freq als float = 8 ' float
Const L_Ipeak als float = 67 ' float
Const fb_value als woord = 290 ' woord
Deze waarden kunnen worden gevonden bij de bovenkant van de code van de firmware. Vinden de waarden en als volgt instellen.
v_ref
Dit is de referentiespanning van de ADC. Dit is nodig om te bepalen van de werkelijke voedingsspanning op te nemen in de vergelijkingen beschreven in stap 1. Als de foto wordt uitgevoerd vanuit een 7805 5 volt regulator kunnen we verwachten rond 5 volt. Met behulp van een multimeter maatregel de spanning tussen de PIC macht pin (PIN1) en de grond op de schroef terminal. Mijn exacte waarde was 5.1 volt. Voer deze waarde hier.
supply_ratio
De voorziening voltage scheidingslijn bestaat uit een 100K en 10K Ohm weerstand. Theoretisch moet de feedback gelijk zijn aan de voedingsspanning gedeeld door 11 (zie tabel 5. Voorziening Voltage Feedback netberekeningen). In de praktijk, weerstanden hebben diverse toleranties en zijn geen exacte waarden. Zoekt u de exacte feedback-verhouding:
1. meten de voedingsspanning tussen de schroefaansluiting.
2. meet de spanning van de feedback tussen PIC pin 7 en grond bij de terminal van de schroef.
3. verdelen levering V door FB V om een exacte verhouding.
U kunt ook "tabel 6. Leveren van spanning Feedback kalibratie".
osc_freq
Gewoon de oscillator frequentie. Ik gebruik de 12F683 interne 8Mhz oscillator, zodat ik een waarde tussen 8 invoert.
L_Ipeak
Vermenigvuldigt de spoel spoel Brugmann met de maximale continue versterkers om deze waarde te krijgen. In het voorbeeld is de 22r104C een 100uH spoel met een rating van .67amps continu. 100 *. 67 = 67. Te vermenigvuldigen met de waarde hier elimineert een 32-bits zwevende punt variabele en berekening die anders zou moeten worden gedaan op de PIC. Deze waarde wordt berekend in "Tabel 1: spoel berekeningen voor hoge Voltage Power Supply".
fb_value
Dit is de werkelijke integer-waarde die de PIC gebruiken zal om te bepalen of de uitvoer van de hoogspanning boven of onder het gewenste niveau. Tabel 3 gebruiken om te bepalen van de verhouding tussen de HV uitvoer en feedback spanning wanneer de lineaire trimmer in de middenpositie is. Met behulp van de centrum-waarde geeft aanpassing ruimte aan weerszijden. Vervolgens voert u deze ratio en uw exacte referentiespanning in "tabel 4. High Voltage Feedback ADC Set Value"om te bepalen van de fb_value.
Nadat u deze waarden invoeren in de code en het compileren. Branden van de Hexuitdraai aan de PIC en je bent klaar om te gaan! Opmerking: EEPROM byte 0 is de aanwijzer van het logboek schrijven. Stel deze in op 1 om te beginnen van de registratie van gegevens moet 1 byte op een verse pic.
Vanwege de kalibratie, moeten de FET en de spoel nooit warm worden. Ook hoort u een beltoon geluid uit de spoel spoel. Aan beide voorwaarden geven een kalibratie-fout. Controleer het logboek van de gegevens in de EEPROM te helpen bepalen waar uw probleem zou kunnen zijn.