Krug pretvarača DC napona. Snažan DC-DC pretvarač

Na tranzistorima VT1 i VT2 (KT837K) montiran je push-pull generator impulsa, u kojem se, zbog proporcionalne strujne kontrole tranzistora, gubici pri prebacivanju značajno smanjuju i povećava efikasnost pretvarača. Struja pozitivne povratne sprege teče kroz namotaje III i IV transformatora T1 i opterećenje priključeno na kondenzator C2. Ulogu dioda koje ispravljaju izlazni napon obavljaju emiterski spojevi tranzistora.

Posebnost generatora je prekid oscilacija kada nema opterećenja, čime se automatski rješava problem upravljanja napajanjem. Jednostavno rečeno, takav pretvarač će se sam uključiti kada trebate nešto napajati iz njega i isključiti se kada se opterećenje isključi. Odnosno, baterija za napajanje može biti stalno povezana na strujni krug i praktički se ne troši kada je opterećenje isključeno!

Za dati ulaz UVx. i izlaz Ubix. naponi i broj zavoja namotaja I i II (w1), potreban broj zavoja namotaja III i IV (w2) može se izračunati sa dovoljnom preciznošću pomoću formule: w2=w1 (UOut. - UBx. + 0,9) /(UBx - 0,5 ). Kondenzatori imaju sljedeće ocjene. C1: 10-100 µF, 6,3 V. C2: 10-100 µF, 16 V.

Tranzistore treba birati na osnovu prihvatljivih vrijednosti bazna struja (ne bi trebao biti manji od struje opterećenja!!!) I emiter obrnutog napona - baza (mora biti veća od dvostruke razlike između ulaznog i izlaznog napona!!!) .

Sastavio sam Chaplygin modul kako bih napravio uređaj za punjenje svog pametnog telefona dok putujem, kada se smartfon ne može puniti iz utičnice od 220 V, ali avaj... Maksimum koji sam uspio da iscijedim koristeći 8 paralelno povezanih baterija je oko 350-375 mA struja punjenja pri 4,75 V. izlazni napon! Iako se Nokia telefon moje žene može puniti ovim uređajem. Bez opterećenja, moj Chaplygin modul proizvodi 7 V sa ulaznim naponom od 1,5 V. Sastavljen je pomoću KT837K tranzistora.

Gornja fotografija prikazuje pseudo-Kronu koju koristim za napajanje nekih svojih uređaja koji zahtijevaju 9 V. Unutar kućišta od Krona baterije nalazi se AAA baterija, stereo konektor preko kojeg se puni, te Chaplygin konvertor. Sastavljen je pomoću tranzistora KT209.

Transformator T1 je namotan na prsten od 2000NM dimenzija K7x4x2, oba namotaja su namotana istovremeno u dvije žice. Kako biste izbjegli oštećenje izolacije na oštrim vanjskim i unutrašnjim rubovima prstena, zabušite ih tako što ćete oštre rubove zaokružiti brusnim papirom. Prvo se namotaju namotaji III i IV (vidi dijagram) koji sadrže 28 zavoja žice prečnika 0,16 mm, zatim, takođe u dve žice, namotaji I i II koji sadrže 4 zavoja žice prečnika 0,25 mm .

Sretno i uspjeh svima koji odluče replicirati konverter! :)


Impulsni DC-DC pretvarači su dizajnirani kako za povećanje tako i za smanjenje napona. Uz njihovu pomoć, možete pretvoriti 5 volti, na primjer, u 12, ili 24, ili obrnuto, uz minimalne gubitke. Postoje i visokonaponski DC-DC pretvarači oni su u stanju da dobiju veoma značajnu razliku potencijala od nekoliko stotina volti iz relativno niskog napona (5-12 volti). U ovom članku ćemo razmotriti montažu upravo takvog pretvarača, čiji se izlazni napon može podesiti unutar 60-250 volti.


Zasnovan je na uobičajenom NE555 integriranom tajmeru. Q1 na dijagramu je tranzistor sa efektom polja, možete koristiti IRF630, IRF730, IRF740 ili bilo koji drugi dizajniran za rad sa naponima iznad 300 volti. Q2 je bipolarni tranzistor male snage, možete sigurno instalirati BC547, BC337, KT315, 2SC828. Prigušnica L1 bi trebala imati induktivnost od 100 μH, međutim, ako to nije pri ruci, možete ugraditi prigušnice u rasponu od 50-150 μH, to neće utjecati na rad kruga. Lako je sami napraviti prigušnicu - namotajte 50-100 zavoja bakrene žice na feritni prsten. Umjesto toga, dioda D1 prema krugu FR105, možete instalirati UF4007 ili bilo koju drugu brzu diodu s naponom od najmanje 300 volti. Kondenzator C4 mora biti visokog napona, najmanje 250 volti, moguće više. Što je veći njegov kapacitet, to bolje. Također je preporučljivo paralelno s njim ugraditi filmski kondenzator malog kapaciteta za kvalitetno filtriranje visokofrekventnih smetnji na izlazu pretvarača. VR1 je trim-otpornik kojim se regulira izlazni napon. Minimalni napon napajanja za krug je 5 volti, najoptimalniji je 9-12 volti.

Proizvodnja pretvarača

Kolo je sastavljeno na štampanoj ploči dimenzija 65x25 mm uz artikal je priložen fajl sa crtežom ploče. Možete uzeti tekstolit veći od samog crteža, tako da na rubovima ima mjesta za pričvršćivanje ploče na kućište. Nekoliko fotografija procesa proizvodnje:




Nakon jetkanja, ploča se mora kalajisati i provjeriti na kratke spojeve. Jer Na ploči je visok napon, između staza ne bi trebalo biti metalnih neravnina, inače je moguć kvar. Prije svega, mali dijelovi su zalemljeni na ploču - otpornici, dioda, kondenzatori. Zatim mikrokrug (bolje ga je ugraditi u utičnicu), tranzistori, rezni otpornik, induktor. Da biste olakšali spajanje žica na ploču, preporučujem ugradnju vijčanih terminala na ploči;



Preuzmite ploču:

(preuzimanja: 260)

Prvo pokretanje i postavljanje

Prije početka, obavezno provjerite ispravnu instalaciju i zvonite gusjenice. Podesite rezni otpornik na minimalni položaj (klizač bi trebao biti na strani otpornika R4). Nakon toga, možete primijeniti napon na ploču tako što ćete s njom serijski spojiti ampermetar. U praznom hodu, potrošnja struje kruga ne bi trebala prelaziti 50 mA. Ako se uklapa u normu, možete pažljivo okrenuti otpornik za podrezivanje, kontrolirajući izlazni napon. Ako je sve u redu, spojite opterećenje, na primjer, otpornik od 10-20 kOhm na visokonaponski izlaz i ponovno testirajte rad kruga, ovaj put pod opterećenjem.
Maksimalna struja koju takav pretvarač može proizvesti je otprilike 10-15 mA. Može se koristiti, na primjer, kao dio tehnologije lampe za napajanje anoda lampe, ili za osvjetljavanje gasnih ili luminiscentnih indikatora. Glavna primjena je minijaturni pištolj za omamljivanje, jer je izlazni napon od 250 volti vidljiv za osobu. Srećna gradnja!

Impulsni pretvarači i energetska elektronika općenito uvijek su ostali nešto sveto za većinu amatera i profesionalaca u oblasti razvoja elektronike. Članak pokriva možda najzanimljiviju temu među DIYers i ljubiteljima alternativne energije - formiranje sinusoidnog napona/struje iz konstantnog.

Mislim da su mnogi od vas vjerovatno vidjeli reklame ili pročitali članke koji sadrže frazu “čisti sinus”. Upravo o tome ćemo govoriti, ali ne o marketinškoj komponenti, već o isključivo tehničkoj implementaciji. Pokušat ću što jasnije objasniti same principe rada, standardna (i ne tako standardna) rješenja kola, a što je najvažnije, napisat ćemo i analizirati softver za STM32 mikrokontroler, koji će nam generirati potrebne signale.

Zašto STM32? Da, jer je sada ovo najpopularniji MK u ZND: o njima ima puno obrazovnih informacija na ruskom, ima puno primjera, i što je najvažnije, ovi MK-ovi i alati za otklanjanje grešaka za njih su vrlo jeftini. Reći ću vam direktno - u komercijalnom projektu instalirao bih samo TMS320F28035 ili sličan DSP iz Piccolo serije iz TI, ali to je sasvim druga priča.

Jedna stvar je važna - STM32 vam omogućava stabilnu kontrolu jednostavnih "kućnih" energetskih pretvarača o kojima sudbina svijeta ne ovisi o radu bilo koje nuklearne elektrane ili podatkovnog centra.

Ovo je slika kontrolnih signala koje je potrebno dobiti da bi se jednosmjerna struja pretvorila u naizmjeničnu. I da - ovo je upravo sinus! Kao u onom filmu: „Vidiš li gophera? - Ne. - A on je...”

Zanima vas kako nastaje sinus? Želite li znati kako se kilovati energije pumpaju u naftu? Onda dobrodošli u rez!

1. Topologije za generiranje sinusoidnog signala

Ako pitate gomilu inženjera elektronike: "Kako možete generirati sinusoidni signal?", onda će se pojaviti prijedlozi s desetak različitih metoda, ali koja nam je potrebna? Počnimo od prvobitnog zadatka - trebamo pretvoriti, na primjer, 380V 10A u naizmjenični napon od 230V. Općenito, ovo je “klasično” kućište, možemo ga vidjeti u svakom dobrom on-line UPS-u ili inverteru. Ispostavilo se da trebamo pretvoriti oko 4 kW snage, i to uz dobru efikasnost, nije loše, zar ne? Mislim da će takav uvjet smanjiti broj opcija za "crtanje" sinusa. Pa šta nam preostaje?

U energetskim pretvaračima do 6-10 kW koriste se dvije glavne topologije: puni most i "polomost" sa prolaznom neutralnom. Oni izgledaju na sledeći način:

1) Topologija sa kroz neutralno

Ova topologija se najčešće nalazi u budžetskim UPS-ovima sa sinusnim izlazom, iako se autoriteti kao što su APC i GE ne ustručavaju koristiti je čak i pri prilično velikim snagama. Šta ih motiviše da to učine? Pogledajmo prednosti i nedostatke ove topologije.

Pros:

  • Minimalni mogući broj tranzistora snage, što znači da su gubici 2 puta manji, a cijena uređaja je također niža
  • Kroz nulu. Ovo pojednostavljuje proces sertifikacije, posebno CE i ATEX. To je zbog činjenice da kroz nulu dopušta da sistemi zaštite ulaza (na primjer, RCD-ovi) također rade ako dođe do nezgode u izlaznim krugovima nakon pretvarača
  • Jednostavna topologija, koja nam omogućava da minimiziramo cijenu proizvoda s malim
    i proizvodnja srednjeg obima

minusi:

  • Potreba za bipolarnim napajanjem. Kao što vidite, ±380V i još jedna nula moraju biti dovedeni u krug pretvarača
  • Udvostručite broj visokonaponskih kondenzatora. Visokonaponski kondenzatori velikog kapaciteta i sa niskim ESR-om pri snagama od 3-4 kW počinju se kretati od 20 do 40%
    troškovi komponenti
  • Upotreba elektrolitskih kondenzatora u "razdjelniku". Isušuju se, gotovo je nemoguće odabrati kondenzatore s istim parametrima, a ako uzmete u obzir da se parametri elektrolita mijenjaju tokom rada, onda je to besmisleno. Možete ga zamijeniti filmom, ali je skupo
Identificirani su glavni prednosti i nedostaci, pa kada je ova topologija potrebna? Moje subjektivno mišljenje: pri snagama do 500-1000 W, kada je osnovni zahtjev cijena, a ne pouzdanost. Očigledni predstavnik takve robe široke potrošnje su stabilizatori iz A-Electronics: jeftini su, rade nekako, i to je u redu. Za 60% potrošača u našoj zemlji to je dovoljno i pristupačno. Hajde da izvučemo zaključke.

2) Topologija mosta

Topologija mosta... vjerovatno najrazumljivija i najčešća topologija u energetskim pretvaračima, i što je najvažnije, dostupna programerima čak i sa malo iskustva. Nakon 10 kW nećete naći ništa drugo osim jednofaznog ili trofaznog mosta. Zašto je tako voljen?

Pros:

  • Vrlo visoka pouzdanost. To je uglavnom zbog kvaliteta sistema upravljanja tranzistorom snage i ne zavisi od degradacije komponente
  • Potrebni ulazni kapacitet je nekoliko puta, ili čak red veličine manji. Potrebno je samo navesti izračunatu ESR vrijednost. Ovo omogućava upotrebu filmskih kondenzatora uz zadržavanje troškova. Filmski kondenzatori - ne isušuju se, bolje rade na oštrim temperaturama, radni vijek je za red veličine veći nego kod elektrolita
  • Minimalno talasanje napona na tranzistorima, što znači da možete koristiti tranzistori sa nižim naponima
  • Jednostavnost i jasnoća algoritama rada. To dovodi do značajnog smanjenja vremena za razvoj proizvoda, kao i za njegovo puštanje u rad.

minusi:

  • Povećani broj energetskih tranzistora znači da je potrebno ozbiljnije hlađenje. Povećanje cijene tranzistora, ali zbog manjeg broja kondenzatora to je prilično plus
  • Povećana složenost drajvera, posebno sa zahtjevima za galvansku izolaciju
Kao što možete vidjeti iz stvarnih nedostataka topologije mosta, postoji samo povećan zahtjev za hlađenjem tranzistora. Mnogi će pomisliti: „Proizvodi se više toplote, što znači da je efikasnost niža!“ Nije baš tako... Zbog smanjene emisije EMF-a i „tvrđeg“ sistema upravljanja, efikasnost dvije topologije je približno jednaka.

U 70% slučajeva moram koristiti premosni krug ne samo u DC/AC invertorima, već iu drugim pretvaračima. To je zbog činjenice da dizajniram uglavnom industrijska rješenja i sve više za europske kupce, a tamo je uobičajeno davati 5-15 godina garancije za skupe industrijske uređaje. Klasični zahtjev: „Želimo komad hardvera za koji se može garantovati 10 godina“, više nema izbora. Naravno, kada ljudi žele uređaj sa najnižom cijenom, onda je potrebno poći od određenog zadatka pri odabiru topologije.

Kratak sažetak: ovaj članak će pružiti softver za rad mosnog pretvarača (H-most ili Full Bridge), ali sam princip sinusne generacije je isti za sve topologije. Kod se također može prilagoditi za 1. topologiju, ali vi ste sami.

2. Formiranje naizmjenične struje pomoću mosnog pretvarača

Prvo, pogledajmo kako generalno radi bridge konvertor. Gledamo krug i vidimo tranzistore VT1-VT4. Oni nam omogućavaju da primijenimo jedan ili drugi potencijal na naše apstraktno opterećenje (otpornik, na primjer). Ako otvorimo tranzistore VT1 i VT4, dobijamo sljedeće: VT4 povezuje jedan kraj opterećenja na minus (GND), a tranzistor VT1 spaja na +380V, pojavljuje se potencijalna razlika “380V - 0V” preko opterećenja, što nije nula, što znači da će struja početi teći do opterećenja. Mislim da se svi sjećaju da su se naučnici složili - struja teče "od plusa do minusa". Dobijamo sledeću sliku:

Šta smo dobili otvaranjem VT1 i VT4? Povezali smo naše opterećenje na mrežu! Ako bi se otpornik zamijenio sijalicom, jednostavno bi upalila. I nismo samo uključili opterećenje, već smo odredili smjer struje koja teče kroz njega. Veoma je važno! Šta se tada dogodilo sa VT2 i VT3? Bili su zatvoreni... potpuno... čvrsto... Šta bi se desilo da su, ipak, otvoreni i VT2 ili VT3? pogledajmo:

Pretpostavimo da su se tranzistori VT1, VT4 i VT2 otvorili. Sjetimo se Ohmovog zakona, pogledajte otpor kanala visokonaponskih tranzistora, na primjer, IPP60R099P7XKSA1 i vidite 0,1 Ohma, imamo ih 2 u seriji - što znači da je otpor kruga VT1 i VT2 oko 0,2 Ohma. Sada izračunajmo struju koja će teći kroz ovaj krug: 380V / 0,2 Ohm = 1900A. Mislim da svi razumiju da je ovo kratak spoj? Također mislim da svi razumiju zašto VT2 i VT3 treba zatvoriti?

Ovaj "fenomen" se zove - kroz struju. I s njim se vodi veliki rat u energetskoj elektronici. Kako to izbjeći? Napravite kontrolni sistem čiji će algoritam strogo zabraniti istovremeno otvaranje dodatnog tranzistora.

Zašto su onda potrebni tranzistori VT2 i VT3? Sjećate se da sam napisao da je smjer struje vrlo važan? Prisjetimo se šta je naizmjenična struja. U stvari, ovo je struja koja ima nešto promjenjivo, u ovom slučaju smjer struje. Imamo struju koja teče u našoj utičnici koja mijenja svoj smjer 100 puta u sekundi. Hajde sada da zatvorimo VT1 i VT4, a zatim otvorimo tranzistore VT2 i VT3 i dobijemo ovu sliku:

Kao što vidite, smjer struje (označen strelicama) se promijenio u suprotan. Korištenje mosta nam je omogućilo promjenu smjera struje, što to znači? Da, imamo AC!

Imajte na umu da most ima dvije dijagonale: prvu dijagonalu čine VT1+VT4, a drugu dijagonalu VT2+VT3. Ove dijagonale rade naizmjence, mijenjajući struju prvo u jednom smjeru, a zatim u drugom.

Dakle, dobili smo naizmjeničnu struju, kažete, ali nije sve tako jednostavno... Mi imamo standardni - mrežni napon. Standardizovan je sa dva glavna parametra: naponom i frekvencijom. Hajde da se za sada pozabavimo frekvencijom, jer je problem napona jednostavan i čisto tehnički.

I tako frekvencija... ono što se zna o tome je da je 50 Hz (ponekad 60 Hz u Državama). Period signala je 20 ms. Sinusni val je u ovom slučaju simetričan, što znači da naša 2 poluvala (pozitivni i negativni) imaju isto trajanje, odnosno 10 ms + 10 ms. Nadam se da je ovde sve jasno.

Šta to znači u fizičkom smislu? Da, činjenica je da trebamo mijenjati smjer struje u opterećenju svakih 10 ms. Dobijamo da je prvo VT1+VT4 dijagonala otvorena 10 ms, a zatim se zatvori i VT2+VT3 dijagonala otvara narednih 10 ms.

Šta znači otvoriti tranzistor i koji signal mu poslati?

Krenimo malo na princip upravljanja tranzistorom. Koristim izolovane N-kanalne tranzistore sa efektom polja (Mosfet).

“Otvoreni tranzistor” je tranzistor čija je kapija (G) bila napajana pozitivnim potencijalom (+10..18V) u odnosu na izvor (S) i tranzistor je promijenio otpor kanala (S-D) sa beskonačno velikog (2-100 MOhm) do malih (obično 0,1 - 1 Ohm). To jest, tranzistor je počeo provoditi struju.

“Zatvoreni tranzistor” je tranzistor čija se kapija (G) povlači prema izvoru (S) i njegov otpor se mijenja od malog do beskonačno velikog. To jest, tranzistor je prestao provoditi struju.

Da biste se bolje upoznali sa principom rada tranzistora sa efektom polja ili IGBT, savjetujem vam da pročitate nekoliko poglavlja u Semenovljevoj knjizi "Osnove energetske elektronike" ili nekom drugom izvoru, možda Wikipediji za početak.

Za kontrolu isporučujemo signal sa pulsnom širinskom modulacijom ili poznatijom skraćenicom - PWM. Posebnost ovog signala je da ima 2 stanja: niži napon (GND) i gornji napon (VCC), odnosno primjenom na kapiju tranzistora ili je otvaramo ili zatvaramo - ništa drugo nije dato. Također vam savjetujem da pročitate više o PWM-u, jer sam vam ga površno opisao za lijene.


I tako, da bi naš most mijenjao smjer struje svakih 10 ms, na njega trebamo primijeniti PWM signal, čiji je period 20 ms, a radni ciklus je 50%. To znači da je od 20 ms naše rame otvoreno pola vremena (10 ms) i provodi struju, a druga polovina je zatvorena. Takav PWM moramo primijeniti na sve tipke, ali uz jedan uvjet - primjenjujemo direktni PWM na dijagonalu VT1+VT4, a inverzni PWM na dijagonalu VT2+VT3. Pametnije rečeno, signal koji se daje na dijagonalama trebao bi imati pomak od 180 0. Mislim da u ovom trenutku vaša glava juri pokušavajući da shvatite tekst, pa pogledajmo njegov vizuelni prikaz:

Sada je sve jasno? Ne? Zatim detaljnije... Kao što vidite, posebno sam zabilježio trenutke otvaranja i zatvaranja tranzistora: otvaraju se na “plus” i zatvaraju na “minus”. Takođe, signali su suprotni, odnosno inverzni: kada je plavi signal „plus“, onda je zeleni signal „minus“. Na jednu dijagonalu primjenjujemo plavi signal, a na drugu zeleni signal - kao što se može vidjeti na oscilogramu, naše dijagonale se nikada ne otvaraju u isto vrijeme. Naizmjenična struja je spremna!

Pogledaj period. Posebno sam pokazao oscilogram sa izlaza kontrolera tako da moje riječi nisu apstrakcija. Period signala je 20 ms, jedna dijagonala je otvorena 10 ms i stvara pozitivan poluval, druga dijagonala je također otvorena 10 ms i stvara negativan poluval. Sada se nadam da svi razumeju, a ako još uvek ne razumete, pišite mi na PM, daću vam individualnu lekciju na prstima. Da potvrdim moje riječi, oscilogram pokazuje naših dragocjenih 50 Hz! Još je rano za opuštanje...

Dobili smo naizmjeničnu struju frekvencije 50 Hz, ali na izlazu imamo sinusni val, a ovdje meandar nije slučaj. Formalno, možete primijeniti meandar na izlaz i napajati većinu opterećenja s njim, na primjer, prekidač za napajanje nije briga: sinus ili meandar. Odnosno, već imate dovoljno da uključite laptope, telefone, televizore, telefone i druge stvari, ali ako spojite AC motor, onda će sve biti jako loše - počet će se zagrijavati i njegova efikasnost će biti osjetno manja, i na kraju će najvjerovatnije izgorjeti. Mislite da nemate motore kod kuće? Šta je sa kompresorom frižidera? Šta je sa cirkulacijskom pumpom za grijanje? Potonji uglavnom gore kao da su napravljeni od drveta. Ista je situacija i sa dubinskim pumpama za bunare, i sa mnogim drugim stvarima uopšte. Ispostavilo se da je sinusoidni signal na izlazu pretvarača, stabilizatora ili UPS-a još uvijek važan. Pa, moramo ga stvoriti! Sada će početi potpuna eksplozija mozga...

3. Generisanje sinusoidnog talasnog oblika koristeći PWM

Da budem iskren, ne znam kako da predstavim ovu rubriku na pristupačnom jeziku. U slučaju da neko ne razumije, molim vas da proguglate dalje, ili napišete u komentaru ili PM - pokušaću da vam lično objasnim. Oči se plaše, ali ruke rade...

Pogledajmo kako izgleda običan sinusni graf:

Vidimo 2 ose: jednu sa periodom od pi, pi/2 i dalje, drugu sa amplitudom od -1 do +1. U našem zadatku, period se mjeri u sekundama i iznosi 20 ms ili 10 ms za svaki polutalas. Ovdje je sve jednostavno i jasno, ali s amplitudom je zabavnije - samo uzmite kao aksiom da je naša amplituda od 0 do 1000. Ovo je vrijednost radnog ciklusa koju postavlja mikrokontroler, odnosno 100 je 10%, 500 je 50%, 900 je 90%. Mislim da je logika jasna. U sljedećem poglavlju ćete razumjeti zašto od 0 do 1000, ali za sada hajde da ponovo izgradimo naš graf tako da odgovara našim vrijednostima:

Ovako izgleda sinusni graf pušača, što odgovara našem zadatku. Kao što vidite, nisam naznačio negativan poluperiod, jer U našem slučaju to se realizuje ne korištenjem sinusoidnog signala, već promjenom smjera struje prebacivanjem dijagonala mosta.

Na X osi imamo vrijeme, a na Y osi imamo radni ciklus našeg PWM signala. Moramo nacrtati sinus koristeći PWM. Sjećamo li se geometrije u školi, kako smo gradili grafikone? Tako je, tačku po tačku! Koliko bodova? Izgradimo sinus preko nekoliko tačaka O1(0,0) + O2(5,1000) + O3(10,0) + O4(15, -1000) + O5(20, 0) i dobijemo sljedeći sinus:

Napravili smo ga i vidimo da je, u principu, ovaj signal sličniji sinusu nego običnom meandru, ali još uvijek nije sinus. Povećajmo broj bodova. To se, inače, zove “diskretnost signala” ili u ovom slučaju “PWM diskretnost”. Kako mogu saznati koordinate ovih tačaka? Sa ekstremnim je bilo jednostavno...

Izračunavanje vrijednosti za formiranje sinusa

Kao što sam rekao gore, naš sinus je prilično simetričan. Ako izgradimo 1/4 perioda, odnosno od 0 do 5 ms, onda daljim umnožavanjem ovog dijela možemo izgraditi sinus za beskonačno dugo vrijeme. I tako formula:


I tako redom:
  • n - vrijednost radnog ciklusa u datoj diskretnoj tački
  • A je amplituda signala, odnosno maksimalna vrijednost radnog ciklusa. Za nas je 1000
  • pi/2 - 1/4 sinusnog perioda pada u pi/2, ako računamo 1/2 perioda, onda pi
  • x - broj koraka
  • N - broj bodova
Na primjer, učinimo zgodnim korištenje uvjeta da imamo 5 bodova. Ispostavilo se da imamo 1 korak = 1 ms, što će olakšati izradu grafa. Korak uzorkovanja se izračunava jednostavno: period u kojem gradimo graf (5 ms) dijeli se sa brojem bodova. Dovedemo formulu u ljudski oblik:


Dobijamo korak uzorkovanja od 1 ms. Napišimo formulu za izračunavanje radnog ciklusa, na primjer, u Excelu i dobijemo sljedeću tablicu:

Sada ćemo se vratiti na naš sinusni graf i ponovo ga nacrtati, ali za veći broj tačaka i vidjeti kako se mijenja:

Kao što vidimo, signal je mnogo više kao sinus, čak i uzimajući u obzir moju vještinu crtanja, odnosno nivo lijenosti)) Mislim da rezultat ne zahtijeva objašnjenje? Na osnovu rezultata konstrukcije izvodimo aksiom:

Što je više tačaka, to je veće uzorkovanje signala, idealniji je sinusoidalni oblik signala


I tako, koliko ćemo bodova iskoristiti... Jasno je da što više, to bolje. kako računati:
  1. Za ovaj članak koristim stari STM32F100RBT6 mikrokontroler (STM32VL-Discovery otklanjanje grešaka), njegova frekvencija je 24 MHz.
  2. Računamo koliko će tikova trajati period od 20 ms: 24.000.000 Hz / 50 Hz = 480.000 tikova
  3. To znači da polovina perioda traje 240.000 tikova, što odgovara frekvenciji od 24 kHz. Ako želite da povećate noseću frekvenciju, uzmite brži kamen. Naše uši će i dalje čuti 24 kHz, ali za testove ili komad hardvera koji stoji u podrumu to će biti dovoljno. Malo kasnije planiram prebaciti na F103C8T6, a tamo je već 72 MHz.
  4. 240.000 tikova... Ovo logično sugeriše 240 poena za polovinu perioda. Tajmer će ažurirati vrijednost radnog ciklusa svakih 1000 tikova ili svakih 41,6 µs
Odlučili smo se za diskretnost PWM-a 240 poena po poluperiodu je dovoljno da dobijemo oblik signala barem ne lošiji nego u mreži. Sada izračunavamo tabelu, takođe u Excelu, kao najjednostavniju opciju. Dobijamo sljedeći grafikon:

Izvor tabele i vrijednosti možete pronaći na linku - .

4. Kontrola mosnog pretvarača za generiranje sinusnog vala

Dobili smo tabelu sinusa i šta da radimo sa njom? Ove vrijednosti moramo prenijeti uz određeni korak uzorkovanja, koji nam je poznat. Sve počinje inicijalizacijom tajmera - vrijeme 0, radni ciklus nula. Zatim brojimo korak uzorkovanja od 41,66 μs i upišemo PWM vrijednost iz Tabele 13 (0,13%) u tajmer, izbrojimo još 41,66 μs i zabilježimo 26 (0,26%), i tako dalje za svih 240 vrijednosti. Zašto 240? Imamo 120 koraka za 1/4 perioda, ali moramo izvući 1/2 perioda. Vrijednosti radnog ciklusa su iste, samo nakon što dođu do 1000 upisujemo ga obrnutim redoslijedom i dobivamo sinusni pad. Na izlazu ćemo imati sljedeći oscilogram:

Kao što vidite, dobili smo gomilu PWM vrijednosti u jasno definisanom periodu i njegovo trajanje je: 240 koraka x 41,66(!) μs = 9998,4 μs = 9,9984 ms ~ 10 ms. Dobili smo pola perioda za mrežnu frekvenciju od 50 Hz. Kao što vidite, opet postoje dva signala i oni su u antifazi, što je upravo ono što je potrebno za kontrolu dijagonala mosta. Ali izvinite, gdje je sinus, pitate? Došao je trenutak istine! Hajdemo sada da signal sa izlaza mikrokontrolera dovedemo do niskopropusnog filtera. Napravio sam jednostavan niskopropusni filter koristeći RC kola sa nominalnim vrednostima od 1,5 kOhm i 0,33 μF (upravo sam ih imao pri ruci) i dobio. sljedeći rezultat:

Voila! Evo našeg dugo očekivanog sinusa! Crveni snop osciloskopa je signal prije niskopropusnog filtera, a žuti snop je signal nakon filtriranja. Niskopropusni filter je prekinuo sve frekvencije iznad 321 Hz. Još uvijek imamo glavni signal od 50 Hz, i naravno njegove harmonike sa malom amplitudom. Ako želite savršeno očistiti signal, onda napravite niskopropusni filter sa graničnom frekvencijom od oko 55-60 Hz, ali za sada to nije bitno, samo smo trebali provjeriti da li smo dobili sinus ili ne. Usput... moja sinhronizacija osciloskopa je uključena za žuti snop (strelica desno od ekrana) i vidimo njegovu frekvenciju na dnu ekrana - idealnih 50 Hz. Šta više možete tražiti? To je to, ostaje samo da odlučite koji signal i gdje ćete ga poslati. Pogledajmo ovu sliku:

Ako pogledate prvi oscilogram u članku, vidjet ćete da signal u žutoj i plavoj boji bolje imaju istu fazu, odnosno da istovremeno postaju pozitivni i otvaraju tranzistori. Ova 2 signala otvaraju dijagonalu VT1+VT4. Shodno tome, 2 druga signala također imaju istu fazu i otvaraju različitu dijagonalu. Sada ne samo da mijenjamo smjer struje, već i postavljamo amplitudu koristeći PWM tako da se mijenja prema sinusoidnom zakonu. Pogledajmo sada isti krug, ali sa strujama:

Kao što vidite, struja kroz opterećenje teče u suprotnom smjeru, mijenjajući smjer s frekvencijom od 50 Hz, a modulirani PWM koji se isporučuje na tranzistori VT1 i VT2 omogućava vam da nacrtate sinusoidni oblik signala u poluvalovima.

LPF (filter niske frekvencije) je napravljen na induktivitetu L1 i kondenzatoru C2. Savjetujem vam da uzmete u obzir graničnu frekvenciju za ovaj filter da bude manja od 100 Hz, to će minimizirati talasanje napona na izlazu.

Za desert ću vam pokazati dio dijagrama pravog uređaja sa sličnom topologijom i filterom, velik je, pa preuzmite PDF.

5. Borba kroz struje

Mislim da nikome nije tajna da ništa nije savršeno? Isto je i sa Mosfetima, oni imaju niz nedostataka, a mi ćemo se osvrnuti na jedan od njih - veliki kapacitet kapije. Odnosno, da bismo otvorili tranzistor, potrebno je ne samo primijeniti napon, već i napuniti kondenzator ovim istim naponom, tako da se uspon i pad signala odgađa. To dovodi do činjenice da na granici signala može nastati trenutak u vremenu kada jedan tranzistor još nije potpuno zatvoren, a drugi se već počeo otvarati.

Savjetujem vam da pročitate više o ovom fenomenu, na primjer, u ovom članku. Samo ću ti reći kako se nositi s tim. Kako bi tranzistori imali vremena da se normalno zatvore prije otvaranja sljedeće ruke, između kontrolnih signala se uvodi mrtvo vrijeme ili, jednostavnije rečeno, vremensko kašnjenje. U našem slučaju će se takvo kašnjenje uvesti između upravljačkih signala na tranzistorima VT3 i VT4, jer Oni su ti koji pružaju polutalasno prebacivanje. Tranzistori sa moduliranim PWM (VT1 i VT2) već imaju takva kašnjenja - sinus počinje s radnim ciklusom od 0% i također završava na 0%. Ovo kašnjenje traje 1 korak uzorkovanja, odnosno 41,6 µs.

I tako - moramo implementirati mrtvo vrijeme između plavog i zelenog snopa/signala. Na bilo kojem kontroleru takvo kašnjenje se može napraviti programski, ali to nije dobro - program će se zamrznuti ili odgoditi, a bla bla bla, vaš uređaj i stan već gore. Stoga u energetskoj elektronici treba koristiti samo hardver. Na svim specijalizovanim kontrolama motora, hardversko mrtvo vreme je obezbeđeno na svim PWM izlazima i kanalima, ali STM32 je i dalje MK opšte namene, tako da je ovde sve jednostavnije, ali će obavljati našu funkciju.

Trebat će nam TIM1 tajmer, samo on može umetnuti hardversko kašnjenje između signala, u odjeljku o pisanju softvera reći ću vam kako to učiniti, ali sada pogledajmo rezultat i šta bi tu trebalo biti:

Da bismo vidjeli kašnjenje, "razvlačimo" signal na osciloskopu, jer ima kratko trajanje od oko 300 ns. Potrebno vreme trajanja mora se izračunati za svaki specifični zadatak kako bi se tranzistori zaštitili od prolaznih struja. Trajanje kašnjenja se konfiguriše prilikom inicijalizacije (podešavanja) TIM1 tajmera. Ovo kašnjenje je prisutno i na vodećim i na opadajućem kraju signala.

6. Pisanje firmvera za STM32 mikrokontroler

Ovdje dolazimo do vjerovatno najvažnijeg i najzanimljivijeg dijela. Analizirali smo fiziku procesa, čini se da je princip rada jasan, određen je i potreban minimum zaštite - ostaje samo da se sve ovo implementira u realnom hardveru. Za ovo koristim STM32VL-Discovery ploču, inače, dobio sam je još 2011. godine u vrijeme kada je ST besplatno davao debugove na svojim konferencijama i od tada je bio zapakiran - otvorio sam paket samo par mjeseci prije, čini se da nije prošao datum isteka))) Moj "stand" za pisanje koda izgleda ovako:

Sada idemo kroz vezu. Budući da trebam generirati dva signala s različitim frekvencijama, morao sam koristiti PWM izlaze na različitim tajmerima. TIM1 generiše signal koji postavlja osnovnu frekvenciju od 50 Hz i opskrbljuje ga tranzistorima VT3 i VT4. Koristi se PWM kanal br. 3 + njegov komplementarni izlaz. Da, da, u STM32 hardverskom deadtimeu se može konfigurirati samo između normalnog i komplementarnog izlaza jednog kanala, što mi se zaista nije svidjelo. Sam proces formiranja sinusa prenosi se na TIM2 tajmer, nema potrebe za kašnjenjem (pisao sam ranije zašto) i sasvim je pogodan za generiranje moduliranog signala na VT1 i VT2.

Korišteni izlazi:

  • PA10 je običan PWM izlaz, kanal br. 3 tajmera TIM1, koji generiše 50 Hz na tranzistor VT3
  • PB15 - komplementarni izlaz kanala br. 3 tajmera TIM1, koji se napaja na tranzistor VT4
  • PA0 je izlaz PWM kanala br. 1 TIM2 tajmera. Pruža modulirani signal VT1
  • PA1 je izlaz PWM kanala br. 2 TIM2 tajmera. Pruža modulirani signal VT2
Projekat je implementiran u okruženju Keil 5 biće priložen u arhivu na kraju članka. Nadam se da nije vrijedno pričati kako napraviti projekat i slične očigledne stvari, ako se pojave takva pitanja, savjetujem vam da pogledate kako to učiniti na Google-u ili na YouTube-u. Sav kod je napisan u CMSIS (registrima), jer... Prosto je greh koristiti bilo kakve dodatne nivoe apstrakcije u sistemu upravljanja pretvaračem! Za ST, ovo su SPL biblioteke i relevantniji HAL-ovi. Za zabavu, radio sam sa obojici, zaključak je potpuna glupost. HAL je generalno neverovatno spor i jednostavno nije pogodan za aplikacije sa teškim realnim vremenom. U nekim kritičnim trenucima registri su bili višestruko brži, pronašao sam više od jednog članka o tome na internetu.

Neki će se vjerovatno pitati: "Zašto ne koristiti DMA?" To se može i treba učiniti, ali ovaj članak je više informativne prirode, a sam MK ne radi ništa komplikovano u smislu proračuna, tako da definitivno nema ograničenja u performansama kernela. DMA je dobar, ali možete bez DMA bez ikakvih potencijalnih problema. Hajde da razjasnimo šta treba da uradimo u programu:

  1. Kreirajte niz sa naših 240 sinusnih tačaka
  2. Konfigurirajte krugove takta na frekvenciju od 24 MHz odabirom vanjskog izvora kvarcnog kristala
  3. Podesite TIM1 tajmer da generiše 50 Hz PWM sa omogućenim mrtvim vremenom
  4. Konfigurišite TIM2 da generiše PWM sa nosećom frekvencijom od 24 kHz
  5. Postavite TIM6 tajmer koji generiše prekide na 24 kHz. U njemu ćemo poslati vrijednost sljedećeg radnog ciklusa iz tabele u TIM2 tajmer, a također ćemo naizmenično generirati poluvalove
Ništa komplikovano, zar ne? onda idemo...

6.1. Kreiranje tabele sinusa

Ovdje je sve jednostavno, običan niz. Jedina stvar koju vrijedi zapamtiti je da imamo 120 bodova od 0 do 1000. Moramo dodati još 120 bodova na tabelu, ali obrnutim redoslijedom:

Uint16_t sin_data = (13,26,39,52,65,78,91,104,117,130,143,156,169,182,195,207,220,233,246,258, 2,394,404,406, 2,394,406,406, ,500, 511.522.533.544.555.566.577.587.598.608.619.629.639.649.659.669.678.688.697.707. 793.801.809.816.824.831.838.845.852.859.866. 5, 969,972,975,978,980,983,985,987,989,991,993,994,995,996,997,998,999,999,999,1000, 9,999,999,999,999,999,999,999,999 989,987,985,983,980,978,975,972,969,965,962,958,955,951,946,942,938,933,928,923,918,9 13,908,68,87,87,87,87 859.852.845.838.831.824.816.809.801.793.785.777.768.760.751.743.734.725.716.707 77,566,555,544,533,522,511,500, 488,477,465,453,442,430,418,406,394,382,370,358,3 46,333,321,611,500, 488,477,465,453,442,430,418,406,394,382,370,358,3 46,333,321,611,500, 46,333,321,611,632 20,207,195,182,169,156,143,130,117,104,91 ,78,65,52, 39,26,13);

6.2. Postavljanje satnog sistema

Podešavanje sata u STM32 je vrlo fleksibilno i praktično, ali postoji nekoliko nijansi. Sama sekvenca izgleda ovako:

1) Prebacite se na taktiranje sa ugrađenog RC lanca (HSI) na eksterni kvarc (HSE), zatim pričekajte zastavicu spremnosti

RCC->CR |= ((uint32_t)RCC_CR_HSEON); // Omogući HSE dok (!(RCC->CR & RCC_CR_HSERDY)); // Spreman start HSE
2) Flash memorija kontrolera radi nešto sporije od kernela, u tu svrhu podešavamo flash takt; Ako se to ne učini, program će se pokrenuti, ali će se povremeno rušiti: nekoliko kW i nestabilan softver su nekompatibilne stvari.

FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY; // Sat Flash memorija
3) Postavili smo razdjelnike za sabirnicu sistemskog takta (AHB) i za periferne sabirnice, kojih su dvije: APB1 i APB2. Potrebna nam je maksimalna frekvencija, tako da ništa ne dijelimo i činimo koeficijente dijeljenja jednakima 1.

RCC->CFGR |= RCC_CFGR_HPRE_DIV1; // AHB = SYSCLK/1 RCC->CFGR |= RCC_CFGR_PPRE1_DIV1; // APB1 = HCLK/1 RCC->CFGR |= RCC_CFGR_PPRE2_DIV1; // APB2 = HCLK/1
4) Podešavamo predskaler množitelja frekvencije (PLL), koji stoji ispred njega i dijeli kvarcnu frekvenciju sa 2. Dobijamo da je 8 MHz podijeljeno sa 2 i dobijamo 4 MHz. Sada ih trebamo pomnožiti sa 6 tako da izlaz bude 24 MHz. Prije pisanja registara, prvo obrišite njihov sadržaj za svaki slučaj.

RCC->CFGR &= ~RCC_CFGR_PLLMULL; // brisanje bitova PLLMULL RCC->CFGR &= ~RCC_CFGR_PLLSRC; // brisanje PLLSRC bitova RCC->CFGR &= ~RCC_CFGR_PLLXTPRE; // brisanje PLLXTPRE bitova RCC->CFGR |= RCC_CFGR_PLLSRC_PREDIV1; // izvor HSE RCC->CFGR |= RCC_CFGR_PLLXTPRE_PREDIV1_Div2; // izvor HSE/2 = 4 MHz RCC->CFGR |= RCC_CFGR_PLLMULL6; // PLL x6: takt = 4 MHz * 6 = 24 MHz
5) Sada morate uključiti množitelj frekvencije (PLL) i pričekati zastavicu spremnosti:

RCC->CR |= RCC_CR_PLLON; // omogući PLL while((RCC->CR & RCC_CR_PLLRDY) == 0) () // čekaj dok PLL ne bude spreman
6) I na kraju, konfigurišemo izvor takta za sistemsku sabirnicu (AHB) - izlaz našeg množitelja frekvencije, koji ima željenih 24 MHz. Prvo brišemo sadržaj registra, postavljamo traženi bit i čekamo zastavicu spremnosti:

RCC->CFGR &= ~RCC_CFGR_SW; // brisanje SW bitova RCC->CFGR |= RCC_CFGR_SW_PLL; // odaberite izvor SYSCLK = PLL while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_1) () // pričekajte dok se PLL ne koristi
Kao rezultat, dobijamo sljedeću funkciju podešavanja sata:

Void RCC_Init (void)( RCC->CR |= ((uint32_t)RCC_CR_HSEON); // Omogući HSE dok (!(RCC->CR & RCC_CR_HSERDY)); // Spreman start HSE FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY // Cloclk Flash memorija RCC->CFGR |= RCC_CFGR_HPRE_DIV1 // AHB = SYSCLK/1 RCC->CFGR |= RCC_CFGR_PPRE1_DIV1 // APB1 = HCLK/1 RCC->CFGR |= RCC_CFGR_1; RCC_CFGR_PLLMULL // brisanje bitova PLLMULL &= ~RCC_CFGR_PLLSRC // brisanje bitova PLLXTPRE RCC->CFGR; CFGR |= RCC_CFGR_PLLXTPRE_Div2 // izvor HSE/2 = 4 MHz RCC->CFGR |= RCC_CFGR_PLLMULL6 // takt = 4 MHz * 6 = 24 MHz RCC->CR |= RCC_CR_; (RCC->CR & RCC_CR_PLLRDY) == 0) () // čekanje dok PLL nije spreman RCC->CFGR &= ~RCC_CFGR_SW // brisanje SW bitova RCC->CFGR |= RCC_CFGR_SW_PLL; while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_1) () // čekaj dok se PLL ne koristi )

6.3. Postavljanje TIM1 tajmera i "mrtvog vremena"

Dat ću opće postavke tajmera, detaljno je opisano u referentnom priručniku - savjetujem vam da pročitate svrhu svakog registra. Da, i na Internetu postoje osnovni članci o radu sa PWM-om. Sam moj kod je prilično dobro komentiran, pa ću vam samo dati kod za funkciju inicijalizacije TIM1 tajmera i pogledajmo najzanimljivije točke:

Void PWM_50Hz_Init (void)( RCC->APB2ENR |= RCC_APB2ENR_TIM1EN; // omogući sat za TIM1 RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; // omogući sat za port A RCC->APB2ENR |= RCC_ENR takt za port B // Omogući RCC_IOPB2 RCC->APB2ENR |= RCC_APB2ENR_AFIOEN // omogući sat za alternativni gpio /***************************** Postavka PA10 ** **; ***********************************/ GPIOA->CRH &= ~GPIO_CRH_CNF10 // postavljanje alternativnog push- povucite za PWM GPIOA->CRH |= GPIO_CRH_CNF10_1 &= ~GPIO_CRH_MODE10 |= GPIO_CRH_MODE10 // gpio brzina /******** ***; ************* Postavka PB15 **************************************** **** ********/ GPIOB->CRH &= ~GPIO_CRH_CNF15 // postavka komplementarna za CH3N GPIOB->CRH |= GPIO_CRH_CNF15_1 /gpio brzina 50 MHz /********; ************************* Konfiguracija PWM kanala *************** ******** *************************/ TIM1->PSC = 480-1 // div za sat: F = SYSCLK / TIM1->ARR = 1000 count do 1000 TIM1->CR1 &= ~TIM_CR1_CKD; // div za mrtvo vrijeme: Tdts = 1/Fosc = 41,6 ns TIM1->CCR3 = 500; // radni ciklus 50% TIM1->CCER |= TIM_CCER_CC3E | TIM_CCER_CC3NE; // omogući PWM komplementarni izlaz TIM1->CCER &= ~TIM_CCER_CC3NP; // aktivni visoki nivo: 0 - visoki, 1 - nizak TIM1->CCMR2 &= ~TIM_CCMR2_OC3M; TIM1->CCMR2 |= TIM_CCMR2_OC3M_2 | TIM_CCMR2_OC3M_1; // pozitivan PWM TIM1->BDTR &= ~TIM_BDTR_DTG; // brisanje registra TIM1->BDTR |= TIM_BDTR_DTG_2 | TIM_BDTR_DTG_1 | TIM_BDTR_DTG_0; // vrijednost mrtvog vremena TIM1->BDTR |= TIM_BDTR_MOE | TIM_BDTR_AOE; // omogući generiranje izlaza /************************************************** **** ****************************************/ TIM1->CR1 &= ~TIM_CR1_DIR; // odbrojavanje gore: 0 - gore, 1 - dolje TIM1->CR1 &= ~TIM_CR1_CMS; // poravnato na prednjem signalu TIM1->
Naš ciklus rada je fiksan i nikada se ne mijenja, baš kao i frekvencija. To je tajmer koji postavlja vrijeme i redoslijed rada dijagonala:

TIM1->CCR3 = 500; // radni ciklus 50%
Trajanje pauze “mrtvog vremena” uvelike ovisi o parametru vremena TDTS, koji je ovdje konfiguriran:

TIM1->CR1 &= ~TIM_CR1_CKD; // div za mrtvo vrijeme: Tdts = 1/Fosc = 41,6 ns
Njegovo trajanje je 1 sat. Ako pogledate referentni priručnik, možete vidjeti da CKD bitovi mogu, na primjer, učiniti Tdts jednakim 2, 8 tikova, itd.

Samo vrijeme pauze se postavlja ovdje:

TIM1->BDTR |= TIM_BDTR_DTG_2 | TIM_BDTR_DTG_1 | TIM_BDTR_DTG_0;
Ako otvorite referentni priručnik RM0041, vidjet ćete ove formule za izračunavanje DT. Kao što vidite, parametar Tdts je tu fundamentalan:

6.4. Podešavanje TIM2 tajmera, generisanje sinusa

Ovdje je sve još jednostavnije, vjerovatno nema smisla objašnjavati nešto u postavkama, jer su komentari već suvišni. Ako imate bilo kakvih pitanja, čekam ih u komentarima.

Void PWM_Sinus_Init (void)( RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; // omogući sat za TIM2 RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; // omogući sat za port A RCC->APB2ENR |= RCC_clock za alternativu /*********************************** Postavka PA0 *********** ***** ***********************/ GPIOA->CRL &= ~GPIO_CRL_CNF0 // postavljanje alternativnog push-pull za PWM1_CH1 GPIOA-> CRL |= GPIOA->CRL &= ~GPIOA->CRL |= GPIO_CRL_MODE0 // gpio brzina 50 MHz /****************; ***** **** Postavka PA1 **************************************** **********/ GPIOA->CRL &= ~GPIO_CRL_CNF1 // postavljanje alternativnog push-pull za PWM1_CH1 GPIOA->CRL |= GPIO_CRL_CNF1_1 &= ~GPIO_CRL_MODE1; ********************* Konfiguracija PWM kanala *********************** ** **********/ TIM2->PSC = 0; 0% TIM2->CCR2 = 0 // radni ciklus 0% TIM2->CCER |= TIM_CCER_CC1E; // omogući PWM izlaz na PA8 TIM2->CCER &= ~TIM_CCER_CC1P; // aktivni visoki nivo: 0 - visoki, 1 - nizak TIM2->CCER |= TIM_CCER_CC2E; // omogući PWM komplementaran izlaz za PA9 TIM2->CCER &= ~TIM_CCER_CC1P; // aktivni visoki nivo: 0 - visoki, 1 - nizak TIM2->CCMR1 &= ~(TIM_CCMR1_OC1M | TIM_CCMR1_OC2M); TIM2->CCMR1 |= TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2M_1; // pozitivni PWM1_CH1 i PWM1_CH2 /********************************************* ******** *****************************************/ TIM2->CR1 & = ~TIM_CR1_DIR; // odbrojavanje gore: 0 - gore, 1 - dolje TIM2->CR1 &= ~TIM_CR1_CMS; // poravnato na prednjem signalu: 00 - naprijed; 01, 10, 11 - centar TIM2->CR1 |= TIM_CR1_CEN; // početak brojanja )

6.5. Konfiguriranje prekida TIM6 tajmera

Sam tajmer postavljamo na frekvenciju od 24 kHz:

Void TIM6_step_init (void)( RCC->APB1ENR |= RCC_APB1ENR_TIM6EN; // omogući takt za osnovni TIM6 TIM6->PSC = 1-1; // div, frekvencija 24 kHz TIM6->ARR = 1000; // broji do 1000 TIM6 ->DIER |= TIM_DIER_UIE // omogućavanje prekida za TIM6->CR1 |= TIM_CR1_CEN;

6.6. Implementacija glavnog algoritma upravljanja

Glavni događaji se dešavaju u prekidu koji generiše TIM6 tajmer. Prekid se generiše svakih 41,66 µs, ako se sjećate, ovo je naš korak uzorkovanja. U skladu s tim, prekid upisuje vrijednost radnog ciklusa iz tablice u registar CCRx. Ovaj prekid također određuje koja se dijagonala trenutno crta invertiranjem zastavice sin_status nakon svakog poluciklusa. Prikazujemo 240 tačaka, invertujemo zastavicu, što dovodi do prelaska kontrole na drugi kanal, kada je već nacrtana, zastavica se ponovo invertuje i sve se ponavlja. Glavni kod algoritma:

Void TIM6_DAC_IRQHandler(void)(TIM6->SR &= ~TIM_SR_UIF; if(sin_status == 0)(TIM2->CCR1 = sin_data;) if(sin_status == 1)(TIM2->CCR2 = sin_data;) ako sin_step++; (sin_step >= 240)( sin_step=0; sin_status = sin_status ? 0: 1; ) )

Rezultati

Preuzmite projekat, kompajlirajte ga i učitajte u svoj mikrokontroler i nabavite radni pretvarač. Sve što treba da uradite je da napravite most i pošaljete mu signale:

Jedan od mojih dijagrama mosta sam objavio malo ranije u PDF-u, možete ga koristiti koliko god želite, nadam se da će vam pomoći u savladavanju energetske elektronike.

Nadam se da vam se dopao članak. Ako imate bilo kakvih pitanja o korištenju ovog koda u stvarnom hardveru, rado ću odgovoriti na njih. Takođe, nemojte uzimati ovaj kod kao nešto gotovo, ovo je jezgro pretvarača, koji implementira glavnu funkciju. Možete sami dodati sva zvona i zviždaljke. Ogoljelo jezgro projekta će vam omogućiti da shvatite kako funkcionira i ne trošite puno vremena na rastavljanje koda.

Materijali

UPD1: Zahvaljujem se korisniku na brojnim pronađenim greškama, uglavnom u tabeli sinusa - promijenjena je. Oni koji su koristili kod ili samu tabelu neka je ponovo kopiraju, već postoji ispravljena verzija u članku.

Danas ćemo pogledati nekoliko sklopova jednostavnih, čak bi se moglo reći jednostavnih, impulsnih DC-DC naponskih pretvarača (pretvarači jednosmjernog napona jedne vrijednosti u konstantni napon druge vrijednosti)

Koje su prednosti impulsnih pretvarača? Prvo, imaju visoku efikasnost, a drugo, mogu raditi na ulaznom naponu nižem od izlaznog. Impulsni pretvarači se dijele u grupe:

  • - bucking, boosting, inverting;
  • - stabilizovano, nestabilizovano;
  • - galvanski izolovani, neizolovani;
  • - sa uskim i širokim rasponom ulaznih napona.

Za izradu domaćih impulsnih pretvarača najbolje je koristiti specijalizirane integrirane krugove - lakše ih je sastaviti i nisu hiroviti prilikom postavljanja. Dakle, evo 14 šema za svaki ukus:

Ovaj pretvarač radi na frekvenciji od 50 kHz, galvansku izolaciju obezbeđuje transformator T1 koji je namotan na prsten K10x6x4.5 od ferita 2000NM i sadrži: primarni namotaj - 2x10 zavoja, sekundarni namotaj - 2x70 namotaja PEV-0,2 žice . Tranzistori se mogu zamijeniti sa KT501B. Skoro nikakva struja se ne troši iz baterije kada nema opterećenja.

Transformator T1 je namotan na feritni prsten prečnika 7 mm, a sadrži dva namotaja od 25 zavoja žice PEV = 0,3.


Push-pull nestabilizovani pretvarač na bazi multivibratora (VT1 i VT2) i pojačala snage (VT3 i VT4). Izlazni napon se bira brojem zavoja sekundarnog namota impulsnog transformatora T1.

Konvertor stabilizacionog tipa na bazi MAX631 mikrokola iz MAXIM-a. Frekvencija generisanja 40…50 kHz, element za skladištenje - induktor L1.


Možete koristiti jedan od dva čipa zasebno, na primjer drugi, da pomnožite napon iz dvije baterije.

Tipični krug za povezivanje stabilizatora za pojačavanje impulsa na mikrokolo MAX1674 iz MAXIM-a. Rad se održava na ulaznom naponu od 1,1 volta. Učinkovitost - 94%, struja opterećenja - do 200 mA.

Omogućava vam da dobijete dva različita stabilizirana napona sa efikasnošću od 50...60% i strujom opterećenja do 150 mA u svakom kanalu. Kondenzatori C2 i C3 su uređaji za skladištenje energije.

8. Prebacivanje pojačanja stabilizatora na MAX1724EZK33 čipu iz MAXIM-a

Tipična shema strujnog kola za povezivanje specijaliziranog mikrokola iz MAXIM-a. Ostaje u funkciji na ulaznom naponu od 0,91 volti, ima SMD kućište male veličine i osigurava struju opterećenja do 150 mA sa efikasnošću od 90%.

Tipično kolo za povezivanje pulsirajućeg stabilizatora na široko dostupnom TEXAS mikrokolu. Otpornik R3 reguliše izlazni napon unutar +2,8…+5 volti. Otpornik R1 postavlja struju kratkog spoja, koja se izračunava po formuli: Is(A)= 0,5/R1(Ohm)

Integrisani inverter napona, efikasnost - 98%.

Dva izolovana pretvarača napona DA1 i DA2, povezana u "neizolovano" kolo sa zajedničkom masom.

Induktivnost primarnog namota transformatora T1 je 22 μH, omjer zavoja primarnog namota prema svakom sekundaru je 1: 2,5.

Tipično kolo stabiliziranog pojačanog pretvarača na MAXIM mikrokolu.

Ovo je DC-DC pretvarač napona sa 5-13 V ulaza, na 12 V izlaz DC 1,5 A. Pretvarač prima niži napon i daje veći izlaz koji se koristi tamo gdje je napon manji od potrebnih 12 volti. Često se koristi za povećanje napona postojećih baterija. Ovo je u suštini integrisani DC-DC pretvarač. Na primjer, postoji litijum-jonska baterija od 3,7 V, a njen napon se može mijenjati pomoću ovog kola kako bi se osiguralo potrebnih 12 V na 1,5 A.

Pretvarač je lako napraviti sami. Glavna komponenta je MC34063, koji se sastoji od referentnog napona (kompenzirana temperatura), komparatora, oscilatora sa aktivnim krugom za ograničavanje vršne struje, AND kapije, flip-flopa i izlaznog prekidača velike snage sa drajverom i samo potrebno je nekoliko dodatnih elektronskih komponenti u uprtaču kako bi bio spreman. Ova serija čipova je posebno dizajnirana da bude uključena u različite pretvarače.

Prednosti MC34063A čipa

  • Rad od 3 do 40 V ulaza
  • Niska struja u stanju pripravnosti
  • Trenutna granica
  • Izlazna struja do 1,5 A
  • Izlazni napon podesiv
  • Rad u frekvencijskom opsegu do 100 kHz
  • Preciznost 2%


Opis radioelemenata

  • R- Svi otpornici su 0,25 W.
  • T- TIP31-NPN tranzistor snage. Sva izlazna struja prolazi kroz njega.
  • L1- 100 µH feritnih kalemova. Ako to morate učiniti sami, morate kupiti toroidalne feritne prstenove vanjskog prečnika 20 mm i unutrašnjeg prečnika 10 mm, takođe visine 10 mm i žicu debljine 1 - 1,5 mm sa 0,5 metara i napraviti 5 zavoja na jednake udaljenosti. Dimenzije feritnog prstena nisu previše kritične. Razlika od nekoliko (1-3 mm) je prihvatljiva.
  • D- mora se koristiti Šotkijeva dioda
  • TR- višeokretni varijabilni otpornik, koji se ovdje koristi za fino podešavanje izlaznog napona od 12 V.
  • C- C1 i C3 su polarni kondenzatori, pa obratite pažnju na ovo kada ih postavljate na PCB.

Spisak delova za montažu

  1. Otpornici: R1 = 0,22 oma x1, R2 = 180 ohm x1, R3 = 1,5K x1, R4 = 12K x1
  2. Regulator: TR1 = 1 kOhm, višestruki
  3. Tranzistor: T1 = TIP31A ili TIP31C
  4. Prigušnica: L1 = 100 µH na feritnom prstenu
  5. Dioda: D1 - Schottky 1N5821 (21V - 3A), 1N5822 (28V - 3A) ili MBR340 (40V - 3A)
  6. Kondenzatori: C1 = 100 uF / 25V, C2 = 0,001 uF, C3 = 2200 uF / 25V
  7. Čip: MC34063
  8. PCB 55 x 40 mm


Imajte na umu da je potrebno ugraditi mali aluminijski hladnjak na tranzistor T1 - TIP31, inače se ovaj tranzistor može oštetiti zbog pojačanog zagrijavanja, posebno pri visokim strujama opterećenja. Datasheet i PCB crtež