Softveres PLL

Moczik Gabor progzmaster at freemail.hu
Mon Mar 29 18:42:09 CEST 2004


Hi!

(kicsit hosszu...)

Egy eleg prmimitiv szoftveres pll szeruseggel szorakozok.
A feladat:
Van egy SYNC jel a prociba vezetve az egyik megszakitas bemenetre. Ezzel a 
SYNC jellel megyegyezo frekvenciaju kvazi-szinuszos jelet kell eloallitanom, 
a SYNC jel felfuto elehez kepest megadott fazisszoggel.
A SYNC jel nevlegesen 50Hz, de ra kell tudni pontosan huzni.

PIC16F877-en keszul, es eddig ott tartok, hogy van egy 64 elemu sintable, 
ami a megfelelo szinusz jelet tartalmazza. Beallitok egy timert (TMR1) ugy, 
hogy kb. a SYNC jel frekvenciajanak 64 szeresevel fusson, ez 3.2kHz. Ehhez 
kell egy PRELOAD ertek, amit a timer tulcsorulasakor betoltok, hogy ne 0-rol 
szamoljon, hanem innen. Ennek valtoztatasaval tudom viszonylag finoman 
valtoztatni a frekit.
Ugy szinkronizalok, hogy a SYNC jel a CCP1-re megy, ami felfuto elnel 
letarolja a TMR1 pillanatnyi erteket. Ezt osszehasonlitom az elozo letarolt 
ertekkel. Ha most kisebb, akkor lassuak vagyunk, novelem 1-el a preload 
erteket. Ha elozoleg kisebb volt, akkor csokkentem. Ez eddig mukodik, szepen 
rahuz a sync jel frekijere.
Csakhogy: ekozben a kimeno jel fazisa szep lassan vandorol a SYNC jelhez kepest.

Hogy lehetne a fazist is valamennyire stabil erteken tartani? Kis drift nem 
szamit, csak ne masszon el, es ne kelljen nagy fazisugrasokat betenni.
Illetve ha finoman alrebb szeretnem tolni a fazist az egyik iranyba, azt 
hogyan tudom megoldani (freki termeszetesen maradjon kb. jo)?

Leirom mi a teljes szitu, hatha segit.
50Hz halozati feszhez kell hozzaadni egy 50Hz korrekcios feszt, a ketto 
kozotti fazist ugy szabalyozva hogy a kimeneti fesz stabil legyen.
Ez meg egy kerdest felvet: Ha pl. novelni kene a korrekcios feszt hogy 
stabilan maradjunk, akkor honnan tudom hogy a fazist merre kell tekerni, es 
mennyit?

Na, ha valakinek csillapithatatlan gondolkodasi vagya van, irjon! :-)

-- 
((( Móczik Gábor )))--((( hu <- DOT <- freemail <- AT <- progzmaster )))
((( Debian unstable )))-((( Kernel 2.4.20 )))-((( Celeron466 / 128Mb )))



More information about the Elektro mailing list