PWM na AVR wyzwalany zewnetrznie

Feb 21, 2004 4 Replies

Witam,



Potrzebuje zrobic pewien projekt i chcialem poradzic sie czy moje rozwiazanie jest wlasciwe/dobre/optymalne. Otoz, potrzebuje wykonac PWM, ktory wyzwalany jest wraz z przecieciem przez sinusoide 50Hz zera. Czas trwania impulsu PWMa to oczywiscie polowa okresu. Poniewaz cala aplikacja bedzie dosc skomplikowana, wykorzystam procesor Atmel AVR. Przeciecie przez sinusoide zera (dostane sygnal z urzadzenia zewnetrznego) spowoduje uruchomienie timera w trybie PWM. Czestotliwosc timera zostanie tak dobrana, aby czas trwania impulsu PWM wynosil ok. (lub dokladnie, jak sie da) polowy okresu sinusoidy. Dodatkowa sprawa to wypelnienie impulsu PWM



-- ale to juz nie bedzie problemem. Wazne zeby PWM startowal dokladnie wtedy, gdy sinusoida przecina zero -- stad ciagla synchronizacja PWM. Co myslicie o tym sposobie realizacji ?



Trix. PS. Czy w timerze zaimplementowana jest mozliwosc zerowania licznika pod wplywem impulsu zewnetrznego, czy trzeba to robic recznie (np. obsluga przerwania podania sygnalu na odpowiednia nozke procesora polegajaca na kasowaniu licznika) ?


Nie za bardzo wiem co potrzebujesz. Ale jesli chodzi ci o to jak to zrobic to na stronie atmela masz przyklad jak detektowac zero w sieci. Zobacz jak oni to rozwiazali - akurat robia to poprzez generacje przerwania.

Generalnie, chodzi mi o zrobienie PWM, ktory mialby czestotliwosc polowy okresu pradu przemiennego i byl wyzwalanym, gdy sinusoida przecina zero.

Trix.

formatting link
To by bylo dobre do PWM, ktory jest rzeczywiscie wyzwalany, gdy sinusoida przechodzi przez zero, ale mamy tu do czynienia ze stalym wypelnieniem, a ja potrzebuje zmienne (od 0 do polowy okresu sinusoidy).

trix.

Ale tutaj tylko uzywasz wejscia przerwania do wyzwolenia timera, ktory generuje juz impuls o dlugosci przez ciebie zaprogramowanej. Czyli chyba to o co ci chodzi ?

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required