Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

2xAD9850 - dziwne przesunięcie fazy

17 Mar 2008 08:06 1391 3
  • Poziom 12  
    witam
    Mam dwa dds'y AD9850 połączone równolegle do jednego kwarcu. Wszystko to jest sterowane z 89c4051. Program sterujący napisany w Bascom'ie. Urządzenie ma generować dwa sygnały: drugi przesunięty względem pierwszego o 45°, 90°, 180° (no i zgodne czyli 0°). Link do dokumentacji AD9850. Tak wyglądają procedury wysyłania danych do układów AD9850:
    Code:

    dana alias p3.7               'wszystkie ustawione jako wyjścia
    Fq_ud alias p3.6
    W_clk1 alias p3.5
    W_clk1 alias p3.4
    '-----------------------------------------'
    '        Wysylanie danej do DDS1      '
    '-----------------------------------------'
    Sub Wyslij1
       Set Fq_ud
       nop
       nop
       nop
       nop
       Reset Fq_ud

       For A = 0 To 31
       Dana = Frq.a
       Set W_clk1
       nop
       nop
       Reset W_clk1
       nop
       nop
       Next A

       For A = 0 To 7
       Dana = 0
       Set W_clk1
       nop
       nop
       Reset W_clk1
       nop
       nop
       Next A
    End Sub
    '-----------------------------------------'
    '       Wysylanie danej do DDS2           '
    '-----------------------------------------'
    Sub Wyslij2
       For A = 0 To 31
       Dana = Frq.a
       Set W_clk2
       nop
       nop
       Reset W_clk2
       nop
       nop
       Next A
    ' czesc odpowiedzialna za konfiguracje i ustawienie przesunięcia między sygnałami
       For A = 0 To 2       '3 bity konfiguracyjne ustawiam na 0
       Dana = 0
       Set W_clk2
       nop
       nop
       Reset W_clk2
       nop
       nop
       Next A

       For A = 0 To 4         'część odpowiedzialna za ustawienie przesunięcia - 5 bitów
       Dana = Kat.a
       Set W_clk2
       nop
       nop
       Reset W_clk2
       nop
       nop
       Next A

       Set Fq_ud
       nop
       nop
       nop
       nop
       Reset Fq_ud
    End Sub

    Układ generuje przebiegi o prawidłowej częstotliwości (częstotliwość prawidłowa w całym przedziale generowanej częstotliwości:0-30MHz) i prawidłowej w fazie tylko dla 0° (sprawdzałem na oscyloskopie - krzywe Lissajous).
    Przesunięcie wyznaczam wg wzoru
    Code:
    φ=(π/16)*faza gdzie  faza=b0*1+ b1*2+ b2*4+ b3*8+ b4*16

    To jest pierwszy problem: nie mogę uzyskać prawidłowego przesunięcia. Kolejny problem to dziwne przesuwanie fazy wraz ze wzrostem częstotliwości generowanego sygnału i niema znaczenia czy na wyjściu jest filtr czy go niema. tak od ok 1MHz i w gorę zmienia sie faza generowanego sygnału tzn następuje przesunięcie mimo iż w urządzeniu jest ustawione 0°. Przy częstotliwości 19MHz jest już 90°. Ostatnim problemem jest zmniejszanie się amplitudy generowanego sygnału. Od częstotliwości ok 2MHz amplituda zaczyna maleć. Przy 20MHz wynosi już ok 300mV. Może użyć ARW - jeśli macie jakieś propozycje to piszcie. Jeżeli ktokolwiek miał podobne problemy lub wie jak sie z nimi uporać to proszę o pomoc, ja już 3 miesiące siedzę nad tym problemem i nie mogę go przeskoczyć.
  • Poziom 12  
    Muszę mieć dwa sygnały gdzie jeden będzie przesuwany względem drugiego o kąty które podałem wyżej. Mogę to zrobić również na jednym AD9850 i przesuwniku fazowym, ale czy ktoś może mi doradzić przesuwnik fazowy który umożliwi mi przesunięcie sygnału do 30MHz bez jakichkolwiek zniekształceń i co najmniej o te katy które podałem wyżej. Najlepiej aby była możliwość cyfrowego sterowania z µP. Będę potrzebował również sygnały prostokątne o tych częstotliwościach co sygnały sinusoidalne. W AD9850 wykorzystam komparator i uzyskam prostokąt, ale będzie mi potrzebny jeszcze jeden do podłączenia go na wyjściu przesuwnika. Czy ktoś zna taki który mogę wykorzystać do 30MHz?? Bo potrzebuję 4 sygnałów "parami zgodnych" - jedna para sin i prostokąt i druga również teki zestaw.
  • Poziom 1  
  • Poziom 12  
    Urządzenie uruchomione. Temat uważam za zamknięty.