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



Teraz jest 22 gru 2024, o 22:07


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 13 gru 2017, o 09:34 
Offline
Użytkownik

Dołączył(a): 08 lut 2016
Posty: 96
Pomógł: 2

Hej

Mam problem posiadam mikrokontroler STM32F411CE, uruchomiłem na nim SPI1 konfiguracja pinów:
PA4 NSS
PA5 SCK
PA6 MISO
PA7 SCK

Niestety mam problem z sygnałem NSS, z niewiadomych przyczyn nie pojawia on się na magistrali na całą transmieję, czy może mi ktoś powiedzieć co robię nie tak. Chciałbym używać tego sygnału programowo. Załączam program zaznaczam, że chciałbym tylko wysyłać dane:

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


Załączam zrzut ekranu z analizatora stanów logicznych (Nie ustawiałem go na razie na protokół SPI, ale widać co się dzieję)
Channel 0 CS
Channel 1 SCK

Obrazek

Pozdrawiam
StaryAnoda



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 gru 2017, o 13:13 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

spróbuj przed wpisaniem danych do rejestru DR sprawdzać flagę TXE a potem też TXE RXNE i BSY. Na koniec odczytaj bajt z SPI1-DR

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


------------------------ [ Dodano po: 24 minutach ]

REFERENCE MANUAL napisał(a):

When BSY is set, it indicates that the SPI is busy communicating. There is one exception in
master mode / bidirectional receive mode (MSTR=1 and BDM=1 and BDOE=0) where the
BSY flag is kept low during reception.




------------------------ [ Dodano po: 27 minutach ]

Jeżeli chcesz transmitować tylko to ustaw 1 kierunkowy tryb:

BIDIMODE = 1 i BIDIOE = 1

------------------------ [ Dodano po: 27 minutach ]

wtedy flaga BSY działa normalnie ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 gru 2017, o 19:48 
Offline
Użytkownik

Dołączył(a): 08 lut 2016
Posty: 96
Pomógł: 2

Ok dzięki ale rozumiem że dane z rejestru DR i tak muszę odczytywać nawet jeżeli nie używam MISO ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 gru 2017, o 19:59 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Jak nie używasz miso to ustaw tryb jednokierunkowy. Po co masz marnować pin?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 gru 2017, o 20:00 
Offline
Użytkownik

Dołączył(a): 08 lut 2016
Posty: 96
Pomógł: 2

Tak ustawiłem na tryb jednokierunkowy. Ale teraz pytanie czy mam odczytywać dane z rejestru DR jeżeli tego nie zrobię to SPI nie działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 gru 2017, o 09:26 
Offline
Użytkownik

Dołączył(a): 08 lut 2016
Posty: 96
Pomógł: 2

Niestety zastosowałem się do Twoich rad, ale dalej nie działa pin CS

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



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

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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO