środa, 2 stycznia 2013

Generator funkcyjny DDS - ATMEGA16

Generator funkcyjny DDS 1Hz - 65500Hz opaty o układ ATMEGA16.

Generator powstał na bazie projektu - http://www.scienceprog.com/avr-dds-signal-generator-v20

Cechy podstawowe:
    BNC1 - sygnał TTL wysokiej częstotliwości 1,2,4 lub 8MHz
    BNC2- sygnał DDS od 1Hz do 65534Hz z krokiem 1Hz, 10Hz, 100Hz, 1kHz, 10kHz
    Offset +/- 5V
    Amplituda od 0 do10V
    zasilanie: +/-12V, 5V

Przebiegi:

    prostokąt
    sinus
    trójkąt
    piła
    piła odwrócona
    EKG
    szum

Posiadając Atmegę jedynie w smd, szukałem jednak rozwiązania pod swój układ, i tak trafiłem na rozwiązanie Rosjan - http://cxema.at.ua
Jednak i to rozwiązanie borykało się z poważnymi problemami.
Pierwsza sprawa to zasilanie, urządzenie powinno być małe, przenośne, więc zaproponowane zasilanie symetryczne napięciami rzędu 12V (+ / -) zupełnie nie odpowiadało mojej koncepcji.
Kolejna sprawa to fakt że rozwiązanie tego generatora ogólnie pozostawia wiele do życzenia, wszystkie zrzuty ekranu przedstawiają wykresy z zakresu nie przekraczającego kilku kHz. Mimo deklarowanej pracy do ponad 60kHz, w wielu miejscach w necie możemy poczytać jak to urządzenie działa fatalnie na wyższych częstotliwościach.

Po kilku browarach doszedłem jednak do wniosku, że można wykonać ten generator odrobinę inaczej aby spełniał moje oczekiwania.

1. Pozbycie się konieczności zasilania symetrycznego - zastosowanie układu max232 w roli przetwornicy z 5V na +9V / -9V (rozwiązanie znane mi z APRSu :)


2. Fatalna praca układu na wyższych częstotliwościach - Problem okazał się dość złożony, jednak głównym winowajcom okazał się zastosowany wzmacniacz operacyjny LM358 który zupełnie się nie nadaje to tego typu pracy. Zastosowanie wzmacniacza TL062, dało w rezultacie stałe napięcie wyjściowe sygnału (sinus) w całym zakresie generowanych przebiegów. Reszta zmian to drobna kosmetyka.


Finalna wersja PCB mojego Generatora DDS - z odpowiednimi zmianami.

Tak to powstawało:





Generator DDS w obudowie z akumulatorem.


Efekt końcowy:
Cechy podstawowe:
    BNC1 - sygnał TTL wysokiej częstotliwości 1,2,4 lub 8MHz (jedynie jako ciekawostka, uzyskany sygnał jest lichy)
    BNC2- sygnał DDS od 1Hz do 65534Hz z krokiem 1Hz, 10Hz, 100Hz, 1kHz, 10kHz
Amplituda od 25mV do10V (celowo dobrany rezystor aby nie uzyskiwać niższych sygnałów od min. ustalonego)
 zasilanie:  7V - 15V (w moim przypadku zestaw akumulatorów LI-ion 8.2V)

Przebiegi:

    prostokąt
    sinus
    trójkąt
    piła
    piła odwrócona
    EKG
    szum

Podsumowując
Generator DDS ATMEGA16 jest ciekawym rozwiązaniem dla bawiących się m.cz, nie jest wolny od wad jednak za cenę 30-40zł jest wart uwagi. Ja swój stary fabryczny generator już komuś podarowałem, ten zupełnie mi wystarczy. Waży 30x mniej, pobiera 30x mniej prądu i zajmuje o wiele mniej miejsca.

Kilka pomiarów przy 1kHz



Kilka przebiegów 25khz




Przebiegi 50khz




DDS Atmega16

2 komentarze:

  1. Witam szanownego Pana , zbudowałem owy generator ,lecz chciałem się zapytać czy pan tylk wgral plik main.hex do ATmegi16 ? ja wgralem i ustawilem fusy a na wyswietlaczu nic sie nie wyswietla ;//

    OdpowiedzUsuń
  2. Żadnych zmian w oprogramowaniu nie dokonywałem, jedyne co mi nie odpowiadało to zasilanie symetryczne, co po resztą zmieniłem jak wyżej. Wykonałem łącznie dwa egzemplarze jednak z żadnym nie miałem problemów z uruchomieniem.

    OdpowiedzUsuń