GpioLab pin je součástka, ne symbol

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

PWM jako DAC: zvlnění proti rychlosti

Mikrokontrolér má obvykle víc časovačů než převodníků, takže se analogové napětí často dělá tak, že se pin spíná a výsledek se vyfiltruje. Funguje to — a má to jeden kompromis, ze kterého se nedá utéct.

1,65 Všest period nosnézvlnění41,3 mV / půl bitu 6,4 mVτ = 1,00 ms · ustálení 6,2 ms · f_c = 159 Hzzvlnění je 3,2× nejnižší bit — tolik bitů to nedásignál se smí měnit do 15,9 Hz
Modře nosná, oranžově co z ní projde filtrem. Zvětšuj C a sleduj, jak zvlnění klesá a ustálení roste — ve stejném poměru.

Střední hodnota je snadná část

Vout = VDD · střídaa tím to končí

Osmibitový časovač dá 256 kroků, tedy 12,9 mV na krok při 3,3 V. Rozlišení tedy máš zadarmo. Co zadarmo nemáš, je klid.

Kompromis, který má vzorec

Za dolní propustí zůstane zvlnění. Pro časovou konstantu výrazně delší než perioda vyjde:

ΔV = VDD · s · (1 − s) · T / τnejvětší je při střídě 50 %

a doba, za kterou se výstup ustálí na n bitů, je táž rovnice jako u ADC:

tustálení = τ · (n+1) · ln 2a v obou stojí τ

Tady je ten kompromis vidět jako identita: τ je v obou vzorcích, v jednom ve jmenovateli a ve druhém v čitateli. Desetkrát větší filtr je desetkrát menší zvlnění a desetkrát pomalejší odezva — přesně, ne přibližně. Filtrem se to tedy vyřešit nedá; dá se to jen posunout.

Jediná páka, která je zadarmo

Ve vzorci pro zvlnění je perioda T. Vyšší frekvence nosné je menší zvlnění a nestojí to nic — ustálení se nezmění vůbec, protože v něm T není. Odtud pravidlo: nosná co nejvýš, a teprve pak se řeší filtr.

Cena je ale jinde: u mikrokontroléru se rozlišení PWM a frekvence dělí o tentýž čítač. Vyšší frekvence znamená méně kroků střídy — a o tom je celá kapitola v McuLabu.

Kdy tohle nestačí

úlohaPWM + RC?
referenční napětí, podsvícení, žádaná hodnotaano, ideální
audioano, ale s pořádným filtrem a vysokou nosnou
rychlá regulační smyčkane — filtr přidá zpoždění do smyčky
přesnost nad 10 bitůne — zvlnění a nesymetrie hran to sníží

Vzorce v této kapitole

ΔV — zvlnění za filtrem
ΔV = V_DD·d·(1−d)·T/τ [V]