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



Teraz jest 29 mar 2024, o 15:36


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
PostNapisane: 3 gru 2016, o 17:02 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 103
Pomógł: 3

Witajcie :)

Bawię się ostatnio I2C w STM32F103RBT6 korzystając z transferu DMA oraz używając tylko i wyłącznie rejestrów (bez bibliotek SPL czy HAL)

Przerabiam przykładowy kod, który udostępnia ST (I2C example). Przy DMA występuje zwis, gdyż prawdopodobnie niepoprawnie jest generowany sygnał stopu.

Przedstawiam kod:

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


Znaki w terminalu przy odkomentowaniu linii while ( (I2C1->CR1 & I2C_CR1_STOP)); :
- pierwsze uruchomienie - 1 2 3 - zwis przy while ( (I2C1->CR1 & I2C_CR1_STOP));
- po resecie uC - 1 - zwis przy while( !(I2C1->SR1 & I2C_SR1_SB) );

Znaki w terminalu przy zakomentowanej linii while ( (I2C1->CR1 & I2C_CR1_STOP)); :
- pierwsze uruchomienie - 1 2 3 4 - poprawnie odczytany bajt
- po resecie Uc - 1 - zwis przy while( !(I2C1->SR1 & I2C_SR1_SB) );

Ponadto, flaga BUSY cały czas zajęta. Wniosek -> źle jest generowany sygnał stopu i w związku z tym, nie może zostać na nowo wygenerowany start.

Bardzo prosiłbym o pomoc.
Dziękuję i pozdrawiam

Elektro_maniak



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 gru 2016, o 18:35 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 103
Pomógł: 3

Czytałem, ale pominąłem ten zapisek: (2.13.1)

Kod:
Workaround 1
Use the I2C with DMA in general, except when the Master is receiving a single byte.


teraz już wszystko jasne :) Próbowałem odebrać tylko jeden bajt. Przy większej ilości nie ma żadnych zwiech, wszystko ładnie pracuje.
Dzięki :)



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

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