DDS sinewave generaattorin kanssa PIC

A

atferrari

Guest
Kaksi sinewave generaattorit,
joista jokainen toteuttaa mukaanpääsyä PIC 16F84A, omat näppäimet ja tuotoksen kautta PORTB,
aikovat T-2R verkkoon.A 4 napainen suodatin täyttää piiri.Molemmat ohjaavat yhteistä 4 MHz kello sekä käynnissä TÄSMÄLLEEN samaa ohjelmistoa.

Kussakin generaattori jälkeen periaate on DDS, yksi arvo, PHASE_INC (3-bytes) on toistuvia lisätty joka PHASE_ACCUMULATOR (3-bytes samoin).BITS b6: b0, että akku
on MSB käytetään lukea etsiä taulukosta, jossa on välttämätön arvot 1-128 ja B7 että MSB käytetään tiedä milloin laskea täydennys.

Jos haluat vaihtaa taajuuden, withs avaimet "FREQ-UP" ja "FREQ_UP",
voin lisätä / vähennys PHASE_INC arvo yksiportainen vaiheet (kyllä, yksi kerrallaan.)

Kaikki toimii odotetusti lukuun ottamatta yhtä asiaa: Jos vaihdella PHASE_INC yhdessä niistä mitään axtent ja yritä saada sen alkuperäisen taajuus lisäämällä / vähentämällä PHASE_INC, on lähes mahdotonta saada alkuperäinen arvo uudelleen, tosin hyvin, hyvin lähellä .

Vain siinä tapauksessa, huomioikaa:

a - Molemmat generaattorit riippumatta tarkastetaan osoittautunut oltava riittävän vakaita, että pitkällä aikavälillä.Ne alkavat samalla PHASE_INC arvoon, joten niiden taajuudet vastaavat toisiaan 100% ja pysyä näin ikuisesti.Se
on syy yhteisen kellon ja se toimii OK.

b - mukaan teoriassa käyttäen yksikköarvo toimenpiteet, ennemmin tai myöhemmin minun pitäisi saada jälleen PHASE_INC alkuperäinen arvo, mistä aloitettiin, että on ensimmäinen taajuus (mathcing uudelleen muiden generaattori).Ohjelmiston olen sisällyttänyt riittävästi viivästyksiä tehdä yksiportainen muutoksia PHASE_INC tuskallisen hidasta varmistaminen on sujuva valvonta muutokset.Simulaatio osoittaa, että PHASE_INC korotetaan / pienentynyt yhdellä, joka kerta.(?)

c - Olen vaihtoehto kautta näppäimistö, jossa voi vaihtaa PHASE_INC erilaisia kiinteitä arvoja.Doing että molemmat generaattorit, saan jälleen matching (ja vakaa) taajuuksien tuotoksesta.Se on ylös / alas-asia, että rauniot kaiken.

Please, voi joku kertoa minulle, jos olen overlooking jotain liian ilmeinen koskevat DDS-periaate
otetaan huomioon, että ongelma ilmenee vain, kun voin vaihtaa yksi niistä joko ylös-tai alaspäin.

Ohje todella arvostaa.(Toivon, että voisin selittää tämän lyhyempää tekstiä! - Anteeksi)

 
Analog Devices on hyvä valinta DDS-sirut, jotka on melko helppo liitäntää PIC.Esimerkiksi AD9851.

 
HI

Voin yrittää auttaa sinua - tarve nähdä koodi

Voitko lähettää koodi - lataa vain, jos kirjoitan sen C: n tai muiden HLL

ei voi auttaa, jos kirjoittaa koodin Assembly

Kaikki parhaatBobi

 
ehkä löydät inspiraatiota tässä:
http://www.myplace.nu/avr/minidds/index.htm

 
Ongelmaa ei ratkaista, mutta selkeästi.

Lisättyäsi puuttuvat testauksessa, LSB on PH_INC nyt tiedän, että minun on lisättävä viivettä, jotta vältettäisiin useiden "kasvaa" tai "lasku" toimista kohti työntöpalvelut on painiketta.

Olen iloinen, tietää se ei ole minun vika ymmärtämään DDS-periaatteessa, mutta vain ohjelmistoa on parannettava.

 

Welcome to EDABoard.com

Sponsor

Back
Top