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 10 cze 2025, o 04:42


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
    Autor Wiadomość
    PostNapisane: 2 kwi 2019, o 11:10 
    Offline
    Użytkownik

    Dołączył(a): 18 cze 2015
    Posty: 374
    Pomógł: 0

    Witam wszystkich.
    Proszę o pomoc w prawidłowym podłączeniu kostki DDS AD9952 do magistrali SPI Atmegi16.
    Wpadła mi w ręce taka kość i postanowiłem spróbować swoich sił i wysłać dane do dds-a w celu ustawienia jakiejś częstotliwości na początek. Zapoznałem się wstępnie z procedurą wysyłania słowa
    zawierającego informacje o żądanej częstotliwości. Pewnie będą schody do góry, ale od czegoś trzeba zacząć :D .
    Chcę skorzystać z obsługi magistrali spi z BB Pana Mirka.

    Na ten moment mam następującą konfigurację pinów Atmegi16:

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


    Następnie Wyprowadzenie pinów DDS, które powinienem podłączyć:

    Obrazek

    I/O UPDATE i RESET rozumiem, ale reszta nie do końca jest dla mnie jasna, a nie chcę czegoś sknocić. W związku z powyższym proszę o podpowiedź. Z góry dziękuję.

    Poprawiłem rys...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 kwi 2019, o 11:37 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 04 cze 2014
    Posty: 855
    Lokalizacja: pod Warszawą
    Pomógł: 58

    Przecież w nocie poniżej rysunku pinów które wstawiłeś masz tabelę z opisem co który pin robi i dlaczego ;)

    _________________
    Pomóżcie mi stanąć na nogi



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 kwi 2019, o 11:59 
    Offline
    Użytkownik

    Dołączył(a): 18 cze 2015
    Posty: 374
    Pomógł: 0

    Dzięki za odzew.
    No tak. Wszystko jest w nocie, ale nie zawsze jest to jasne dla każdego. Zresztą jest to moje pierwsze podejście do SPI. Co wyczytałem:

    I/O UPDATE odpowiada za zatwierdzenie zmian nowej częstotliwości. Nie wiem, czy dobrze to ująłem. Jeśli wyślę dane i nie podam sygnału na ten port, to nic się nie zmieni.
    SDIO. Jeśli korzystamy z magistrali 3 przewodowej, to jest to tylko wejście danych, a jeśli dwa przewody, to jest to transfer w obu kierunkach.
    SCLK to wejście zegarowa, taktowanie. W takt tego sygnału następuje wymiana danych.
    CS to wybór, czy korzystamy z jednego czipa, czy więcej. (Tu pewnie muszę ustalić)
    RESET to reset.

    Natomiast w Atmedze mam MOSI MISO....



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 kwi 2019, o 12:53 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2016
    Posty: 1173
    Lokalizacja: Kraków
    Pomógł: 94

    Jak ja to rozumiem:
    AD9952 -- ATmega
    RESET -- PB2
    I/O UPDATE -- PB3
    CS -- SS - wybór urządzenia do komunikacji. Pin dedykowany dla sprzętowego SPI, ale możesz wybrać inny pin
    SDIO -- MOSI - wejście danych dla AD9952, a MOSI to Master Output Slave Input. Atmega jest Masterem
    SDO -- MISO - analogicznie jak wyżej.
    SCLK -- SCK - wejście zegarowe AD9952, sygnał generowany przez Atmegę.

    Nie wiem, czy dobrze rozpisałem, ale wydaje mi się, że tak będzie :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 2 kwi 2019, o 15:56 
    Offline
    Użytkownik

    Dołączył(a): 18 cze 2015
    Posty: 374
    Pomógł: 0

    Dziękuję Marhef.
    Nie zdążyłem odpisać, a musiałem się ewakuować do domu. Jutro zobaczę. Muszę jeszcze trochę prześledzić temat tego DDS-a w nocie i zasadę działania ISP i jak to się wszystko ma do siebie. Coraz więcej rozumiem, ale muszę jeszcze trochę popracować, żeby nie zamęczać postami co chwilę. Pozdrawiam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 kwi 2019, o 13:43 
    Offline
    Użytkownik

    Dołączył(a): 18 cze 2015
    Posty: 374
    Pomógł: 0

    Witam ponownie.
    No więc udało mi się jakoś odpalić DDS-a. Działa sterowanie po SPI (hardware spi). Nie mogę zmieniać częstotliwości póki co. Jak wklepię jakąś w main.c, to wysyła słowo FTW i wychodzi
    z DDS-a. Na początek utworzę kilka zmiennych freq... i spróbuję w pętli for przełączać przyciskiem w pętli, bo tak to muszę bez przerwy kompilować i wgrywać. Na ten moment i tak bardzo się cieszę, że wystartowało :D . Dzięki jeszcze raz Marhef.
    Jedyne, co mi trochę nie pasuje, to mała odchyłka. Jeśli generuję 1MHz, to wychodzi 1,000,006. Jak generuję 30MHz, to generuje 30,000,140. Muszę sprawdzić z innym miernikiem-może jutro.

    Liczę tak:

    2^32=4294967296

    Dalej (4294967296 * częstotliwość chciana) / taktowanie DDS-a, czyli 400MHz

    Czyli (4294967296 * 30,000,000) / 400,000,000 ---> przecinki tylko dla zobrazowania w poście. No i miernik częstotliwości wyświetla 30,000,140.

    Nie wiem, czemu tak się dzieje, ale będę kombinował. Może ktoś coś doradzi ???. Pozdrawiam.



    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: 6 ] 

    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