logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Mini DDS - prosty generator funkcyjny

Gordios 11 Lut 2011 13:09 10739 6
  • Mini DDS - prosty generator funkcyjny

    Mini DDS (Direct Digital Synthesis)

    Często potrzebny jest prosty generator funkcyjny dla wygenerowania określonej częstotliwości. Generatory komercyjne są drogie, więc najtaniej jest zbudować generator samemu.
    Niniejszy projekt przedstawia bardzo prosty generator typu DDS składający się z układu 2313 i sieci rezystorów.


    Schemat jest bardzo prosty. Zawiera cztery główne części. Regulator/przełącznik napięcia, interface RS232C, układ scalony 2313 I sieć rezystorów R2R. Sieć rezystorów R2R podłączona jest do portu B układu scalonego 2313 tworząc prosty przetwornik cyfrowo-analogowy umożliwiający osiągnięcie 256 poziomów napięcia wyjściowego. Ani siec rezystorów ani drivery portu układu 2313 nie mają idealnej liniowości, ale układ działa bardzo dobrze. Ale prawdopodobnie będzie potrzebny stopień buforujący, ponieważ impedancja wyjściowa jest stosunkowo wysoka (dziesiątki kiloomów).
    Układ MAX603 obsługuje funkcje regulatora napięcia a także procedury włączania i wyłączania zasilania. Sterowany jest przy pomocy sygnału DTR interface’u szeregowego. Jeżeli zostanie wyłączony program sterujący w komputerze PC, to MiniDDS również wyłączy się, oszczędzając w ten sposób baterię.
    Oprogramowanie napisane zostało w assemblerze i jest bardzo krótkie. Podstawową jego cechą jest szybkość wykonywania się głównej pętli. To jest serce syntezy. Dokładnie mówią, sercem syntezy jest 7 wierszy kodu w assemblerze tworzących pętle główną.
    Pozostała część kodu to kod komunikacyjny i tabele obwiedni.
    Akumulator fazowy korzysta z 24 bitów co określa rozdzielczość częstotliwości wyjściowej. Maksymalna częstotliwość I rozdzielczość jest również zależna od częstotliwości kwarcu:

    Rozdzielczość = fCPU/150994944 oraz
    fOut = Akumulator * Rozdzielczość

    W przypadku kwarcu o częstotliwości 11.059200 MHz, rozdzielczość wyniesie 0.073242188 Hz.

    Aby uzyskać częstotliwość wyjściową 1 kHz, należy użyć wartość akumulatora fazowego równą 0x003556 (13654 dziesiętnie).
    Daje to częstotliwość wyjściową 1000.048835 Hz. Jest to wystarczająco dokładne dla prac hobbystycznych.
    Komunikacja jest bardzo prosta i pozwala wyłącznie na zapis i odczyt wartości akumulatora fazowego oraz na wybór kształtu fali.
    Mini DDS - prosty generator funkcyjny
    Mini DDS - prosty generator funkcyjny
    Okno programu sterującego pracującego w systemie Windows.


    Mini DDS - prosty generator funkcyjny Mini DDS - prosty generator funkcyjny Mini DDS - prosty generator funkcyjny

    Caly opis projektu dostępny jest na http://www.myplace.nu/avr/minidds/index.htm

    Fajne? Ranking DIY
    O autorze
    Gordios
    Poziom 18  
    Offline 
    Gordios napisał 395 postów o ocenie 269. Jest z nami od 2010 roku.
  • #3 9138067
    mkpl
    Poziom 37  
    Ktoś wie jaką max częstotliwość idzie uzyskać z tego układu? Sam attiny to i na 24MHz ruszy
  • #4 9138503
    Konto nie istnieje
    Konto nie istnieje  
  • #5 9139347
    morph13
    Poziom 25  
    Testowałem to rozwiązanie, z sinusem nie ma problemy z prostokątem i pilą już porażka powyżej 20-30kHz.
    Do zastosowań audio (tylko sinus) spokojnie wystarcza.
  • #6 9139962
    Konto nie istnieje
    Konto nie istnieje  
  • #7 9149428
    morph13
    Poziom 25  
    pandy napisał:
    Uzupelnic uklad buforem z rodziny HC, zmniejszyc wartosc rezystorow w drabince, podniesc czestotliwosc taktowania i powinna sie poprawic jakosc.

    Prościej. Zastosować scalony przetwornik DA (zawiera w sobie wszystko co wymieniłeś oraz WO na wyjściu, wyjście prądowe lub napięciowe). Widziałem już gdzieś w necie takie rozwiązanie na bazie tego "programowego DDS-a", mała zmian w kodzie i wartości przelicznika częstotliwości.

    Możesz tez zobaczyć mój projekt GCPA-01 czyli Generator Cyfrowych Przebiegów Arbitralnych
REKLAMA