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



Teraz jest 22 gru 2024, o 21:26


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 20 wrz 2014, o 18:57 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 10 wrz 2013
Posty: 23
Pomógł: 1

Witam,

Mam problem z akcelerometrem LIS3DSH wbudowanym w płytkę STM32F4 - Discovery. Próbuję uzyskać odpowiedź akcelerometru na komendę WHO_AM_I. Niestety akcelerometr ciągle wywala 0xFFFF pomimo wielu zmian w kodzie. Komunikuję się przy pomocy SPI. Oto kod:

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


Funkcja jednocześnie wysyłająca i odbierająca:

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


Funkcja główna:

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


Mógłby ktoś znaleźć błędy w moim programie? Nie mogę zrozumieć czemu ten program nie działa właściwie.

_________________
Mikrokontrolery ARM



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 wrz 2014, o 19:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

Jak na mój gust to zapomniałeś o CS (PE3) w rejestrze AFR.

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 wrz 2014, o 19:53 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 10 wrz 2013
Posty: 23
Pomógł: 1

PROTON napisał(a):
Jak na mój gust to zapomniałeś o CS (PE3) w rejestrze AFR.


Dla PE3 nie ma przewidzianej funkcji alternatywnej związanej z SPI, PE3 jest sterowane programowo, nie przez SPI.

_________________
Mikrokontrolery ARM



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 wrz 2014, o 19:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2013
Posty: 568
Zbananowany użytkownik

Pomógł: 31

No to musisz jeszcze dopisać:

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

_________________
Und schreien

Spring
Erlöse mich
Spring
...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 wrz 2014, o 20:04 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 10 wrz 2013
Posty: 23
Pomógł: 1

Niestety, wcześniej próbowałem i te bity ustawiać (z SSOE i bez) i bezskutecznie. Odpowiedź nadal taka sama.

_________________
Mikrokontrolery ARM



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2014, o 09:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sie 2012
Posty: 35
Pomógł: 4

Dwa lata temu oprogramowałem go, na podstawie przykładów od ST.

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


Spróbuj jej, nie obiecuję że działa, wygrzebałem go z czeluści dysku ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2014, o 19:20 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 10 wrz 2013
Posty: 23
Pomógł: 1

Pozwolę sobie zamieścić zrzut z okna programu analizatora logicznego (miałem dzisiaj do niego dostęp):

Obrazek

Jak można zauważyć linia zegarowa jak i linia CS pracują, natomiast master nic nie chce wysyłać przez co slave nie odpowiada. Próbowałem innych opcji konfiguracji w tym konfiguracja kolegi powyżej. Akcelerometr działa - sprawdzałem w programie z przykładów od ST. Mi chodzi natomiast o samodzielne oprogramowanie akcelerometru.

_________________
Mikrokontrolery ARM



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2014, o 16:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

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


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

?

_________________
40-32:2=4!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2014, o 20:10 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 10 wrz 2013
Posty: 23
Pomógł: 1

Nie jest to konieczne ze względu na to iż jeszcze nie zaimplementowałem obsługi przerwań z akcelerometru. Ale z czystej ciekawości sprawdziłem i nie dało to żadnych efektów. W międzyczasie kod przeszedł wiele zmian, w przebiegu uzyskanym z analizatora logicznego widać już że master wysyła dane jednak slave nic nie wysyła (samo 0xFF na miso):

Obrazek

A oto program:

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


//EDIT: Dziękuję bardzo za pomoc, komunikacja działa - zapomniałem o tym że ramka jest 16 - bitowa, wysyłałem zatem złe rzeczy na magistralę.

_________________
Mikrokontrolery ARM



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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