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 23 maja 2025, o 11:45


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 23 ] 
    Autor Wiadomość
    PostNapisane: 18 lip 2022, o 17:12 
    Offline
    Użytkownik

    Dołączył(a): 05 sie 2019
    Posty: 92
    Pomógł: 0

    Witam,
    chciałem stworzyć sobie matrycę na układach 74HC595.
    Wiersze oraz kolumny mają mieć osobne, niezależne układy 74HC595.
    Czy jest możliwość aby za pomocą jednego SPI ale dwóch różnych SS tym sterować?
    MOSI i SCK pozostaje dla obu takie samo, natomiast inne jest SS.
    Program który chciałem stworzyć poniżej:

    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.


    Niestety jak wgrywam taki program, to na wyjściach z 74HC595 mam stan 0. Nie mam kontroli nad zmianami stanów.
    Czy jest możliwe zrobić to tak jak sobie wymyśliłem czy za bardzo kombinuję i jest to nie do przeskoczenia?
    Z góry dziękuję za wszelką pomoc.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lip 2022, o 21:01 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2014
    Posty: 1034
    Lokalizacja: Trójmiasto
    Pomógł: 190

    Johnnny94 napisał(a):
    Czy jest możliwe zrobić to tak jak sobie wymyśliłem czy za bardzo kombinuję i jest to nie do przeskoczenia?
    Tak, można to tak rozwiązać. Natomiast ciężko powiedzieć co robisz źle. Nawet nie podałeś jaki masz uC, nie wspominając już o jakimś schemacie połączeń, być może źle obsługujesz rejestry (nie wiadomo co i gdzie masz do rejestrów podpięte). Jedyny być może błąd jaki widzę to w kodzie w funkcjach wysyłających dane po SPI na koniec banglujesz jednym pinem, tylko że z makrodefinicji wynika że jeden jest na PD6, a drugi na PC5 natomiast w obu przypadkach operujesz na porcie D!? Natomiast bez schematu nie wiadomo czy to błąd, czy literówka w kodzie...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lip 2022, o 22:28 
    Offline
    Użytkownik

    Dołączył(a): 05 sie 2019
    Posty: 92
    Pomógł: 0

    To fakt, tam jest literówka.
    Procesor to ATmega168. Schematu nie mam natomiast mogę powiedzieć jak to jest podłączone.
    Do QA-QH mam podłączone tranzystory którymi mam sterować.
    10 nóżka 74HC595 podłączona do 5V.
    SCK z procesora do SCK 74HC595 (nóżka 11).
    RCK (12 nóżka) 74HC595 podłączona do PC5 mikroprocesora, natomiast drugiego układu 74HC595 do PD6 mikroprocesora.
    13 nóżka 74HC595 podłączona do GND.
    Nóżki 8 i16 to zasilanie i zastosowany tam kondensator 100n.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lip 2022, o 23:04 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1973
    Lokalizacja: Lipsko
    Pomógł: 125

    A mnie bardziej zastanawia jaki cel przyświeca takiemu sterowaniu? Dlaczego nie na wspólnych wszystkich liniach tylko rozdzielasz SS?

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 lip 2022, o 22:17 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2014
    Posty: 1034
    Lokalizacja: Trójmiasto
    Pomógł: 190

    Sam kod wydaje się być ok (pomijając literówkę) ale w inicie SPI ustawiłbym jeszcze bit CPHA w rejestrze SPCR na "1"
    Rejestr 74HC595 reaguje na opadające zbocze zegara, a przy domyślnych ustawieniach tego bitu jakie miałeś dla SPI powodują że w procku na zboczu opadającym ustawiane są dane do wysyłki, a sama wysyłka powinna być na zboczu narastającym czyli z punktu widzenia 74HC595 mogą być stany nieustalone więc może to jest problemem. Jeśli to nie pomoże, sprawdziłbym dokładnie połączenia elektryczne...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lip 2022, o 10:34 
    Offline
    Użytkownik

    Dołączył(a): 05 sie 2019
    Posty: 92
    Pomógł: 0

    Docelowo będzie to matryca 16x64 dlatego takie kombinowanie.
    Dodałem do kodu CPHA w rejestrze SPCR na 1, kod poniżej:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    niestety nic to nie zmienia. Połączenia na płytce są tak jak powinny. Prototyp płytki wykonany na laminacie w firmie, która się tym zajmuje.
    Do tej pory korzystałem z pinu SS i nie było problemów. Czy gdzieś jeszcze muszę zmienić adres pinu SS jak w moim przypadku "KOLUMNA" "WIERSZ"?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lip 2022, o 10:52 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1973
    Lokalizacja: Lipsko
    Pomógł: 125

    Cytuj:
    Docelowo będzie to matryca 16x64 dlatego takie kombinowanie.

    Przecież to kompletnie nie ma znaczenia, aby utrudniać sobie robotę i komplikować program. W mojej ostatniej zabawce jest 9 rejestrów 595 w jednym sznurku i odpowoadają za wyświetlacz 7seg, sterowanie led (zwykłe wyjścia) jak i czytanie przycisków (wejścia), a żeby było śmieszniej wszystko jest pomieszane, bo tak mi było wygodniej płytkę projektować. Kluczem do łatwego zarządzania jest zdefiniowanie sobie wirtualnych rejestrów dla poszczególnych bloków wej/wyj, a cała wysyłka paczki sterującej odbywa się cyklicznie w pętli głównej przypisując lub uzupełniając (dla wej) wspomniane wirtualne rejestry.

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lip 2022, o 13:10 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27404
    Lokalizacja: Szczecin
    Pomógł: 1043

    SylwekK napisał(a):
    Przecież to kompletnie nie ma znaczenia,

    ale się człowiek uparł i chce sobie robić pod górkę - no to co poczniesz panie ;) widać że żadnych argumentów nie słucha.

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lip 2022, o 13:18 
    Offline
    Użytkownik

    Dołączył(a): 05 sie 2019
    Posty: 92
    Pomógł: 0

    Dokładnie, uparł się, ma taką płytkę i chce to ogarnąć. Projekty z jedną linią SS już robiłem i mi działają więc dlatego chce coś takiego zrobić.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 lip 2022, o 13:24 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27404
    Lokalizacja: Szczecin
    Pomógł: 1043

    no to zrób z wieloma liniami CS w czym problem - to się dokładnie tak samo steruje - kolejne linie CS

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lip 2022, o 09:26 
    Offline
    Użytkownik

    Dołączył(a): 05 sie 2019
    Posty: 92
    Pomógł: 0

    Właśnie próbuję zrobić z dwoma liniami CS. Problem w tym, że wgrywam program jak powyżej pisałem i nic mi nie działa. Czy jest coś na co jeszcze muszę zwrócić uwagę?
    74HC595 mam podłączony w następujący sposób:
    QA-QH - wyjścia na ledy
    SCL (10 nóżka) - 5V
    SCK (11 nóżka) - SCK procesora (PB5)
    RCK(12 nóżka) - PD6,PC5 (PD6 dla WIERSZ, PC5 dla KOLUMNA)
    G (13 nóżka) - GND
    8 nóżka - GND
    16 nóżka - 5V
    przy zasilaniu zasilanie 74HC595 (8,16 nóżka) dodatkowo kondensator 100n.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lip 2022, o 12:20 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2014
    Posty: 1034
    Lokalizacja: Trójmiasto
    Pomógł: 190

    A co z liniami SER(14 noga) rejestrów? Wiszą w powietrzu czy jak?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lip 2022, o 12:40 
    Offline
    Użytkownik

    Dołączył(a): 05 sie 2019
    Posty: 92
    Pomógł: 0

    To fakt 14 nóżka jest podłączona do MOSI w procesorze.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lip 2022, o 15:29 
    Offline
    Użytkownik

    Dołączył(a): 05 sie 2019
    Posty: 92
    Pomógł: 0

    Podłączyłem oscyloskop i na linii SCK mam ciągle ok 3,3V tak samo jak na MOSI. Przy działającym SPI nie powinno tak być.
    Czy jest możliwe, że przy tym programie który mam nie włącza się SPI?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lip 2022, o 15:40 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27404
    Lokalizacja: Szczecin
    Pomógł: 1043

    przy tym z pierwszego posta? Pwnie że nie zadziała jeśli nigdzie nie ustawiasz pinu SS jako wyjście ze stanem wysokim


    Autor postu otrzymał pochwałę

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lip 2022, o 15:57 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2014
    Posty: 1034
    Lokalizacja: Trójmiasto
    Pomógł: 190

    Johnnny94 napisał(a):
    Czy jest możliwe, że przy tym programie który mam nie włącza się SPI?
    Kilka postów wyżej kolega ord wrzucił pewna sugestię, próbowałeś iść tą drogą. W przetoczonym fragmencie noty jest napisane że przy trybie master gdy pin SS jest w procku ustawiony jako wejście, to wejście to musi być w stanie wysokim, inaczej moduł SPI będzie w trybie nasłuchu (sygnał niski na tym wejściu jest dla modułu informacją iż inny master próbuje coś nadawać). Jeśli tego pinu wogule nie konfigurujesz to po starcie domyślnie jest on pinem wejściowym w dodatku bez podciągnięcia więc jest wysoce prawdopodobne iż może tam panować stan który jest interpretowany jako "0" logiczne. Spróbuj włączyć programowe podciąganie tego pinu do vcc albo podłącz zewnętrzny rezystor 10k do vcc...


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 lip 2022, o 16:31 
    Offline
    Użytkownik

    Dołączył(a): 05 sie 2019
    Posty: 92
    Pomógł: 0

    Działa, programowe podciągnięcie do VCC pomogło. Dzięki za pomoc :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 lip 2022, o 11:49 
    Offline
    Użytkownik

    Dołączył(a): 05 sie 2019
    Posty: 92
    Pomógł: 0

    Mam następny problem z wyświetlaniem na mojej matrycy. Przy takim programie jak jest poniżej powstaje przesunięcie czasowe pomiędzy SendSpiRzad i SendSpiKolumna, dlatego powstaje mi "widmo" podczas wyświetlania.

    Chcę dodatkowo regulować jasność wyświetlania dlatego wykorzystuje timer2 do sterowania PWM.

    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.


    Czy jest możliwość aby zrobić to w taki sposób, żeby wyświetlenie za pomocą 74HC595 nie połączonych ze sobą odbyło się w tym samym czasie? Czy muszę kombinować w inny sposób?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 lip 2022, o 15:19 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1973
    Lokalizacja: Lipsko
    Pomógł: 125

    Może przesłać najpierw jeden string potem drugi i dopiero zatrzasnąć oba...

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sie 2022, o 10:58 
    Offline
    Użytkownik

    Dołączył(a): 05 sie 2019
    Posty: 92
    Pomógł: 0

    Mogę prosić o podpowiedź jak w programie zrobić wysłanie pierwszego stringu, potem drugiego i je zatrzasnąć?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sie 2022, o 11:52 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1973
    Lokalizacja: Lipsko
    Pomógł: 125

    Zmodyfikuj nieco procedirę wysyłania bitów ma string - przenieś fragment odpowiedzialny za zatrzask. Dokładnie nie powiem, bo korzystam ze swoich rozwiązań, a nie wiem z czego ty korzystasz.

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sie 2022, o 12:19 
    Offline
    Użytkownik

    Dołączył(a): 05 sie 2019
    Posty: 92
    Pomógł: 0

    Korzystam z tego co podawałem w kodzie powyżej. Kod pochodzi z dokumentacji procesora oraz bluebooka.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 4 sie 2022, o 14:06 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1973
    Lokalizacja: Lipsko
    Pomógł: 125

    To
    PORTD |= (1<<ROWSTB);
    PORTD &=~ (1<<ROWSTB);

    Umieść za tym

    PORTC |= (1<<KOLUMNA);
    PORTC &=~ (1<<KOLUMNA);

    Nie analizowałem całości, ale to chyba właśnie zatrzaski

    _________________
    http://www.sylwekkuna.com



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 21 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