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

[AD1877]Komunikacja w SLAVE mode

SoKeks 20 Lip 2009 13:19 1362 4
  • #1 6800818
    SoKeks
    Poziom 11  
    Witam.

    Chciałbym podłączyć przetwornik AD1877 ( www.analog.com/static/imported-files/data_sheets/AD1877.pdf ) do mikroprocesora AT91SAM7SE256 ( www.atmel.com/dyn/resources/prod_documents/6222s.pdf ), szczęśliwie procesor ten potrafi bez problemu skomunikować po I2S, więc komunikacja, gdy MK jest w SLAVE mode, a ADC w MASTER mode nie jest dużym problemem. Chciałbym jednak skomunikować ze sobą te dwa układy, gdy to MK jest w MASTER mode, a ADC w SLAVE mode. Niestety datasheet AD1877 nie ma za dużo informacji, ale mówi wyraźnie, że sygnał CLKIN, LRCK, BCLK i WCLK muszą pochidzć z jednego źródła - ale jak to zrobić, gdy sygnał CLKIN ja podaję do AD1877 z zewnętrznego generatora, a sygnał BCLK miałby pochodzić z MK? Czy muszę podać wtedy sygnał CLKIN do AD1877 też z MK? Czyli użyć jedno PWM jako zegar CLKIN? Problem też jest wtedy z częstotliwością, bo ze względu na wymogi AD1877 sygnał CLKIN to 11.2896 MHz lub 16.9344 MHz(próbkuje z f = 44.1 kHz) - a ja chciałbym, aby MK chodziło na maksymalnej prędkości czyli 55MHz. Czy ma ktoś wiedzę, jak to powinno być skonfigurowane?

    Z góry dziękuję za pomoc.
  • Pomocny post
    #2 6802156
    Tantalos
    Poziom 18  
    Najlepiej podaj ten sam sygnał zegarowy o częstotliwości z zakresu 11.2896MHz - 18.432MHz na uC i na ADC. PLLa w procku możesz skonfigurować tak, żeby chodził z pełną wydajnością.
  • #3 6805363
    SoKeks
    Poziom 11  
    Dzięki bardzo za pomoc! Mam do Ciebie jednak jeszcze takie wątpliwości:

    1. Mówisz, żeby podać sygnał z generatora i na MK i na ADC. A potem normalnie podłączyć interfejs komunikacyjny. W sumei ok, ale patrz, że sygnał zegarowy CLKIN przetwornika będzie podany bezpośrednio, a sygnał BCLK poprzez układy MK - czy to nie wprowadzi opóźnień, które będą w sprzeczności z faktem, że wszystkie sygnał zegarowe przetowrnika muszą pochodzić z jednego źródła?

    2. Jak rozwiązać kwestię potrzeby użycia 3 zegarów dla komunikacji? Przecież z modułu SSC mikrokontrolera mam dwa wyjścia zegarowe - dla synchronizacji danych (WCLK) i zegar dla kolejnych bitów (BCLK), nie mam trzeciego, czyli wejście/wyjścia na LRCK! Jak to widzisz?
  • Pomocny post
    #4 6806357
    Tantalos
    Poziom 18  
    1. ADC wymaga aby CLKIN = 256 (lub 384) * Fs do prawidłowego działania modulatora. BCLK to zegar sterujący przesyłaniem danych szeregowych, może być trochę opóźniony przez układy MK, ale powinien być z tego samego źródła, gdyż zegary z dwóch źródeł zawsze będą niedokładne względem siebie i będzie między nimi przesunięcie fazowe, a to będzie powodować tzw. jitter i mogą się wzajemnie zakłócać.

    2. WCLK jest potrzebny tylko w niektórych formatach danych audio. W I2S nie jest potrzebny. Wybór LRCK czy WCLK zależy od tego jak SSC w MK synchronizuje słowa.
  • #5 6806517
    SoKeks
    Poziom 11  
    1. W pełni rozumiem - dzięki!

    2. No w sumie zawsze znam format w jakim będzie transmisja i wiem, kiedy, w zależności od numeru taktu BCLK, będą podane bity danych. Czyli faktycznie wychodzi na to, że nie jest niezbędny dla SSC... Co innego LRCK, które we wszystkich trybach SLAVE dla AD1877 jest potrzebne do podania jako sygnał wejściowy.

    Czyli reasumując (popraw mnie jak się mylę) - w ramach najbardziej uniwersalnego rozwiązania proponujesz odrzucić możliwość komunikacji przez ten jeden tryb, kiedy WCLK też jest wejściem w ADC i jako synchronizację podłączyć LRCK, tak? Brzmi logicznie. Tak też zrobię!

    Dziękuję bardzo za pomoc.

    PS.: Tak do wiadomości. Chcąc poznać opinie innych i nie mogąc się doczekać Twojej odpowiedzi wrzuciłem też temat na dział mikrokontrolery, ale tu byłeś szybszy w transporcie informacji. Jeszcze raz dzięki.
REKLAMA