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