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 w 2025? 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 9 kwi 2025, o 07:20


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
    Autor Wiadomość
    PostNapisane: 5 cze 2013, o 08:29 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 12 lut 2013
    Posty: 36
    Lokalizacja: Nowy Sącz
    Pomógł: 1

    Witam wszystkich :)
    Jako że z programowania jestem słaby, PurePatch jest dla firm, piszę w tym dziale tzn. Bascom- jedyny język który rozumiem :)
    Jako DAC posłuży mi układ PCM5122. Od 75 strony zaczyna się magia. No dobra, może nie magia, ale tutaj prosił bym o wytłumaczenie.
    Karta katalogowa

    Wszystkie dane były by wysyłane poprzez I2C -wydaje mi się że jest to łatwiejsze niż wysyłanie po SPI.
    Przejdźmy teraz do sedna. Poniżej mamy wykaz rejestrów.

    Obrazek

    Interesują mnie tylko Page 0 i Page 1.
    Jak wygląda struktura?

    Obrazek

    Powyżej mamy przykład- Page 0, Rejestr 4.
    I chcę teraz odczytać PLCK, 4-ty bit. Jak to zrobić? Jak to wszystko napisać?
    Poniżej kawałek kodu, do odczytu.
    Kod:
    I2Cstart
    I2Crbyte
    I2Cstop

    Jest to jednak odczyt wartości bajtowych. Jaki wynik otrzymam w uP? Co z bitami które są zarezerwowane? Pojawią się tam zera?
    Jak adresować pozostałe rejestry?
    Wielkie dzięki :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 cze 2013, o 17:19 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    Musisz najpierw wybrać rejestr, dokonując zapisu, a potem odczytać z niego dane. Dodatkowo jak chczesz zmienić stronę (Page) to kolejno wybierasz rejestr 0 do zapisu, a potem wysyłasz adres strony i dopiero wtedy masz do niej dostęp. Adres układu to 10011(ADR2)(ADR1)(R /W) i dla zerowych ADRx wynosi 152 do zapisu i 153 do odczytu. Monżna odczytywac kolejno rejestry ustawiająć 1 bit podczas wyboru adresu.
    Składnia: [ Pobierz ] [ Ukryj ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Z wyborem strony to będzie pewnie tak:
    Składnia: [ Pobierz ] [ Ukryj ]
    język basic4gl
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Jak dla mnie to bity zarezerwowane mogą mieć jakieś wartości i nie należy ich zmieniać tzn. że należy odczytać rejestr zmienić bity które nas interesują i zapisać z powrotem.


    Autor postu otrzymał pochwałę

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 cze 2013, o 18:19 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 12 lut 2013
    Posty: 36
    Lokalizacja: Nowy Sącz
    Pomógł: 1

    Dzięki za odpowiedź.
    Faktycznie, adresowanie jest pokazane w tabeli 49 (72 strona).
    W tabeli 50, czyli pojedynczy zapis mamy tak, wg. kolejności:
    1. St - start transmisji
    2. Slave address - adres zapisu- 152
    3. R/W - zapis - 0 (dla tego Slave address 152)
    4. ACK - potwierdzenie ze strony PCM
    5. DATA - wybór strony ( od 0 do 255 ) - o tym napiszę jeszcze niżej.
    6. ACK - potwierdzenie ze strony PCM
    7. DATA - zapis ustawień
    8. ACK - potwierdzenie ze strony PCM
    9. ACK - j.w.
    10. Sp - stop transmisji

    Z wyborem strony będzie wg. mnie inaczej.
    Page 0- mamy 120 "adresów", potem zaczyna się page 1, od jedynki do dziewięciu. Później page 44 (tam już nie za bardzo rozumiem).
    Jak chcę zapisać coś do 4-tego rejestru (PLL Lock Flag, PLL enable) muszę wpisać- w punkcie 5-tym, co pisałem wyżej: 00000011 (cztery). Czekam na potwierdzenie, i teraz dopiero zapisuję wartości danych bitów dla danego rejestru 8-mio bitowego (ten screen co podałem za przykład).

    Zastanawia mnie teraz jedna rzecz. Sumując te "adresy" 120 + 9 = 129- to jest suma Page 0 i Page 1. Dodając Page 44, która składa się z 74 adresów, w sumie daje to 203. Brakuje więc 52 rejestrów 8-mio bitowych. Fakt, w tym Page 44 opisany jest tylko jeden przykład. Ponad to, tam mamy już rejestry 128 bitowe- i, wg. mnie, będą to rejestry konkretnie pod PurePatch Studio.
    Z 2giej strony- liczba 128 jest zbyt mała, a 203 leży w przedziale do 255. Więc chyba po prostu nie ma tych rejestrów. Dobrze myślę? ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 cze 2013, o 18:52 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    Przemek6 napisał(a):
    5. DATA - wybór strony ( od 0 do 255 ) - o tym napiszę jeszcze niżej.
    Nie. Wyraźnie pisze reg addr czyli adres rejestru. Nie należy mylić rejestru ze stroną.
    http://www.ti.com/lit/ds/symlink/pcm5122.pdf napisał(a):
    In any page, register 0 is the Page Select Register. The register value selects the Register Page from 0 to 255
    for next read or write command.

    Na każdej stronie rejestr 0 jest Rejestrem Wyboru Strony. Wartość rejestru wybiera Stronę Rejestrów z zakresu 0 do 255.

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 cze 2013, o 19:11 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 12 lut 2013
    Posty: 36
    Lokalizacja: Nowy Sącz
    Pomógł: 1

    No właśnie, umknęło mi "In any page", i "zakodowałem" sobie, że rejestr 0 jest do wyboru rejestrów- fakt, jest to trochę nielogiczne... .
    Przeczytałem kilka razy Twój pierwszy post i więcej rozumiem, niż nie rozumiem :)
    Wielkie dzięki- myślałem że będzie to całkowicie wykraczało poza moje rozumowanie- wówczas nie zabierał bym się za to. Teraz tylko PCB wykonać, odpalić- wówczas odezwę się ponownie.
    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: 5 ] 

    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