Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 24 lip 2025, o 00:32


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
    Autor Wiadomość
    PostNapisane: 25 cze 2017, o 17:43 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 15 lut 2016
    Posty: 259
    Lokalizacja: Norwegia
    Pomógł: 16

    Było już trochę powiedziane o układach syntezerów DDS z rodziny AD9850/51.
    Przyznam że jestem urzeczony tymi układami i ostatni rok czasu spędziłem z nimi wiele fajnych godzin.
    Na początku na bazie AD9850 chciałem stworzyć sobie swoją własną autorską przystawkę do oscyloskopu, która poszerzała by jego możliwości o coś w rodzaju wobuloskopu pracującego w zakresie od 100KHz do 50MHz. Jako miłośnik raczej wysokich częstotliwości, takie urządzenie mogło by pomóc mi w badaniu filtrów W.CZ oraz P.CZ i tym podobnych czynności.
    Porzuciłem jednak myśl o budowie przystawi do oscyloskopu i postanowiłem zbudować samodzielne taki właśnie analizator obwodów i filtrów W.CZ. W jednym z wątków przedstawiłem fragmenty moich zmagań z wyświetlaczem graficznym ST7920 który ma posłużyć do obrazowania wykresów pomiarowych w tym urządzeniu. Tutaj chcę przedstawić bibliotekę do właśnie układów DDS AD9850/AD9851.

    Może to głupie tworzyć bibliotekę do tak prostego układu, i ktoś z bardziej zaawansowanych powie że to przerost formy nad treścią.. Jednak dla mnie to są bardzo fajne informacje których rok temu nie mogłem znaleźć w internecie a przynajmniej podanych w prostej formie zrozumiałej dla takiego elmera jak ja.

    Układy AD985x to bezpośrednie syntezery częstotliwości które można sterować przez SPI. Można z nich zbudować dokładne generatory sinus i prostokąt z możliwością kontrolowania częstotliwości z dokładnością 1Hz. Prostota ich budowy jest wręcz niebywała. Jeżeli więc ktoś potrzebuje takiego generatora w którym będzie można płynnie zmieniać częstotliwość od niemal zera do 70MHz to zachęcam do sięgnięcia po nie, szczególnie że dostępne są w postaci modułów za śmieszne pieniądze.

    AD9850 i AD9851 to prawie takie same układy z tą różnicą że AD9850 generuje poprawnego sinusa do 50MHz natomiast AD9851 do 70MHz. Steruje się tymi układami w taki sam sposób, z małą różnicą. Otóż AD9851 wymaga nieco zmienionego bajtu konfiguracyjnego o którym jak zauważyłem bardzo wielu zapomina. W internecie jest sporo narzekających ludzi na rzekomo skopane układy które generują poprawny sinus tylko do 5MHz a powyżej produkują sieczkę.
    Problem tkwi właśnie w inicjacji tych układów. Reszta to już tylko przyjemna zabawa.

    Przedstawiam zatem moją elmerską bibliotekę, wypociny lamusa... czy co tam chcecie powiedzieć :)
    UWAGA ostatni bajt w funkcji SendSpi dla AD9850 powinien być 0x00 natomiast dla AD9851 0x01. Różnica ta wynika z tego że AD9851 sterowany jest zegarem 30MHz i ustawienie tego bitu powoduje włączenie mnożnika tej częstotliwości razy 6 co daje w efekcie 180MHz. Jeżeli o tym zapomnimy i to układ będzie taktowany 30MHz i generowany sinus przestanie praktycznie istnieć powyżej 5MHz.

    plik SP_AD9851.c
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Plik SP_AD9851.h
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    w powyższej bibliotece brakuje definicji zegara której z pewnych względów nie chciałem tam umieszczać. Jednak poniżej prezentuję komendy za pomocą których można wysłać żądaną nastawę do DDSa.
    Zegar w należy zdefiniować zależności od układu
    AD9850 125MHz (125000000)
    AD9851 180MHz (180000000)
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    komenda ustawiania częstotliwości
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    data to właśnie nastawa częstotliwości podana w Hz czyli
    1MHz / data=1000000
    30MHz / data=30000000
    40,261 853MHz / data=40261853
    itd :)

    Może prostackie ale ja nie znalazłem nigdzie w necie prostego (dla lamusa) opisu tych układów dla tego przedstawiłem to w ten sposób.

    Podane ustawienia sprzętowego SPI są dla Atmega32. bardzo ważne jest to że wysyłać dane trzeba LSB first. (DORD na LSB first)
    Powodzenia w zabawie z generatorkami.

    _________________
    SP2LUB - LA1BUA



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 cze 2017, o 09:05 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 15 lut 2017
    Posty: 368
    Lokalizacja: Gliwice
    Pomógł: 34

    Gratuluję zgrabnej biblioteki.
    Na liście swoich zadań mam te układy, a tu gotowiec na podorędziu.
    Na pewno wykorzystam, gdy już przyjdzie pora :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO