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



Teraz jest 7 paź 2025, o 18:28


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 25 sty 2016, o 15:00 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8616
Pomógł: 338

http://www.ba0sh1.com/howto-use-stm32-s ... plex-mode/

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2016, o 15:39 
Offline
Użytkownik

Dołączył(a): 04 paź 2011
Posty: 8616
Pomógł: 338

w przypadku KL25Z mogłbym ci odpowiedzieć prosto ... na początku były błędy w krzemie i stąd kłopot
co mnie dopadło w trakcie prac z SPI pod FRDM z wczesnego przed sprzedażowego rzutu, ale 030F nie jest aż tak młody
i tesowe wersje już im chyba wyszły ... wiec nasuwa się tylko wniosek o kłopocie w bibliotece SPL STMa
warto spróbować sprawdzić z Najnowszym CMSIS ew napisać własną obsługę SPI

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2016, o 16:24 
Offline
Użytkownik
Avatar użytkownika

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

Na tej stronie masz dane kontaktowe (patrz pod Poland). Po prostu zadzwoń - może pomogą.
http://www.st.com/stonline/contactus/contacts/index.php?type=2#EUROPE

_________________
40-32:2=4!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2016, o 18:48 
Offline
Użytkownik

Dołączył(a): 29 lip 2014
Posty: 195
Pomógł: 44

Witam.

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.
Inicjalizacji nie przeglądałem, mam nadzieję, że masz ok. I w sumie to tu nie ma znaczenia, ale po co sprawdzasz 2 razy flagę TXE ?
Wystarczy przecież na początku:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I musi działać, ja mam HCLK/4, ta funkcja co powyżej jest u mnie inline i jest ok - nie potrzeba żadnych delay-ów.

Pozdrawiam, QuadMan.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2016, o 21:09 
Offline
Użytkownik

Dołączył(a): 29 lip 2014
Posty: 195
Pomógł: 44

Sorry, ale ja nie do końca rozumiem. TXE jest ustawiana na 1 po wysłaniu 8 bitów danych przez SPI i tyle. Gdybyś powtórnie wywołał funkcję WriteByte zanim to nastąpi ( przed upływem 8 taktów zegara SPI dla danej 8 bitowej, to wtedy TXE było by na 0. Nie rozumiem też, co to jest CE na screenie z przebiegami z analizatora. Chcesz sprzętowo sterować wysyłaniem danych w trybie Master ?

Pozdrawiam, QuadMan.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2016, o 21:28 
Offline
Użytkownik

Dołączył(a): 29 lip 2014
Posty: 195
Pomógł: 44

Ale w konfiguracji masz ustawione sterowanie SS przez soft
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Nawet jeśli ustawisz sterowanie przez hardware, to w trybie Master SS może być jedynie wyjściem ( nie wiem jak jest w trybie multimaster - nigdy nie używałem tego trybu, ale to w tym przypadku nieistotne ) do sterowania Slave'a. Nie jestem pewien, co chcesz osiągnąć, ale podejrzewam, że musisz to zrobić programowo.

Pozdrawiam, QuadMan.

Dopisane: Jeszcze raz przeczytałem Twojego ostatniego posta. Cały problem polega na tym że:
Cytuj:
The TXE flag is set when transmission TXFIFO has enough space to store data to send. TXE flag is linked to the TXFIFO level. The flag goes high and stays high until the TXFIFO level is lower or equal to 1/2 of the FIFO depth. An interrupt can be generated if the TXEIE bit in the SPIx_CR2 register is set. The bit is cleared automatically when the TXFIFO level becomes greater than 1/2. ( RM0091)


Nie możesz użyć tej flagi jako "znacznika" końca transmisji, wobec tego co powyżej. ( No chyba, że ustawisz TXFIFO level na 1/4 - ale w sumie w przypadku nadawania nie warto tego robić. ) Musisz sprawdzać flagę BSY:

Cytuj:
The BSY flag is set and cleared by hardware (writing to this flag has no effect).
When BSY is set, it indicates that a data transfer is in progress on the SPI (the SPI bus is busy).
The BSY flag can be used in certain modes to detect the end of a transfer so that the software can disable the SPI or its peripheral clock before entering a low power mode which does not provide a clock for the peripheral. This avoids corrupting the last transfer.


Czyli, jeśli wyślesz bajt po SPI, to musisz czekać na wyzerowanie BSY, wtedy możesz zmienić stan CE itd...

Sorry, ale faktycznie muszę się porządnie wyspać...



Ostatnio edytowano 25 sty 2016, o 23:09 przez QuadMan, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sty 2016, o 22:47 
Offline
Użytkownik

Dołączył(a): 26 lip 2012
Posty: 291
Lokalizacja: okolice Opola
Pomógł: 20

Ten procek ma 4 bajtowe FIFO jako bufor, a flaga TXE jest zerowana dopiero gdy jest on zapełniony w ponad połowie. Skoro ty wysyłasz tylko jeden bajt to ona nigdy się nie wyzeruje. Po za tym tak jak napisał QuadMan. Albo ustawiasz SSM i machasz programowo pinem NSS poprzez bit SSI albo zerujesz SSM i wtedy pinem NSS macha SPI w zależności od tego czy ma coś w buforze. Jeżeli ustawimy machanie sprzętowe to może również dawać krótki impuls pomiędzy kolejnymi bajtami.

------------------------ [ Dodano po: 6 minutach ]

To samo tyczy się flagi BUSY. Program od razu przelatuje poprzez pierwszego while-a i nie zatrzymuje się na drugim bo w tym momencie flaga BUSY jest jeszcze ustawiona, ponieważ SPI jeszcze nadaje. Dodaj jakiegoś delaya od razu po zapisie do rejestru DR a zobaczysz, że program stanie ci na drugim while-u.
Po za tym pokaż jeszcze konfigurację AFR dla GPIO.

_________________
sig off ;(



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

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