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

[ATmega16][Bascom]+[dsd1794]+I2c=problem

januss73 20 Cze 2008 22:47 2183 4
REKLAMA
  • #1 5269754
    januss73
    Poziom 32  
    Witam jeszcze raz.
    Do tych co czytali poprzedni temat. Problemu jeszcze nie rozwiązałem. Więc od nowa. Tu jest nota DSD1794A

    http://www.ti.com/lit/gpn/dsd1794a

    Próbuje od tygodnia skomunikować ten układ z ATmegą. Raz zdarzyło mi się, że układ zaczął działać, i sczytał ze 2 razy poprawnie rejestry a potem zamarł.
    Na kod typu

    i2cstart
    i2cwbyte 152 ' to na pewno dobry adres

    wyrzuca err=1, czyli jak mniemam brak odpowiedzi ACK.

    Mój hardware to aktualnie szyna i2c podciągnięta przez 5K pod Vcc (5V) z ATmegi i szeregowo przed DSD1794 wstawione rezystory zabezpieczające 330ohm. Ponieważ jak przypuszczam poprzednie 2 układy spaliłem, a właśnie zabieram się za lutowanie następnego chcę spytać o rzeczy co do których mam wątpliwości.
    1. Czy pin reset w DSD ma jakieś znaczenie odnośnie sterowania układem przez I2C? Co powinienem z nim wogóle zrobić? Podciągnąć do Vcc, ustabilizować jakimś kondensatorem czy jeszcze coś innego?
    2. Czy wstawienie jakiś 100ohm przed zasilanie DSD uchroni go przed spaleniem jakby znów poszło coś nie tak?
    3. Z którego napięcia najlepiej zasilić szynę i2c, 5V ATmegi czy 3V3 DSD?

    Ma ktoś może jeszcze jakiś pomysł dla czego poprzednie układy jak się domyślam poszły z dymem?
  • REKLAMA
  • REKLAMA
  • #3 5270072
    januss73
    Poziom 32  
    Dobre pytanie...
    Jeśli te te 1024 cykli dotyczy SCL to z całą pewnośią, jeśli SCK to nie. Mam przez to rozumieć, że bez podania zegara sygnału audio przetwornik wogóle się nie załączy???
  • REKLAMA
  • Pomocny post
    #4 5270086
    Balu
    Poziom 38  
    Cytat:
    Figure 26 shows the external reset operation and timing. The RST pin is set to logic 0 for a minimum of 20 ns. The
    RST pin is then set to a logic 1 state, thus starting the initialization sequence, which requires 1024 system clock
    periods. The external reset is especially useful in applications where there is a delay between the DSD1794A power
    up and system clock activation.


    Dodano po 42 [sekundy]:

    Zwłaszcza to :
    "thus starting the initialization sequence, which requires 1024 system clock
    periods"

    RST robi to samo co POR.
  • #5 5270981
    januss73
    Poziom 32  
    To chyba już wiem skąd te problemy. Wszystkie wyjścia z odbiornika (dir9001) są ttl, a sck to wyjście cmos o, jak mi pokazał oscyloskop, amplitudzie jakieś 0V05. Przy takich napięciach i połączeniu płaskim kablem można zapomnieć, że to zadziała. A teraz chyba spaliłem z kolei odbiornik, bo nie podaje już nawet tego mizernego zegara.
    W każdym razie jak jeszcze podawał atmega nawet sczytywała jakieś wartości z rejestrów DAC'a tyle, że zwykle niepoprawne, ale przynajmniej już nie 255 ale jak mniemam błędy te wynikały z zakłóceń na SCK.
    Na razie wielkie dzięki Balu, jak będę miał trochę czasu będę kombinować dalej, podłączę zegar krótkim kablem ekranowanym i zobaczymy co z tego wyjdzie. No ale najpierw muszę znowu zamienić się w krasnala i polutować dir9001.
REKLAMA