Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 22 gru 2024, o 11:50


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 1 gość


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