Obvod stejnosměrného měniče napětí. Výkonný DC-DC měnič

Na tranzistorech VT1 a VT2 (KT837K) je namontován pulzní generátor push-pull, u kterého se díky proporcionálnímu řízení proudu tranzistorů výrazně snižují spínací ztráty a zvyšuje se účinnost měniče. Proud kladné zpětné vazby protéká vinutími III a IV transformátoru T1 a zátěží připojenou ke kondenzátoru C2. Úlohu diod, které usměrňují výstupní napětí, plní emitorové přechody tranzistorů.

Zvláštností generátoru je přerušování kmitů při bez zátěže, což automaticky řeší problém správy napájení. Jednoduše řečeno, takový měnič se sám zapne, když z něj potřebujete něco napájet, a vypne se při odpojení zátěže. To znamená, že napájecí baterie může být neustále připojena k obvodu a prakticky se nespotřebovává, když je zátěž vypnutá!

Pro daný vstup UВx. a výstup UBix. napětí a počet závitů vinutí I a II (w1), potřebný počet závitů vinutí III a IV (w2) lze s dostatečnou přesností vypočítat pomocí vzorce: w2=w1 (UOut. - UBx. + 0,9) /(UBx - 0,5). Kondenzátory mají následující jmenovité hodnoty. C1: 10-100 uF, 6,3 V. C2: 10-100 uF, 16 V.

Tranzistory by měly být vybírány na základě přijatelných hodnot základní proud (neměl by být menší než zatěžovací proud!!!) A emitor zpětného napětí - základ (musí být větší než dvojnásobek rozdílu mezi vstupním a výstupním napětím!!!) .

Modul Chaplygin jsem sestavil za účelem výroby zařízení pro dobíjení smartphonu na cestách, kdy smartphone nelze nabíjet ze zásuvky 220 V. Ale bohužel... Maximum, co jsem dokázal vymáčknout pomocí 8 paralelně zapojených baterií je cca 350-375 mA nabíjecí proud při 4,75 V. výstupní napětí! Přestože telefon mé ženy Nokia lze tímto zařízením dobíjet. Bez zátěže můj Chaplygin Module produkuje 7 V se vstupním napětím 1,5 V. Je sestaven pomocí tranzistorů KT837K.

Na fotce nahoře je pseudo-Krona, kterou používám k napájení některých svých zařízení vyžadujících 9 V. Uvnitř pouzdra od baterie Krona je baterie typu AAA, stereo konektor, přes který se nabíjí, a převodník Chaplygin. Je sestaven pomocí tranzistorů KT209.

Transformátor T1 je navinut na kroužku 2000NM o rozměrech K7x4x2, obě vinutí jsou navinuta současně ve dvou vodičích. Aby nedošlo k poškození izolace na ostrých vnějších a vnitřních hranách prstenu, zmatněte je zaoblením ostrých hran brusným papírem. Nejprve se navinou vinutí III a IV (viz schéma), které obsahují 28 závitů drátu o průměru 0,16 mm, dále také ve dvou drátech vinutí I a II, které obsahují 4 závity drátu o průměru 0,25 mm. .

Hodně štěstí a úspěchů všem, kteří se rozhodnou převaděč replikovat! :)


Pulzní DC-DC měniče jsou určeny jak pro zvyšování, tak pro snižování napětí. S jejich pomocí můžete s minimálními ztrátami převést například 5 voltů na 12, nebo 24 nebo naopak. Existují také vysokonapěťové DC-DC měniče, které jsou schopny získat velmi významný potenciálový rozdíl stovek voltů z relativně nízkého napětí (5-12 voltů). V tomto článku se budeme zabývat montáží právě takového převodníku, jehož výstupní napětí lze upravit v rozmezí 60-250 voltů.


Je založen na běžném integrovaném časovači NE555. Q1 ve schématu je tranzistor s efektem pole; můžete použít IRF630, IRF730, IRF740 nebo jakýkoli jiný navržený pro provoz s napětím nad 300 voltů. Q2 je nízkovýkonový bipolární tranzistor, můžete bezpečně nainstalovat BC547, BC337, KT315, 2SC828. Tlumivka L1 by měla mít indukčnost 100 μH, ale pokud to není po ruce, můžete nainstalovat tlumivky v rozsahu 50-150 μH, to neovlivní činnost obvodu. Je snadné vyrobit si tlumivku sami - naviňte 50-100 závitů měděného drátu na feritový kroužek. Dioda D1 podle obvodu FR105, místo ní můžete nainstalovat UF4007 nebo jakoukoli jinou vysokorychlostní diodu s napětím alespoň 300 voltů. Kondenzátor C4 musí být vysokonapěťový, alespoň 250 voltů, více možné. Čím větší má kapacitu, tím lépe. Pro kvalitní odfiltrování vysokofrekvenčního rušení na výstupu převodníku je také vhodné paralelně s ním instalovat malokapacitní filmový kondenzátor. VR1 je trimovací rezistor, kterým se reguluje výstupní napětí. Minimální napájecí napětí pro obvod je 5 voltů, nejoptimálnější je 9-12 voltů.

Výroba převodníků

Obvod je sestaven na desce plošných spojů o rozměrech 65x25 mm, k článku je přiložen soubor s výkresem desky. Můžete si vzít textolit větší než je samotná kresba, aby na okrajích zůstal prostor pro připevnění desky k pouzdru. Pár fotek z výrobního procesu:




Po naleptání je třeba desku pocínovat a zkontrolovat, zda nedošlo ke zkratu. Protože Na desce je vysoké napětí, mezi drahami by neměly být žádné kovové otřepy, jinak je možná porucha. Nejprve se na desku připájejí drobné díly - rezistory, dioda, kondenzátory. Poté mikroobvod (je lepší jej nainstalovat do zásuvky), tranzistory, ořezávací odpor, induktor. Pro snazší připojení vodičů k desce doporučuji osadit šroubovací svorkovnice, místa pro ně jsou na desce.



Stáhněte si desku:

(Staženo: 260)

První spuštění a nastavení

Před spuštěním nezapomeňte zkontrolovat správnou instalaci a zazvonit koleje. Trimovací rezistor nastavte do minimální polohy (jezdec by měl být na straně rezistoru R4). Poté můžete na desku přivést napětí připojením ampérmetru do série. Při nečinnosti by proudový odběr obvodu neměl překročit 50 mA. Pokud se vejde do normy, můžete opatrně otáčet trimovacím odporem a ovládat výstupní napětí. Pokud je vše v pořádku, připojte na vysokonapěťový výstup zátěž, například 10-20 kOhm rezistor a znovu otestujte činnost obvodu, tentokrát pod zátěží.
Maximální proud, který může takový převodník produkovat, je přibližně 10-15 mA. Lze jej použít například jako součást lampové techniky k napájení anod lampy nebo k rozsvícení plynových výbojkových či luminiscenčních indikátorů. Hlavní aplikací je miniaturní paralyzér, protože výstupní napětí 250 voltů je člověku znatelné. Šťastné stavění!

Pulzní měniče a výkonová elektronika obecně zůstávaly pro většinu amatérů i profesionálů v oblasti vývoje elektroniky vždy něčím posvátným. Článek se zabývá asi nejzajímavějším tématem mezi kutily a fanoušky alternativní energie – vznik sinusového napětí/proudu z konstantního.

Myslím, že mnozí z vás pravděpodobně viděli reklamy nebo četli články obsahující frázi „čistý sinus“. To je přesně to, o čem budeme mluvit, ale ne o marketingové složce, ale o výhradně technické realizaci. Pokusím se co nejsrozumitelněji vysvětlit samotné principy fungování, standardní (a ne tak standardní) obvodová řešení a hlavně napíšeme a rozebereme software pro mikrokontrolér STM32, který nám bude generovat potřebné signály.

Proč STM32? Ano, protože nyní je to nejoblíbenější MK v SNS: je na nich spousta vzdělávacích informací v ruštině, existuje mnoho příkladů, a co je nejdůležitější, tyto MK a ladicí nástroje pro ně jsou velmi levné. Řeknu to rovnou - v komerčním projektu bych nainstaloval pouze TMS320F28035 nebo podobný DSP ze série Piccolo od TI, ale to je úplně jiný příběh.

Jedna věc je důležitá - STM32 vám umožňuje stabilně ovládat jednoduché „domácí“ měniče energie, na kterých osud světa nezávisí na provozu žádné jaderné elektrárny nebo datového centra.

Toto je obrázek řídicích signálů, které je třeba získat, aby se stejnosměrný proud přeměnil na střídavý. A ano – přesně tohle je sinus! Jako v tom filmu: „Vidíš toho gophera? - Ne. -A on je...“

Zajímá vás, jak se tvoří sinus? Zajímalo by vás, jak se do ropy pumpují kilowatty energie? Pak vítejte ve střihu!

1. Topologie pro generování sinusového signálu

Zeptáte-li se zástupu elektronických inženýrů: „Jak můžete generovat sinusový signál?“, pak se vám nahrnou návrhy s tuctem různých metod, ale kterou potřebujeme? Vyjdeme z původního zadání – potřebujeme převést např. 380V 10A na střídavé napětí 230V. Obecně se jedná o „klasický“ případ, můžeme jej vidět v každém dobrém on-line UPS nebo invertoru. Ukazuje se, že potřebujeme přeměnit asi 4 kW výkonu a při dobré účinnosti to není špatné, že? Myslím, že taková podmínka sníží počet možností pro „kreslení“ sinus. Co nám tedy zbývá?

U výkonových měničů do 6-10 kW se používají dvě hlavní topologie: plný můstek a „poloviční můstek“ s průchozím neutrálem. Vypadají následujícím způsobem:

1) Topologie s průchozí neutrální

Tato topologie se nejčastěji vyskytuje u levných UPS se sinusovým výstupem, ačkoli takové autority jako APC a GE ji neváhají použít ani při poměrně vysokých výkonech. Co je k tomu motivuje? Podívejme se na výhody a nevýhody této topologie.

Klady:

  • Minimální možný počet výkonových tranzistorů, což znamená 2x menší ztráty a nižší náklady na zařízení
  • Přes nulu. To zjednodušuje proces certifikace, zejména CE a ATEX. To je způsobeno skutečností, že průchozí nula umožňuje, aby systémy ochrany vstupů (například RCD) fungovaly také v případě, že dojde k nehodě ve výstupních obvodech za převodníkem.
  • Jednoduchá topologie, která nám umožňuje minimalizovat náklady na produkt s malými
    a střední výroba

mínusy:

  • Potřeba bipolárního napájení. Jak vidíte, do obvodu měniče musí být přivedeno ±380V a další nula
  • Zdvojnásobte počet vysokonapěťových kondenzátorů. Vysokonapěťové kondenzátory s velkou kapacitou a s nízkou ESR při výkonech 3-4 kW se začínají pohybovat od 20 do 40 %
    náklady na součástky
  • Použití elektrolytických kondenzátorů v „rozdělovači“. Vysychají, je téměř nemožné vybrat kondenzátory se stejnými parametry a pokud uvážíte, že parametry elektrolytů se během provozu mění, pak je to zbytečné. Můžete to nahradit filmem, ale je to drahé
Hlavní klady a zápory byly identifikovány, takže kdy je tato topologie potřeba? Můj subjektivní názor: při výkonech do 500-1000W, kdy základním požadavkem je cena, ne spolehlivost. Zřejmým zástupcem takového spotřebního zboží jsou stabilizátory od A-Electronics: jsou levné, nějak fungují, a to je v pořádku. Pro 60 % spotřebitelů u nás je to dostačující a cenově dostupné. Udělejme závěry.

2) Topologie mostu

Mostová topologie... pravděpodobně nejsrozumitelnější a nejběžnější topologie v měničích výkonu a hlavně přístupná vývojářům i s malými zkušenostmi. Po 10 kW nenajdete nic jiného než jedno- nebo třífázový most. Proč je tak milován?

Klady:

  • Velmi vysoká spolehlivost. Je to dáno především kvalitou řídicího systému výkonových tranzistorů a nezávisí na degradaci součástek
  • Požadovaná vstupní kapacita je několikanásobná nebo dokonce řádově menší. Je pouze nutné poskytnout vypočítanou hodnotu ESR. To umožňuje použití fóliových kondenzátorů při zachování nákladů. Filmové kondenzátory - nevysychají, fungují lépe v drsných teplotách, životnost je o řád vyšší než u elektrolytů
  • Minimální zvlnění napětí na tranzistorech, což znamená, že můžete použít tranzistory s nižším napětím
  • Jednoduchost a přehlednost operačních algoritmů. To vede k výraznému zkrácení času pro vývoj produktu i pro jeho uvedení do provozu.

mínusy:

  • Zvýšený počet výkonových tranzistorů znamená nutnost vážnějšího chlazení. Zdražení tranzistorů, ale vzhledem k menšímu počtu kondenzátorů je to spíše plus
  • Zvýšená složitost ovladače, zejména s požadavky na galvanické oddělení
Jak je vidět ze skutečných nevýhod můstkové topologie, je zde pouze zvýšený požadavek na chlazení tranzistorů. Mnozí si pomyslí: "Vytváří se více tepla, což znamená nižší účinnost!" Ne tak docela... Díky sníženým emisím EMF a „tvrdšímu“ řídicímu systému je účinnost obou topologií přibližně stejná.

V 70% případů musím použít můstkový obvod nejen v DC/AC měničích, ale i v jiných měničích. Je to dáno tím, že navrhuji především průmyslová řešení a stále více pro evropské zákazníky a tam je zvykem dávat na drahá průmyslová zařízení záruku 5-15 let. Klasický požadavek: „Chceme kus hardwaru, na který je zaručena 10 let,“ už není na výběr. Samozřejmě, když lidé chtějí zařízení s nejnižší cenou, pak je nutné při výběru topologie vycházet z konkrétního zadání.

Krátké shrnutí: tento článek poskytne software pro provoz můstkového převodníku (H-můstek nebo Full Bridge), ale princip generování sinusového signálu je stejný pro všechny topologie. Kód lze upravit i pro 1. topologii, ale jste na to sami.

2. Vznik střídavého proudu pomocí můstkového měniče

Nejprve se podívejme, jak obecně funguje můstkový převodník. Podíváme se na obvod a vidíme tranzistory VT1-VT4. Umožňují nám aplikovat ten či onen potenciál na naši abstraktní zátěž (například rezistor). Pokud otevřeme tranzistory VT1 a VT4, dostaneme následující: VT4 připojí jeden konec zátěže k zápornému pólu (GND) a tranzistor VT1 se připojí k +380V, na zátěži se objeví rozdíl potenciálu „380V - 0V“, což není nula, což znamená, že do zátěže začne protékat proud. Myslím, že si každý pamatuje, že vědci souhlasili - proud teče „z plusu do mínusu“. Dostáváme tento obrázek:

Co jsme získali otevřením VT1 a VT4? Připojili jsme naši zátěž k síti! Pokud by byl rezistor nahrazen žárovkou, jednoduše by se rozsvítil. A nejenže jsme zapnuli zátěž, ale určili směr proudu, který jím protéká. Je to velmi důležité! Co se v té době stalo s VT2 a VT3? Byly zavřené... úplně... těsně... Co by se stalo, kdyby přece jen byly otevřené i VT2 nebo VT3? Podívejme se:

Předpokládejme, že se otevřely tranzistory VT1, VT4 a VT2. Vzpomeňme na Ohmův zákon, podívejme se na kanálový odpor vysokonapěťových tranzistorů, například IPP60R099P7XKSA1 a uvidíme 0,1 Ohm, máme 2 v sérii - což znamená, že odpor obvodu VT1 a VT2 je asi 0,2 Ohm. Nyní spočítejme proud, který bude protékat tímto obvodem: 380V / 0,2 Ohm = 1900A. Myslím, že každý chápe, že se jedná o zkrat? Také si myslím, že každý chápe, proč by měly být VT2 a VT3 uzavřeny?

Tento "fenomén" se nazývá - přes proud. A právě s ním probíhá velká válka ve výkonové elektronice. Jak se tomu vyhnout? Vytvořte řídicí systém, jehož algoritmus bude přísně zakazovat současné otevření dalšího tranzistoru.

Proč jsou tedy potřeba tranzistory VT2 a VT3? Pamatujete si, jak jsem psal, že směr proudu je velmi důležitý? Připomeňme si, co je to střídavý proud. Ve skutečnosti se jedná o proud, který má něco proměnlivého, v tomto případě směr proudu. V zásuvce nám teče proud, který mění svůj směr 100krát za sekundu. Nyní zavřeme VT1 a VT4 a poté otevřeme tranzistory VT2 a VT3 a získáme tento obrázek:

Jak vidíte, směr proudu (označený šipkami) se změnil na opačný. Použití mostu nám umožnilo změnit směr proudu, co to znamená? Ano, máme AC!

Upozorňujeme, že most má dvě úhlopříčky: první úhlopříčku tvoří VT1+VT4 a druhou úhlopříčku tvoří VT2+VT3. Tyto úhlopříčky pracují střídavě a přepínají proud nejprve v jednom a poté ve druhém směru.

Tak jsme dostali střídavý proud, říkáte si, ale všechno není tak jednoduché... Máme standardní - síťové napětí. Je standardizován dvěma hlavními parametry: napětím a frekvencí. Pojďme se zatím zabývat frekvencí, protože otázka napětí je jednoduchá a čistě obvodově technická.

A tak frekvence... ví se o ní, že je 50 Hz (ve Státech někdy 60 Hz). Perioda signálu je 20 ms. Sinusovka je v tomto případě symetrická, což znamená, že naše 2 půlvlny (kladná a záporná) mají stejnou dobu trvání, tedy 10 ms + 10 ms. Doufám, že je zde vše jasné.

Co to znamená ve fyzickém smyslu? Ano, faktem je, že musíme každých 10 ms změnit směr proudu v zátěži. Dostaneme, že nejprve se úhlopříčka VT1+VT4 otevře na 10 ms, a pak se zavře a úhlopříčka VT2+VT3 se otevře na dalších 10 ms.

Co znamená otevřít tranzistor a jaký signál do něj vyslat?

Pojďme trochu odbočit k principu řízení tranzistorů. Používám izolované hradlo N-kanálové tranzistory s efektem pole (Mosfet).

„Otevřený tranzistor“ je tranzistor, jehož hradlo (G) bylo napájeno kladným potenciálem (+10..18V) vzhledem ke zdroji (S) a tranzistor změnil odpor kanálu (S-D) z nekonečně velkého (2-100 MOhm) na malé (obvykle 0,1 - 1 Ohm). To znamená, že tranzistor začal vést proud.

„Uzavřený tranzistor“ je tranzistor, jehož hradlo (G) je přitahováno ke zdroji (S) a jeho odpor se mění z malého na nekonečně velký. To znamená, že tranzistor přestal vést proud.

Abyste se lépe seznámili s principem fungování tranzistoru s efektem pole nebo IGBT, doporučuji vám přečíst si několik kapitol v Semenovově knize „Základy výkonové elektroniky“ nebo jiném zdroji, možná Wikipedia pro začátek.

Pro ovládání dodáváme signál s Pulse Width Modulation nebo známější zkratkou - PWM. Zvláštností tohoto signálu je, že má 2 stavy: dolní napětí (GND) a horní napětí (VCC), to znamená přivedením na hradlo tranzistoru jej buď otevřeme, nebo sepneme - nic jiného není dáno. Také vám radím přečíst si více o PWM, protože jsem vám to popsal povrchně pro lenochy.


A tak, aby náš můstek měnil směr proudu každých 10 ms, musíme na něj přivést PWM signál, jehož perioda je 20 ms a pracovní cyklus je 50 %. To znamená, že z 20 ms je naše rameno polovinu času (10 ms) otevřené a vede proud a druhou polovinu je zavřeno. Takové PWM potřebujeme aplikovat na všechny klávesy, ale s jednou podmínkou - na úhlopříčku VT1+VT4 aplikujeme přímou PWM a na úhlopříčku VT2+VT3 inverzní PWM. Chytřeji řečeno, signál dodávaný na úhlopříčkách by měl mít posun 180 0. Myslím, že v tuto chvíli se vám hlavou honí ve snaze porozumět textu, takže se podívejme na jeho vizuální znázornění:

Nyní je vše jasné? Ne? Pak podrobněji... Jak vidíte, konkrétně jsem zaznamenal momenty otevírání a zavírání tranzistorů: otevírají se v „plus“ a zavírají v „minus“. Také signály jsou opačné, to znamená inverzní: když je modrý signál „plus“, pak je zelený signál „mínus“. Na jednu úhlopříčku přivedeme modrý signál, na druhou zelený - jak je vidět na oscilogramu, naše úhlopříčky se nikdy neotevřou současně. Střídavý proud je připraven!

Podívejte se na období. Konkrétně jsem ukázal oscilogram z výstupů regulátoru, aby moje slova nebyla abstrakcí. Perioda signálu je 20 ms, jedna úhlopříčka je otevřena 10 ms a vytváří kladnou půlvlnu, druhá úhlopříčka je rovněž otevřena 10 ms a vytváří zápornou půlvlnu. Teď doufám, že to všichni pochopí, a pokud stále nerozumíte, napište mi do PM, dám vám individuální lekci na vašich prstech. Abych potvrdil má slova, oscilogram ukazuje našich drahocenných 50 Hz! Na odpočinek je ještě brzy...

Přijímali jsme střídavý proud o frekvenci 50 Hz, ale ve vývodu máme sinusovku a tady o meandr nejde. Formálně můžete na výstup použít meandr a napájet s ním většinu zátěží, například spínanému zdroji je jedno: sinus nebo meandr. To znamená, že už máte dost na zapnutí notebooků, telefonů, televizorů, telefonů a dalších věcí, ale pokud připojíte střídavý motor, bude vše velmi špatné - začne se zahřívat a jeho účinnost bude znatelně menší, a nakonec s největší pravděpodobností vyhoří. Myslíte si, že nemáte doma motory? A co kompresor chladničky? A co oběhové čerpadlo topení? Ty většinou hoří, jako by byly ze dřeva. Stejná je situace s čerpadly do hlubinných vrtů do studní a s mnoha dalšími věcmi obecně. Ukazuje se, že sinusový signál na výstupu střídače, stabilizátoru nebo UPS je stále důležitý. No, musíme to vytvořit! Teď začne naprostá exploze mozku...

3. Generování sinusového průběhu pomocí PWM

Abych byl upřímný, nevím, jak tuto sekci prezentovat v přístupném jazyce. V případě, že někdo nerozumí, poprosím vás, abyste si to dále vygooglovali, nebo napsali do komentáře nebo PM - pokusím se vám to vysvětlit osobně. Oči se bojí, ale ruce dělají...

Podívejme se, jak vypadá běžný sinusový graf:

Vidíme 2 osy: jedna osa s periodou pi, pi/2 a dále, druhá s amplitudou od -1 do +1. V našem problému se perioda měří v sekundách a je 20 ms nebo 10 ms pro každou půlvlnu. Vše je zde jednoduché a přehledné, ale s amplitudou je to zábavnější – berte to prostě jako axiom, že naše amplituda je od 0 do 1000. Toto je hodnota pracovního cyklu, kterou nastavuje mikrokontrolér, tedy 100 je 10 %, 500 je 50 %, 900 je 90 %. Myslím, že logika je jasná. V další kapitole pochopíte proč od 0 do 1000, ale nyní přestavme náš graf tak, aby odpovídal našim hodnotám:

Takto vypadá sinusový graf kuřáka, který odpovídá našemu zadání. Jak vidíte, negativní půlcyklus jsem neuvedl, protože V našem případě je realizován nikoli pomocí sinusového signálu, ale změnou směru proudu přepínáním úhlopříček můstku.

Na ose X máme čas a na ose Y máme pracovní cyklus našeho signálu PWM. Potřebujeme nakreslit sinus pomocí PWM. Pamatujeme si geometrii ve škole, jak jsme dělali grafy? Přesně tak, bod po bodu! Kolik bodů? Postavme sinus přes několik bodů O1(0,0) + O2(5,1000) + O3(10,0) + O4(15, -1000) + O5(20, 0) a dostaneme následující sinus:

Postavili jsme to a vidíme, že v zásadě je tento signál podobný sinusu než běžnému meandru, ale stále to ještě není sinus. Zvyšme počet bodů. To se mimochodem nazývá „diskrétnost signálu“ nebo v tomto případě „diskrétnost PWM“. Jak zjistím souřadnice těchto bodů? S těmi extrémními to bylo jednoduché...

Výpočet hodnot pro vytvoření sinusu

Jak jsem řekl výše, náš sinus je docela symetrický. Pokud postavíme 1/4 periody, tedy od 0 do 5 ms, tak dalším duplikováním tohoto kusu můžeme sinus budovat nekonečně dlouho. A tak vzorec:


A tak popořadě:
  • n - hodnota pracovního cyklu v daném diskrétním bodě
  • A je amplituda signálu, tj. maximální hodnota pracovního cyklu. U nás je to 1000
  • pi/2 - 1/4 sinusové periody připadá na pi/2, počítáme-li 1/2 periody, pak pi
  • x - číslo kroku
  • N - počet bodů
Udělejme například pohodlné použití podmínky, že máme 5 bodů. Ukázalo se, že máme 1 krok = 1 ms, což usnadní sestavení grafu. Krok vzorkování se vypočítá jednoduše: doba, ve které graf sestavujeme (5 ms), se vydělí počtem bodů. Přenesme vzorec do lidské podoby:


Získáme krok vzorkování 1 ms. Napišme vzorec pro výpočet pracovního cyklu například v Excelu a získáme následující tabulku:

Nyní se vrátíme k našemu sinusovému grafu a vykreslíme jej znovu, ale pro větší počet bodů a uvidíme, jak se změní:

Jak vidíme, signál je mnohem více jako sinus, i když vezmeme v úvahu mou dovednost v kreslení, nebo spíše úroveň lenosti)) Myslím, že výsledek nevyžaduje vysvětlení? Na základě výsledků konstrukce odvodíme axiom:

Čím více bodů, tím vyšší je vzorkování signálu, tím ideálnější je tvar sinusového signálu


A tak, kolik bodů použijeme... Je jasné, že čím více, tím lépe. Jak počítat:
  1. Pro tento článek používám starý mikrokontrolér STM32F100RBT6 (ladění STM32VL-Discovery), jeho frekvence je 24 MHz.
  2. Počítáme, kolik tiků bude trvat perioda 20 ms: 24 000 000 Hz / 50 Hz = 480 000 tiků
  3. To znamená, že polovina období trvá 240 000 tiků, což odpovídá frekvenci 24 kHz. Pokud chcete zvýšit nosnou frekvenci, vezměte rychlejší kámen. Naše uši budou stále slyšet 24 kHz, ale pro testy nebo kus hardwaru stojící ve sklepě ano. O něco později plánuji přejít na F103C8T6 a tam už je 72 MHz.
  4. 240 000 tiků... To logicky naznačuje 240 bodů za polovinu období. Časovač aktualizuje hodnotu pracovního cyklu každých 1000 tiků nebo každých 41,6 µs
Rozhodli jsme se pro diskrétnost PWM, 240 bodů za půlperiodu stačí s rezervou, aby byl signál alespoň ne horší než v síti. Nyní vypočítáme tabulku, také v Excelu, jako nejjednodušší možnost. Dostaneme následující graf:

Zdroj tabulky a hodnot naleznete na odkazu - .

4. Řízení můstkového měniče pro generování sinusovky

Dostali jsme sinusovou tabulku a co s ní? Tyto hodnoty potřebujeme přenést s určitým krokem vzorkování, který je nám znám. Vše začíná inicializací časovače - čas 0, pracovní cyklus nula. Dále napočítáme vzorkovací krok 41,66 μs a do časovače zapíšeme hodnotu PWM z tabulky 13 (0,13 %), napočítáme dalších 41,66 μs a zaznamenáme 26 (0,26 %) a tak dále pro všech 240 hodnot. Proč 240? Máme 120 kroků na 1/4 periody, ale potřebujeme nakreslit 1/2 periody. Hodnoty pracovního cyklu jsou stejné, pouze když dosáhnou 1000, zapíšeme je v opačném pořadí a získáme sinusový pokles. Na výstupu budeme mít následující oscilogram:

Jak vidíte, obdrželi jsme spoustu PWM hodnot v jasně definovaném období a jeho trvání je: 240 kroků x 41,66(!) μs = 9998,4 μs = 9,9984 ms ~ 10 ms. Získali jsme polovinu periody pro síťovou frekvenci 50 Hz. Jak vidíte, signály jsou opět dva a jsou v protifázi, což je přesně to, co je potřeba k ovládání úhlopříček mostu. Ale promiňte, kde je sinus, ptáte se? Nastal okamžik pravdy! Nyní přivedeme signál z výstupu mikrokontroléru do dolní propusti.Vyrobil jsem jednoduchou dolní propust pomocí RC obvodů s nominálními hodnotami 1,5 kOhm a 0,33 μF (právě jsem je měl po ruce) a dostal následující výsledek:

Voila! Tady je náš dlouho očekávaný sine! Červený paprsek osciloskopu je signál před dolní propustí a žlutý paprsek je signál po filtraci. Dolní propust odřízne všechny frekvence nad 321 Hz. Stále máme hlavní signál 50 Hz a samozřejmě jeho harmonické s malou amplitudou. Pokud chcete signál dokonale vyčistit, tak si udělejte dolní propust s mezní frekvencí cca 55-60 Hz, ale to zatím není důležité, jen jsme potřebovali zkontrolovat, zda máme sinus nebo ne. Mimochodem... synchronizaci osciloskopu mám zapnutou pro žlutý paprsek (šipka vpravo na obrazovce) a jeho frekvenci vidíme dole na obrazovce - ideálních 50 Hz. Co víc si můžete přát? To je vše, zbývá se jen rozhodnout, jaký signál a kam jej poslat. Podívejme se na tento obrázek:

Pokud se podíváte na úplně první oscilogram v článku, uvidíte, že signál ve žluté a modré barvě má ​​lépe stejnou fázi, to znamená, že se současně stanou pozitivními a otevřou tranzistory. Tyto 2 signály otevírají úhlopříčku VT1+VT4. V souladu s tím mají 2 další signály také stejnou fázi a otevírají jinou úhlopříčku. Nyní nejen změníme směr proudu, ale také nastavíme amplitudu pomocí PWM tak, aby se měnila podle sinusového zákona. Nyní se podívejme na stejný obvod, ale s proudy:

Jak vidíte, proud zátěží protéká opačným směrem, mění směr s frekvencí 50 Hz a modulovaná PWM dodávaná do tranzistorů VT1 a VT2 umožňuje nakreslit sinusový tvar signálu v polovičních vlnách.

LPF (nízkofrekvenční filtr) je vyroben na indukčnosti L1 a kondenzátoru C2. Doporučuji zvážit mezní frekvenci pro tento filtr menší než 100 Hz, což minimalizuje zvlnění napětí na výstupu.

Jako dezert vám ukážu část schématu zapojení skutečného zařízení s podobnou topologií a filtrem, je velké, takže si stáhněte PDF.

5. Boj přes proudy

Myslím, že pro nikoho není tajemstvím, že nic není dokonalé? Stejné je to s mosfety, mají řadu nevýhod a my se podíváme na jednu z nich - velká kapacita brány. To znamená, že k otevření tranzistoru potřebujeme nejen přivést napětí, ale také nabít kondenzátor stejným napětím, takže vzestup a pokles signálu je zpožděn. To vede k tomu, že na hranici signálu může nastat časový okamžik, kdy jeden tranzistor ještě není zcela uzavřen a druhý se již začal otevírat.

Více o tomto fenoménu radím přečíst například v tomto článku. Jen ti řeknu, jak se s tím vypořádat. Aby tranzistory měly čas se normálně zavřít, než se otevře další rameno, je mezi řídicí signály zaveden mrtvý čas, nebo jednodušeji řečeno časové zpoždění. V našem případě bude takové zpoždění zavedeno mezi řídicí signály na tranzistorech VT3 a VT4, protože Jsou to ty, které poskytují půlvlnné spínání. Tranzistory s modulovanou PWM (VT1 a VT2) už takové zpoždění mají - sinus začíná s pracovním cyklem 0 % a končí také na 0 %. Toto zpoždění je dlouhé 1 vzorkovací krok, tedy 41,6 µs.

A tak - musíme implementovat mrtvý čas mezi modrým a zeleným paprskem/signálem. Na jakémkoli ovladači lze takové zpoždění provést programově, ale to není dobré - program zamrzne nebo se opozdí a bla bla bla, vaše zařízení a byt už hoří. Ve výkonové elektronice by se proto měl používat pouze hardware. U všech specializovaných ovladačů motoru je hardwarová prodleva poskytována na všech PWM výstupech a kanálech, ale STM32 je stále MK pro všeobecné použití, takže zde je vše jednodušší, ale bude plnit naši funkci.

Budeme potřebovat časovač TIM1, pouze umí vložit hardwarové zpoždění mezi signály, v sekci o softwaru pro psaní vám řeknu, jak to udělat, ale nyní se podívejme na výsledek a na to, co by tam mělo být:

Abychom viděli zpoždění, „natáhneme“ signál na osciloskop, protože má krátké trvání asi 300 ns. Požadovaný mrtvý čas se musí vypočítat pro každý konkrétní úkol, aby byly tranzistory chráněny před průchozími proudy. Délka zpoždění se konfiguruje při inicializaci (nastavení) časovače TIM1. Toto zpoždění je přítomno na předním i sestupném konci signálu.

6. Zápis firmwaru pro mikrokontrolér STM32

Zde se dostáváme k pravděpodobně nejdůležitější a nejzajímavější části. Fyziku procesu jsme rozebrali, princip fungování se zdá být jasný, bylo také stanoveno požadované minimum ochrany – zbývá to vše implementovat do reálného hardwaru. K tomu používám desku STM32VL-Discovery, mimochodem jsem ji dostal už v roce 2011 v době, kdy ST rozdávali debugy zdarma na svých konferencích a od té doby je zabalená - balíček jsem otevřel jen pár měsíců před tím se zdá, že datum vypršení platnosti neuplynulo))) Můj „stojan“ pro psaní kódu vypadá takto:

Nyní pojďme na propojení. Protože potřebuji generovat dva signály s různými frekvencemi, musel jsem použít PWM výstupy na různých časovačích. TIM1 generuje signál, který nastavuje základní frekvenci 50 Hz a dodává ji do tranzistorů VT3 a VT4. Je použit PWM kanál č. 3 + jeho doplňkový výstup. Ano, ano, v STM32 lze hardwarovou deadtime konfigurovat pouze mezi normálním a doplňkovým výstupem jednoho kanálu, což se mi opravdu nelíbilo. Samotný proces tvorby sinusu se přenese do časovače TIM2, není potřeba zpoždění (psal jsem dříve proč) a pro generování modulovaného signálu na VT1 a VT2 se docela hodí.

Použité výstupy:

  • PA10 je běžný PWM výstup, kanál č. 3 časovače TIM1, který generuje 50 Hz do tranzistoru VT3
  • PB15 - komplementární výstup kanálu č. 3 časovače TIM1, který je napájen k tranzistoru VT4
  • PA0 je výstup PWM kanálu č. 1 časovače TIM2. Poskytuje modulovaný signál do VT1
  • PA1 je výstup PWM kanálu č. 2 časovače TIM2. Poskytuje modulovaný signál do VT2
Projekt byl implementován v prostředí Keil 5, bude připojen v archivu na konci článku. Doufám, že nemá cenu říkat, jak vytvořit projekt a podobné samozřejmé věci; pokud se takové otázky objeví, doporučuji vám podívat se, jak to udělat na Google nebo na YouTube. Veškerý kód je napsán v CMSIS (registry), protože... Je prostě hřích používat jakékoli další úrovně abstrakce v řídicím systému měniče! Pro ST jsou to knihovny SPL a relevantnější HAL. Pro srandu jsem pracoval s oběma, závěr je úplný brak. HAL je obecně neuvěřitelně pomalý a prostě není vhodný pro aplikace s tvrdým real-timem. V některých kritických okamžicích byly registry mnohonásobně rychlejší, mimochodem na internetu jsem o tom našel nejeden článek.

Někteří se pravděpodobně zeptají: "Proč nepoužít DMA?" To lze a mělo by být provedeno, ale tento článek je spíše informačního charakteru a samotný MK nedělá nic složitého z hlediska výpočtů, takže výkon jádra rozhodně není omezen. DMA je dobré, ale bez DMA se bez potenciálních problémů obejdete. Pojďme si ujasnit, co musíme v programu udělat:

  1. Vytvořte pole s našimi 240 sinusovými body
  2. Nakonfigurujte hodinové obvody na frekvenci 24 MHz výběrem externího zdroje křemenného rezonátoru
  3. Nastavte časovač TIM1 tak, aby generoval 50 Hz PWM s povoleným mrtvým časem
  4. Nakonfigurujte TIM2 tak, aby generoval PWM s nosnou frekvencí 24 kHz
  5. Nastavte časovač TIM6, který generuje přerušení na 24 kHz. V něm odešleme další hodnotu pracovního cyklu z tabulky do časovače TIM2 a také střídáme generování půlvln
Nic složitého, že? Tak jdeme...

6.1. Vytvoření sinusové tabulky

Všechno je zde jednoduché, pravidelné pole. Jediné, co stojí za zapamatování, je, že máme 120 bodů od 0 do 1000. Do tabulky musíme přidat dalších 120 bodů, ale v opačném pořadí:

Uint16_t sin_data = (13,26,39,52,65,78,91,104,117,130,143,156,169,182,195,207,220,233,246,258, 271,234,333,835 2,394,406,418,430,442,453,465,477,488,500, 511,522,533,544,555,566,577,587,598,608,619,629,9669,709,629,9669,709,709,765,70 71 6,725,734,743,751,760,768,777,785,793,801,809,816,824,816,824,831,838,845,852,859,866, 872,878,881,99,90,801,999,90 ,93 3,938,942,946,951,955,958,962,965, 969,972,975,978,980,983,985,987,989,991,993,994,995,999,99,909999990 999, 999,998,997,996,995,994,993,991,989,987,985,983,980,978,975,972,969,965, 962,958,955,9951,949,93,939,93 3 78,669,659,649,639,629,619,608,598,587,577,566,555,544,533,522,511,500, 488,477,465,453,442,430,418,406,394,382,370,358,346,333,321,309,296,284,271,258, 246,233,215,206,215,2011 17,104,91,78,65,52, 39,26,13);

6.2. Nastavení systému hodin

Nastavení hodin v STM32 je velmi flexibilní a pohodlné, ale existuje několik nuancí. Samotná sekvence vypadá takto:

1) Přepněte na taktování z vestavěného RC řetězce (HSI) na externí quartz (HSE), poté počkejte na příznak připravenosti

RCC->CR |= ((uint32_t)RCC_CR_HSEON); // Povolení HSE while (!(RCC->CR & RCC_CR_HSERDY)); // Připraveno ke spuštění HSE
2) Flash paměť ovladače pracuje poněkud pomaleji než jádro, za tímto účelem upravíme taktování flash. Pokud to neuděláte, program se spustí, ale bude pravidelně padat: pár kW a nestabilní software jsou nekompatibilní věci.

FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY; // Hodiny Flash paměti
3) Nastavíme děliče pro systémovou hodinovou sběrnici (AHB) a pro periferní sběrnice, které jsou dvě: APB1 a APB2. Potřebujeme maximální frekvenci, takže nic nedělíme a dělící koeficienty dáme rovno 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) Upravíme předděličku násobiče frekvence (PLL), která stojí před ní a dělí quartzovou frekvenci 2. Dostaneme, že 8 MHz je děleno 2 a dostaneme 4 MHz. Nyní je musíme vynásobit 6, aby výstup byl 24 MHz. Před zápisem registrů nejprve pro jistotu vymažte jejich obsah.

RCC->CFGR &= ~RCC_CFGR_PLLMULL; // vymazání bitů PLLMULL RCC->CFGR &= ~RCC_CFGR_PLLSRC; // vymazání bitů PLLSRC RCC->CFGR &= ~RCC_CFGR_PLLXTPRE; // vymazání bitů PLLXTPRE RCC->CFGR |= RCC_CFGR_PLLSRC_PREDIV1; // zdroj HSE RCC->CFGR |= RCC_CFGR_PLLXTPRE_PREDIV1_Div2; // zdroj HSE/2 = 4 MHz RCC->CFGR |= RCC_CFGR_PLLMULL6; // PLL x6: takt = 4 MHz * 6 = 24 MHz
5) Nyní musíte zapnout násobič frekvence (PLL) a počkat na příznak připravenosti:

RCC->CR |= RCC_CR_PLLON; // povolit PLL while((RCC->CR & RCC_CR_PLLRDY) == 0) () // počkat, až bude PLL připraveno
6) A nakonec nakonfigurujeme zdroj hodin pro systémovou sběrnici (AHB) - výstup našeho frekvenčního násobiče, který má kýžených 24 MHz. Nejprve vymažeme obsah registru, nastavíme požadovaný bit a počkáme na příznak ready:

RCC->CFGR &= ~RCC_CFGR_SW; // vymazání bitů SW RCC->CFGR |= RCC_CFGR_SW_PLL; // výběr zdroje SYSCLK = PLL while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_1) () // počkejte, až se PLL použije
V důsledku toho získáme následující funkci nastavení hodin:

Void RCC_Init (void)( RCC->CR |= ((uint32_t)RCC_CR_HSEON); // Povolit HSE while (!(RCC->CR & RCC_CR_HSERDY)); // Připravené spuštění HSE FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LA // Clock Flash paměť 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 RCC->CFGR &= ~RCC_CFGR_PLLMULL; // vymazat bity PLLMULL RCC->CFGR &= ~RCC_CFGR_PLLSRC; // vymazat bity PLLSRC RCC->CFGR &= ~RCC_CFGR_PLLXTPRE; // vymazat bity PLLXTPRE_= RCC-_CFGRRECR | // zdroj HSE RCC->CFGR |= RCC_CFGR_PLLXTPRE_PREDIV1_Div2; // zdroj HSE/2 = 4 MHz RCC->CFGR |= RCC_CFGR_PLLMULL6; // PLL x6: takt = 4 MHz * 6 = 24 MHz RCC->CR |= RCC_>CRPLLONCC_ ; // povolení PLL while((RCC->CR & RCC_CR_PLLRDY) == 0) () // počkejte, až bude PLL připraveno RCC->CFGR &= ~RCC_CFGR_SW; // vymaže bity SW RCC->CFGR |= RCC_CFGR_SW_PLL; // výběr zdroje SYSCLK = PLL while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_1) () // počkejte, až se PLL použije )

6.3. Nastavení časovače TIM1 a „mrtvého času“

Uvedu obecné nastavení časovače, je podrobně popsáno v referenční příručce - doporučuji vám přečíst si účel každého registru. Jo a na internetu jsou základní články o práci s PWM. Můj kód sám o sobě je docela dobře okomentován, takže vám dám kód pro funkci inicializace časovače TIM1 a podívejme se na nejzajímavější body:

Void PWM_50Hz_Init (void)( RCC->APB2ENR |= RCC_APB2ENR_TIM1EN; // povolení hodin pro TIM1 RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; // povolení hodin pro port A RCC->APB2ENRPBclock |_EN BIOCRC_APPBclock pro RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; // povolení hodin pro alternativní gpio /**************************************** **** Nastavení PA10 ** *******************************************/ GPIOA->CRH & = ~GPIO_CRH_CNF10; // nastavení alternativního push-pull pro PWM GPIOA->CRH |= GPIO_CRH_CNF10_1; GPIOA->CRH &= ~GPIO_CRH_MODE10; GPIOA->CRH |= Rychlost GPIO_CRH_MODE10 /50 MHz /50 MHz ******** **************** Nastavení PB15 **************************** *************** ********/ GPIOB->CRH &= ~GPIO_CRH_CNF15; // doplňkové nastavení pro CH3N GPIOB->CRH |= GPIO_CRH_CNF15_1; GPIOB-> CRH &= ~GPIO_CRH_MODE15; GPIOB->CRH |= GPIO_CRH_MODE15; / /rychlost gpio 50 MHz /*********************************** *** Konfigurační kanál PWM *************** ********************************** ***/ TIM1->PSC = 480-1; // div pro hodiny: F = SYSCLK / TIM1->ARR = 1000; // počítejte do 1000 TIM1->CR1 &= ~TIM_CR1_CKD; // div pro mrtvý čas: Tdts = 1/Fosc = 41,6 ns TIM1->CCR3 = 500; // pracovní cyklus 50% TIM1->CCER |= TIM_CCER_CC3E | TIM_CCER_CC3NE; // povolí PWM komplementární out TIM1->CCER &= ~TIM_CCER_CC3NP; // aktivní vysoká úroveň: 0 - vysoká, 1 - nízká TIM1->CCMR2 &= ~TIM_CCMR2_OC3M; TIM1->CCMR2 |= TIM_CCMR2_OC3M_2 | TIM_CCMR2_OC3M_1; // positiv PWM TIM1->BDTR &= ~TIM_BDTR_DTG; // vymazat registr TIM1->BDTR |= TIM_BDTR_DTG_2 | TIM_BDTR_DTG_1 | TIM_BDTR_DTG_0; // hodnota mrtvého času TIM1->BDTR |= TIM_BDTR_MOE | TIM_BDTR_AOE; // povolení výstupu generování /************************************************* **** ****************************************/ TIM1->CR1 &= ~TIM_CR1_DIR; // počítání nahoru: 0 - nahoru, 1 - dolů TIM1->CR1 &= ~TIM_CR1_CMS; // zarovnáno na přední signál TIM1->
Náš pracovní cyklus je pevný a nikdy se nemění, stejně jako frekvence. Je to tento časovač, který nastavuje čas a pořadí provozu úhlopříček:

TIM1->CCR3 = 500; // pracovní cyklus 50 %
Trvání pauzy „mrtvého času“ silně závisí na časovém parametru TDTS, který je nakonfigurován zde:

TIM1->CR1 &= ~TIM_CR1_CKD; // div pro mrtvý čas: Tdts = 1/Fosc = 41,6 ns
Jeho trvání je 1 tiknutí hodin. Pokud se podíváte do referenční příručky, můžete vidět, že bity CKD mohou například způsobit, že Tdts se rovná 2, 8 tikům atd.

Samotný čas pauzy se nastavuje zde:

TIM1->BDTR |= TIM_BDTR_DTG_2 | TIM_BDTR_DTG_1 | TIM_BDTR_DTG_0;
Pokud otevřete referenční příručku RM0041, uvidíte tyto vzorce pro výpočet DT. Jak vidíte, parametr Tdts je zde základní:

6.4. Nastavení časovače TIM2, generování sinusu

Zde je vše ještě jednodušší, pravděpodobně nemá smysl v nastavení cokoli vysvětlovat, protože komentáře jsou již nadbytečné. Pokud máte nějaké dotazy, čekám na ně v komentářích.

g Void PWM_Sinus_Init (void)( RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; // povolení hodin pro TIM2 RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; // povolení hodin pro port A RCC->APB2ENR_TIM2EN; alternativa /EN RCC_APo /*********************************** Nastavení PA0 ************ ***** ***********************/ GPIOA->CRL &= ~GPIO_CRL_CNF0; // nastavení alternativního push-pull pro PWM1_CH1 GPIOA-> CRL |= GPIO_CRL_CNF0_1; GPIOA->CRL &= ~GPIO_CRL_MODE0; GPIOA->CRL |= GPIO_CRL_MODE0; // rychlost gpio 50 MHz /************************ ***** **** Nastavení PA1 ******************************************** **********/ GPIOA->CRL &= ~GPIO_CRL_CNF1; // nastavení alternativního push-pull pro PWM1_CH1 GPIOA->CRL |= GPIO_CRL_CNF1_1; GPIOA->CRL &= ~GPIO_CRL_MODE1; GPIOA-> CRL |= GPIO_CRL_MODE1; // rychlost gpio 50 MHz /*** ************************* Konfigurace kanálu PWM ******* **************** ************/ TIM2->PSC = 0; // div pro hodiny: F = SYSCLK / TIM2->ARR = 1000; // počet do 1000 TIM2->CCR1 = 0; / / pracovní cyklus 0% TIM2->CCR2 = 0; // pracovní cyklus 0% TIM2->CCER |= TIM_CCER_CC1E; // povolení PWM výstupu na PA8 TIM2->CCER &= ~TIM_CCER_CC1P; // aktivní vysoká úroveň: 0 - vysoká, 1 - nízká TIM2->CCER |= TIM_CCER_CC2E; // povolení PWM komplementárního k PA9 TIM2->CCER &= ~TIM_CCER_CC1P; // aktivní vysoká úroveň: 0 - vysoká, 1 - nízká 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; // pozitivní PWM1_CH1 a PWM1_CH2 /************************************************* ******** *********************************************/ TIM2->CR1 & = ~TIM_CR1_DIR; // počítání nahoru: 0 - nahoru, 1 - dolů TIM2->CR1 &= ~TIM_CR1_CMS; // zarovnáno na přední návěstidlo: 00 - přední; 01, 10, 11 - střed TIM2->CR1 |= TIM_CR1_CEN; // počáteční počet)

6.5. Konfigurace přerušení časovače TIM6

Samotný časovač nastavíme na frekvenci 24 kHz:

Void TIM6_step_init (void)( RCC->APB1ENR |= RCC_APB1ENR_TIM6EN; // povolit hodiny pro základní TIM6 TIM6->PSC = 1-1; // div, frekvence 24 kHz TIM6->ARR = 1000; // počítat do 1000 TIM6 ->DIER |= TIM_DIER_UIE; // povolení přerušení pro časovač TIM6->CR1 |= TIM_CR1_CEN; // počet spuštění NVIC_EnableIRQ(TIM6_DAC_IRQn); // povolení přerušení TIM6_DAC_IRQn )

6.6. Implementace hlavního řídicího algoritmu

Hlavní události se vyskytují v přerušení generovaném časovačem TIM6. Přerušení je generováno každých 41,66 µs, pokud si pamatujete, toto je náš vzorkovací krok. Podle toho přerušení zapíše hodnotu pracovního cyklu z tabulky do registru CCRx. Toto přerušení také určuje, která úhlopříčka se právě vykresluje obrácením příznaku sin_status po každém půlcyklu. Zobrazíme 240 bodů, převrátíme příznak, což způsobí, že řízení přejde na jiný kanál, když se již vykreslí, příznak se znovu obrátí a vše se opakuje. Hlavní kód algoritmu:

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;) sin_step; (sin_step >= 240)( sin_step=0; sin_status = sin_status ? 0: 1; ) )

Výsledek

Stáhněte si projekt, zkompilujte jej a nahrajte do svého mikrokontroléru a získejte funkční měnič. Jediné, co musíte udělat, je vytvořit most a vyslat do něj signály:

Jedno z mých můstkových diagramů jsem zveřejnil o něco dříve v PDF, můžete jej používat, jak chcete, doufám, že vám pomůže při zvládnutí výkonové elektroniky.

Doufám, že se vám článek líbil. Pokud máte nějaké dotazy ohledně použití tohoto kódu v reálném hardwaru, rád je zodpovím. Také prosím neberte tento kód jako něco hotového, jedná se o jádro převodníku, který implementuje hlavní funkci. Všechny zvonky a píšťalky si můžete přidat sami. Samotné jádro projektu vám umožní pochopit, jak to funguje, a nestrávit spoustu času rozebíráním kódu.

Materiály

UPD1: Chtěl bych poděkovat uživateli za řadu nalezených chyb, hlavně v sinusové tabulce - byla změněna. Ti, kteří použili kód nebo samotnou tabulku, zkopírujte prosím znovu, v článku je již opravená verze.

Dnes se podíváme na několik obvodů jednoduchých, dalo by se říci jednoduchých, pulzních DC-DC měničů napětí (převodníky stejnosměrného napětí jedné hodnoty na stejnosměrné napětí jiné hodnoty)

Jaké jsou výhody pulzních měničů? Za prvé mají vysokou účinnost a za druhé mohou pracovat při nižším vstupním napětí, než je výstupní napětí. Pulzní měniče jsou rozděleny do skupin:

  • - vzpružení, posílení, převrácení;
  • - stabilizovaný, nestabilizovaný;
  • - galvanicky oddělené, neizolované;
  • - s úzkým a širokým rozsahem vstupních napětí.

K výrobě domácích pulsních měničů je nejlepší použít specializované integrované obvody - jsou snadněji sestavitelné a při nastavování nejsou náladové. Zde je tedy 14 schémat pro každý vkus:

Tento měnič pracuje na frekvenci 50 kHz, galvanické oddělení zajišťuje transformátor T1, který je navinutý na kroužku K10x6x4,5 z feritu 2000NM a obsahuje: primární vinutí - 2x10 závitů, sekundární vinutí - 2x70 závitů drátu PEV-0,2 . Tranzistory lze nahradit KT501B. Z baterie se při bez zátěže nespotřebovává téměř žádný proud.

Transformátor T1 je navinut na feritovém kroužku o průměru 7 mm a obsahuje dvě vinutí po 25 závitech drátu PEV = 0,3.


Push-pull nestabilizovaný převodník založený na multivibrátoru (VT1 a VT2) a výkonovém zesilovači (VT3 a VT4). Výstupní napětí se volí počtem závitů sekundárního vinutí pulzního transformátoru T1.

Stabilizační převodník typu založený na mikroobvodu MAX631 od MAXIM. Frekvence generování 40…50 kHz, akumulační prvek - tlumivka L1.


Jeden ze dvou čipů můžete použít samostatně, například druhý, pro znásobení napětí ze dvou baterií.

Typický obvod pro připojení stabilizátoru impulsního zesílení na mikroobvod MAX1674 od MAXIM. Provoz je udržován při vstupním napětí 1,1 voltu. Účinnost - 94%, zatěžovací proud - až 200 mA.

Umožňuje získat dvě různá stabilizovaná napětí s účinností 50...60 % a zatěžovacím proudem až 150 mA v každém kanálu. Kondenzátory C2 a C3 jsou zařízení pro ukládání energie.

8. Stabilizátor pulzního zesílení na čipu MAX1724EZK33 od MAXIM

Typické schéma zapojení pro připojení specializovaného mikroobvodu od MAXIM. Zůstává funkční při vstupním napětí 0,91 V, má malé pouzdro SMD a poskytuje zatěžovací proud až 150 mA s účinností 90 %.

Typický obvod pro připojení pulzního stabilizátoru na široce dostupném mikroobvodu TEXAS. Rezistor R3 reguluje výstupní napětí v rozmezí +2,8…+5 voltů. Rezistor R1 nastavuje zkratový proud, který se vypočítá podle vzorce: Is(A)= 0,5/R1(Ohm)

Integrovaný střídač napětí, účinnost - 98%.

Dva izolované měniče napětí DA1 a DA2, zapojené do „neizolovaného“ obvodu se společnou zemí.

Indukčnost primárního vinutí transformátoru T1 je 22 μH, poměr závitů primárního vinutí ke každému sekundáru je 1:2,5.

Typický obvod stabilizovaného boost měniče na mikroobvodu MAXIM.

Jedná se o DC-DC měnič napětí se vstupem 5-13 V na výstup 12 V DC 1,5 A. Převodník přijímá nižší napětí a poskytuje vyšší výstup pro použití tam, kde je napětí nižší než požadovaných 12 voltů. Často se používá ke zvýšení napětí stávajících baterií. Jedná se v podstatě o integrovaný DC-DC měnič. Například existuje 3,7V lithium-iontová baterie a její napětí lze pomocí tohoto obvodu změnit tak, aby poskytlo požadovaných 12V při 1,5A.

Převodník si snadno sestavíte sami. Hlavní komponentou je MC34063, který se skládá z napěťové reference (teplotně kompenzované), komparátoru, oscilátoru s aktivním obvodem omezujícím špičkový proud, AND hradla, klopného obvodu a vysokovýkonového výstupního spínače s driverem a pouze do postroje je potřeba několik dalších elektronických součástek, aby byl připraven. Tato řada čipů byla speciálně navržena pro použití v různých převodnících.

Výhody čipu MC34063A

  • Provoz od 3 do 40 V vstupu
  • Nízký proud v pohotovostním režimu
  • Aktuální limit
  • Výstupní proud až 1,5A
  • Výstupní napětí nastavitelné
  • Provoz ve frekvenčním rozsahu do 100 kHz
  • Přesnost 2 %


Popis radioprvků

  • R- Všechny odpory jsou 0,25 W.
  • T- Výkonový tranzistor TIP31-NPN. Prochází jím veškerý výstupní proud.
  • L1- 100 µH feritové cívky. Pokud to musíte udělat sami, musíte si zakoupit toroidní feritové kroužky s vnějším průměrem 20 mm a vnitřním průměrem 10 mm, vysoké také 10 mm a drát o tloušťce 1 - 1,5 mm o tloušťce 0,5 metru a provést 5 otáček při stejné vzdálenosti. Rozměry feritového kroužku nejsou příliš kritické. Rozdíl několika málo (1-3 mm) je přijatelný.
  • D- musí být použita Schottkyho dioda
  • TR- víceotáčkový proměnný rezistor, který se zde používá pro jemné doladění výstupního napětí 12 V.
  • C- C1 a C3 jsou polární kondenzátory, proto na to dejte pozor při jejich umístění na DPS.

Seznam dílů pro montáž

  1. Rezistory: R1 = 0,22 ohm x1, R2 = 180 ohm x1, R3 = 1,5K x1, R4 = 12K x1
  2. Regulátor: TR1 = 1 kOhm, víceotáčkový
  3. Tranzistor: T1 = TIP31A nebo TIP31C
  4. Tlumivka: L1 = 100 µH na feritovém kroužku
  5. Dioda: D1 - Schottky 1N5821 (21V - 3A), 1N5822 (28V - 3A) nebo MBR340 (40V - 3A)
  6. Kondenzátory: C1 = 100 uF / 25V, C2 = 0,001 uF, C3 = 2200 uF / 25V
  7. Čip: MC34063
  8. DPS 55 x 40 mm


Pozor, na tranzistor T1 - TIP31 je nutné osadit malý hliníkový chladič, jinak může dojít k poškození tohoto tranzistoru vlivem zvýšeného zahřívání, zejména při vysokých zatěžovacích proudech. Datový list a výkres PCB