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 17 lip 2025, o 18:28


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
    Autor Wiadomość
     Tytuł: Problem z SPI
    PostNapisane: 1 lis 2019, o 09:10 
    Offline
    Nowy

    Dołączył(a): 01 wrz 2019
    Posty: 9
    Pomógł: 0

    Witam, mam problem z transmisją po SPI, zrobiłem ją tak jak było napisane w bluebooku i chciałem zrobić tak aby z jednego mikrokontrolera (atmega32) był wysyłany bajt do drugiego (atmega328p), i jeśli ten bajt nie był równy 0 to dioda zaczyna się świecić a jak jest równy 0 to gaśnie.
    Oba procki są taktowane 8mhz.
    Oba piny SS są zwarte do masy.
    Nie wrzucałem kodu z plików źródłowych ponieważ jest przepisany z bluebooka a w regulaminie jest to zabronione
    Wrzucam kod z main.c
    Master(atmega32):
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Slave(atmega328p)
    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.

    Wrzucam też zdjęcie płytki stykowej
    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 lis 2019, o 12:03 
    Offline
    Użytkownik

    Dołączył(a): 27 cze 2018
    Posty: 116
    Pomógł: 6

    Na środku linii zasilających płytki stykowej często jest przerwa.
    Możliwe że to stanowi problem.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 lis 2019, o 14:17 
    Offline
    Użytkownik

    Dołączył(a): 24 sty 2012
    Posty: 1469
    Pomógł: 56

    uksta1024 napisał(a):
    Na środku linii zasilających płytki stykowej często jest przerwa.
    Możliwe że to stanowi problem.

    Gdyby tak było to podczas programowania wystąpił doskonale znany błąd rc-1.
    No chyba, że kolega podłączał zasilanie z programatora.

    _________________
    Jestem początkujący i moje porady mogą być błędne



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 lis 2019, o 14:40 
    Offline
    Nowy

    Dołączył(a): 01 wrz 2019
    Posty: 9
    Pomógł: 0

    Ta płytka nie ma przerwy na środku akurat.

    Tak, podłączyłem zasilanie z programatora, w czymś to przeszkadza?
    Oba procesory zaprogramowały się poprawnie i są odczytywane w mkac



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 lis 2019, o 16:10 
    Offline
    Moderator
    Avatar użytkownika

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

    detmot5 napisał(a):
    Oba piny SS są zwarte do masy.

    Pokaż mi miejsce w Bluebooku gdzie była napisana taka herezja ? ;) .... W Masterze musisz pin SS ustawić jako wyjście - i co po ustawieniu zwarłeś go do masy ? Wiesz co się będzie działo jak wystawisz na niego jedynkę ?

    ------------------------ [ Dodano po: 2 minutach ]

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

    w swoim SLAVE - czytasz SPI w pollingU ??? ... toż to nie ma szansy zadziałania albo jak już to jakiegoś przypadku

    ------------------------ [ Dodano po: 4 minutach ]

    W książce nie było żadnego przykładu na komunikację ze strony SLAVE ... ale też po tym co tutaj spróbowałeś zrobić widać, że na razie jeszcze nie zrozumiałeś dobrze podstaw działania SPI ... Ta funkcja read (z Bluebooka) - służy do pracy od strony Mastera jak już ... a nie Slave

    _________________
    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: 1 lis 2019, o 16:15 
    Offline
    Nowy

    Dołączył(a): 01 wrz 2019
    Posty: 9
    Pomógł: 0

    Raczej nic dobrego :/
    Jednak próbowałem wcześniej (jak i teraz) bez zwierania oraz z programowym załączaniem go na 0 na czas transmisji ale dalej nie działa
    Prockowi się nic nie stało po tym "zwarciu" ;)


    Przeszukałem internet i znalazłem przykłady gdzie to działało... no nic widocznie muszę się jeszcze doedukować na ten temat..



    Ostatnio edytowano 1 lis 2019, o 16:18 przez detmot5, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 lis 2019, o 16:16 
    Offline
    Moderator
    Avatar użytkownika

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

    obejrzyj sobie to:



    i drugi odcinek:

    https://www.youtube.com/watch?v=KDfSfjJ6fD8

    żeby lepiej zrozumieć jak działa SPI

    ------------------------ [ Dodano po: 1 minucie ]

    detmot5 napisał(a):
    Jednak próbowałem wcześniej (jak i teraz) bez zwierania oraz z programowym załączaniem go na 0 na czas transmisji ale dalej nie działa

    ale co to ma za znaczenie - wobec tego co podpowiedziałem ci w poście wyżej o funkcji read() ... poczytaj - a na przyszłość nigdy nie rób "na ślepo" szczególnie ZWIERANIA pinów wyjściowych do masy

    _________________
    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: 1 lis 2019, o 16:31 
    Offline
    Nowy

    Dołączył(a): 01 wrz 2019
    Posty: 9
    Pomógł: 0

    obejrzałem wszystkie filmy z tej serii już wcześniej, jednak dalej nie wiem o co chodzi. Ba nawet przeczytałem (na tyle ile umiem angielski) rodział o SPI w nocie PDF. Jednak dalej nie wiem co robię źle ( oprócz tej głupoty ze zwarciem do masy)

    ------------------------ [ Dodano po: 9 minutach ]

    mirekk36 napisał(a):
    w swoim SLAVE - czytasz SPI w pollingU ??? ... toż to nie ma szansy zadziałania albo jak już to jakiegoś przypadku

    Próbowałem też z przerwaniem, z równie marnym skutkiem



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 lis 2019, o 16:51 
    Offline
    Moderator
    Avatar użytkownika

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

    detmot5 napisał(a):
    Próbowałem też z przerwaniem,

    O! i to już DUŻO lepszy trop - tyle że jak mówiłem MUSISZ się zainteresować rozwiązaniem SPI SLAVE wykorzystując właśnie przerwanie SPI - mówię o tym zdaje się w tych dwóch poradnikach ... i zapomnij o używaniu tej funkcji read z Bluebooka do tego celu w Slave

    _________________
    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: 1 lis 2019, o 17:54 
    Offline
    Nowy

    Dołączył(a): 01 wrz 2019
    Posty: 9
    Pomógł: 0

    Próbowałem z przerwaniem, przypisując w nim wartość rejestru SPDR do zmiennej a następnie ją do PORTD jednak to dalej nie działa. Już nie wiem co robię nie tak

    ------------------------ [ Dodano po: 9 minutach ]

    Poza tym nawet w nocie pdf do atmegi32 jest przykład funkcji do odbierania ze slave'a w pollingu

    ------------------------ [ Dodano po: 15 minutach ]

    Choć co ciekawe jeśli odłączę linie od mastera i np dotknę ich to dioda zaczyna losowo migać, to oznacza żeby szukać przyczyny problemu w masterze?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 lis 2019, o 18:39 
    Offline
    Nowy

    Dołączył(a): 01 wrz 2019
    Posty: 9
    Pomógł: 0

    fosc/128 przy taktowaniu 8mhz dla obu uC



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 14 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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO