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 5 maja 2025, o 13:17


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
    Autor Wiadomość
    PostNapisane: 10 sty 2021, o 14:56 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 02 kwi 2014
    Posty: 150
    Pomógł: 1

    Hej,

    Mam połączonego procka STM32F103C8 z modułem ENC28J60 (ATB ETH 2.0). Napisałem krótki i prościutki program w celu sprawdzenia czy procek dogaduje się z modułem:

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


    Taktowanie ustawione jest wprost z HSE 8MHz, CPOL i CPHA ustawione na 0.


    Kod odczytujący rejestr ERDPTL (adres 0x08 Bank 0):
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Wg noty katalogowej modułu ENC28J60 rejestr ten zawiera wartość równą 1111 1010 (0xFA):
    Obrazek

    Natomiast ja dostaję wartości 0x00, 0xFF, 0x80
    Obrazek

    Ale żeby nie było za nudno mam też analizator stanów logicznych i dla ustawień CPOL i CPHA = 0 wyskakuje mi komunikat, że stan bezczynności (idle state) dla sygnału CLK jest niezgodny z ustawieniami:
    Obrazek


    Natomiast dopiero po zmianie CPOL na 1 mogę podglądnąć wartości wysyłane na magistrali SPI (co jest niezgodne z moją konfiguracją SPI - patrz wyżej) :
    Obrazek

    Może macie jakiś pomysł dlaczego tak się dzieje?
    Dlaczego w analizatorze muszę mieć inne ustawienia względem tego co mam kodzie ?
    Dlaczego mogę dostawać inne wartości niż 0xFA?
    Może moduł ENC28J60 jest uszkodzony?
    Może coś mam źle napisane w kodzie ?
    Może źle rozumiem datasheeta, chociaż tutaj znalazłem filmik potwierdzający moje rozumowanie https://www.youtube.com/watch?v=9Wac0tJUMsE&ab_channel=MutexEmbedded-Education - patrz od 3:00)

    Wszelkie pomysły/rady/uwagi mile widziane :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 sty 2021, o 16:27 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 lis 2019
    Posty: 145
    Pomógł: 37

    amilo_pa napisał(a):
    Dlaczego w analizatorze muszę mieć inne ustawienia względem tego co mam kodzie ?

    Podejrzane te przebiegi. Gdy enable jest low to clock jest high. Przy tej konfiguracji tak nie może być więc analizator się wywala. W kodzie ściągnij clock w dół PRZED ściągnięciem cs, albo ustaw sprzętowe sterowanie NSS. Dla samego odczytu w analizatorze byc może wystarczyło by dać trigger na clock.
    Dalej w prawo nie jest lepiej: na linii miso są jakieś impulsy mimo braku zegara i linii cs low.

    _________________
    Think for yourself and question authority.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 sty 2021, o 21:56 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 02 kwi 2014
    Posty: 150
    Pomógł: 1

    fofex napisał(a):
    amilo_pa napisał(a):
    Dlaczego w analizatorze muszę mieć inne ustawienia względem tego co mam kodzie ?

    Podejrzane te przebiegi. Gdy enable jest low to clock jest high. Przy tej konfiguracji tak nie może być więc analizator się wywala. W kodzie ściągnij clock w dół PRZED ściągnięciem cs, albo ustaw sprzętowe sterowanie NSS. Dla samego odczytu w analizatorze byc może wystarczyło by dać trigger na clock.
    Dalej w prawo nie jest lepiej: na linii miso są jakieś impulsy mimo braku zegara i linii cs low.


    Faktycznie miałeś rację. Ustawiłem sprzętową obsługę CS i analizator nie zgłasza błędów.
    Obrazek

    Tylko dlaczego po zakończeniu transmisji uP nie podnosi linii CS i CLK?
    I jest możliwe żeby ENC28J60 wysyłał sygnały do uP po zakończeniu transmisji przez mój króciutki program:
    Obrazek

    No i dalszym ciągu układ zwraca 0xFF lub 0x80. Może ma ktoś pomysł dlaczego ? Może być on uszkodzony ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 sty 2021, o 22:45 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 15 lut 2017
    Posty: 368
    Lokalizacja: Gliwice
    Pomógł: 34

    amilo_pa napisał(a):
    Tylko dlaczego po zakończeniu transmisji uP nie podnosi linii CS i CLK?

    Bo ten typ niestety tak ma. Wersje F3 i F0 mają juz "toglowanie" sprzętowe linii CS, czego zabrakło w F4 i F1.
    Problem ten był opisany w poradniku Szczywronka, zachęcam zapoznać się z tym dokumentem.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 10 sty 2021, o 23:13 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 02 kwi 2014
    Posty: 150
    Pomógł: 1

    Zealota napisał(a):
    Bo ten typ niestety tak ma. Wersje F3 i F0 mają juz "toglowanie" sprzętowe linii CS, czego zabrakło w F4 i F1.
    Problem ten był opisany w poradniku Szczywronka, zachęcam zapoznać się z tym dokumentem.



    Faktycznie masz rację.
    Obrazek



    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