Mikrokontroléry rady AVR – generovanie PWM signálu

Čítač/časovač1 môže pracovať v 15 režimoch v závislosti od nastavenia bitov WGM z toho je 12 režimov pre PWM.

Všetky tieto režimy ukazuje nasledujúca tabuľka.

obr1

Obr.1 Režimy č/č1

Jedna sa teda o fázovo korigovaný PWM režim, rýchly PWM režim, fázovo a frekvenčne korigovaný.

Generovanie PWM signálu mikrokontrolérom AVR

Princíp generovania signálu je veľmi jednoduchý:

Pri generovaní signálu PWM č/č1 pracuje ako vzostupno-zostupný čítač, teda najprv číta vzostupne a po dosiahnutí hodnoty TOP začne čítať zostupne. Hodnotu TOP určuje rozlíšenie PWM a aj frekvencia opakovania. PWM rozlíšenie nastavujeme bitmi WGM11:0 v registri TCCR1A a môže byť 8, 9 a 10 bitové.

Generovanie signálu prebieha nasledovne – najprv čítač číta vzostupne a po dosiahnutí hodnoty zhodnej s hodnotou v komparačnom registry je výstup nastavený do požadovaného stavu a po dosiahnutí TOP hodnoty začne čítať zostupne. Pri čítaní zostupne a dosiahnutí hodnoty rovnakej aká je v komparačnom registry prepne výstup do predchádzajúceho stavu.

TOP hodnoty v závislosti od x-bitového režimu a PWM režimu (PhaseCorrect) a frekvencia signálu (ftc je frekvencia čítača – teda F_CPU/delička):

rozlíšenie TOP frekvencia
8bit 0x00FF ftc / 510
9bit 0x01FF ftc / 1022
10bit 0x03FF ftc / 2046

Obr.2 Rozlíšenie PWM a frekvencia

Generovaný signál je vyvedený na piny OC1A a OC1B podľa nastavenia v registry TCCR1A.

Režimy PWM

a) rýchly PWM režim (Fast PWM, Left-aligned PWM)

Z tabuľky 1 odpovedajú rýchlemu PWM režimu režimy 5, 6, 7, 14 a 15. Režim pracuje tak, že číta od BOTTOM (nuly) do TOP hodnoty a po dosiahnutí TOP sa hneď vráti na BOTTOM (viď priebeh TCNTn obrázok dole). Ak pri čítaní (vzostupne) narazí na hodnotu rovnú hodnote nastavenej do registra OCR1A(B) zmení stav príslušného pinu OC1A(B). Pri skoku z hodnoty TOP do BOTTOM sa stav príslušného pinu vráti do pôvodnej úrovne. Je to pekne vidieť na diagrame. Body na priebehu TCNTn sú vlastne hodnoty v registroch OCR1x a “maxima” priebhu TCNTn sú TOP hodnoty. Režimy 14 a 15 sú režimy s vrcholom TOP v registroch ICR1 a OCR1.

obr3

Obr.3 Časový diagram Fast-PWM

b) fázovo korigovaný PWM režim (Phase Correct PWM)

Sú to režimy: 1,2,3,10,11. Oproti PWM režimu má 2-krát väčšie rozlíšenie čo je dané tým že po načítaní na TOP sa hodnota nevráti skokovo na BOTTOM, ale postupne sa číta dole z TOP na BOTTOM. Zmena stavu pinu sa deje podobne ako u FastPWM – teda pri zrovnani registrov OCR1x a TCNT1.

obr4

Obr.4 Časový diagram PhaseCorrect-PWM

c) fázovo a frekvenčne korigovaný PWM režim (Center-aligned PWM)

obr5

Obr.5 Časový diagram Phase and Frequency Correct-PWM

Príklady

14_fast_pwm

15_phase_pwm_led

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Môžete použiť tieto HTML značky a atribúty: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>