Skocz do zawartości
Komentator

Kurs STM32 F4 - #9 - Obsługa I2C, akcelerometr

Pomocna odpowiedź

html_mig_img
Podczas projektowaniu systemów elektronicznych bardzo często pojawia się potrzeba stosowania specjalistycznych czujników. Jeżeli nie są one wyposażone w wyjścia analogowe, to trzeba się z nimi porozumieć w inny sposób.W tym odcinku kursu zapoznamy się z obsługą akcelerometru, który korzysta z I2C!

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

Udostępnij ten post


Link to post
Share on other sites

Cześć

Czekałam na I2C, doczekałem się, jest całkiem OK, ale przyznam, że liczyłem na troszkę więcej.

Coś o kontroli zajętości odczytywanego układu, kontroli błędów, coś o HAL_I2CEx_ConfigDigitalFilter, czy też HAL_I2CEx_ConfigAnalogFilter - po co filtry i kiedy, jak ustawiać ?

Udostępnij ten post


Link to post
Share on other sites

JSt, kurs dedykowany jest dla osób, które wcześniej nie zajmowały się HALem dlatego opisane zostały najważniejsze informację - i tak wyszedł już z tego całkiem długi artykuł 🙂 Nie wykluczone jednak, że pojawi się kontynuacja kursu (2 poziom), wtedy będzie miejsce na opisywanie bardziej zaawansowanych tematów.

Udostępnij ten post


Link to post
Share on other sites

No teraz to mi zaimponowałeś Treker 🙂 W takim razie MUSI być 2 poziom 🙂 Kurs jest bardzo fajny i sporo się nauczyłem. Niedosyt wynika z tego, że uruchamiam urządzenia, buduję własne biblioteki i chce to robić dobrze od a do z. Mają działać w amatorskich projektach o pewnej wartości przeliczalnej na pieniądze (niestety prywatne) więc się niecierpliwię.

Przy okazji - Gdzie można poczytać o podstawach RTOS ? Pozdrawiam.

Udostępnij ten post


Link to post
Share on other sites

JSt, rozumiem, ale nie zależy to tylko ode mnie. Daje znać, że jest taka możliwość, ale czy się uda, to zobaczymy dopiero za jakiś czas, gdy cały kurs będzie dostępny 🙂

Przy okazji - Gdzie można poczytać o podstawach RTOS ? Pozdrawiam.

Na ten moment nie było na Forbocie materiałów na ten temat 🙁

Udostępnij ten post


Link to post
Share on other sites
JSt, rozumiem, ale nie zależy to tylko ode mnie. Daje znać, że jest taka możliwość, ale czy się uda, to zobaczymy dopiero za jakiś czas, gdy cały kurs będzie dostępny 🙂
Jasna sprawa. Może troszkę za poważnie potraktowałeś moje MUSI. Było z przymrużeniem oka, ale jak jest możliwość trzeba mieć nadzieję 😉

Edytka:

Dzięki za liknk Ursmar

Udostępnij ten post


Link to post
Share on other sites

Cześć,

Znajdzie się jakaś dobra duszyczka i powie mi jak zrobić w eclipsie wspólną bibliotekę

dla wszystkich projektów. Chodzi mi głównie oto, aby nie trzeba było za każdym razem kopiować jej do nowo tworzonego projektu. Drobna zmiana w bibliotece w jakimś projekcie powoduje, że muszę do każdego z projektów kopiować ją osobno. Najlepiej jak by była w jednym miejscu w "workspace".

Ma ktoś jakiś pomysł ?

pozdrawiam

Udostępnij ten post


Link to post
Share on other sites

Hej,

Po pierwsze świetny kurs!

Po drugie w bibliotekach HAL jest kilka funkcji do transmisji I2C. Mam pytanie o różnice między użytymi w kursie funkcjami HAL_I2C_Mem_Write/Read a funkcjami HAL_I2C_Master_Transmit/Receive? Do tej pory używałem tych drugich wysyłając tablicę z adresem rejestru i przesyłaną daną.

Udostępnij ten post


Link to post
Share on other sites
Cześć

Czekałam na I2C, doczekałem się, jest całkiem OK, ale przyznam, że liczyłem na troszkę więcej.

Coś o kontroli zajętości odczytywanego układu, kontroli błędów, coś o HAL_I2CEx_ConfigDigitalFilter, czy też HAL_I2CEx_ConfigAnalogFilter - po co filtry i kiedy, jak ustawiać ?

na stm32f411 tego nie uswiadczysz

cytat z ref . man. The programmable noise filter is available on STM32F42xxx and STM32F43xxx devices

only

Udostępnij ten post


Link to post
Share on other sites
na stm32f411 tego nie uswiadczysz

cytat z ref . man. The programmable noise filter is available on STM32F42xxx and STM32F43xxx devices only

No tak... Tylko akurat mam 429 Disco i 446 Nucleo 🙂

Udostępnij ten post


Link to post
Share on other sites

JSt, ale nie o nich jest kurs. Więc w kursie nie będzie rzeczy niedostępnych na używanej platformie.

Udostępnij ten post


Link to post
Share on other sites
...ale nie o nich jest kurs.
Z nagłówka wynika, że jest to kurs F4 HAL, a nie 411, więc chyba wprowadzasz w błąd... Nie zmienia to faktu, że kurs jest fajny, Treker ustosunkował się do mojej prośby, wyjaśnił, że to podstawy i może będzie więcej za jakiś czas. Sprawa jasna i temat filtrów zamknięty.

Zastanawia mnie natomiast np. brak odpowiedzi na temat poruszony przez kolegę woocom, bo to już są podstawy i w moim odczuciu też brakuje małego komentarza na temat HAL_I2C bez MEM. Oczywiście można wszystko znaleźć w notach, manualu do HAL_F4 itd, ale skoro to kurs podstaw HAL...

Jest nawet info jak podłączyć elektrycznie (choć sprawa rezystorów podciągających jest wszędzie przy aplikacji układów opisywana), a brakuje w moim (i jak się okazuje nie tylko moim) odczuciu wspomnianego, bardziej rozbudowanego info o HAL - temacie tego kursu.

Nie piszę o tym, aby wywołać przepychanki, tylko sugeruję i proponuję, aby może następna część była jeszcze ciekawsza.

Udostępnij ten post


Link to post
Share on other sites
Hej,

Po pierwsze świetny kurs!

Po drugie w bibliotekach HAL jest kilka funkcji do transmisji I2C. Mam pytanie o różnice między użytymi w kursie funkcjami HAL_I2C_Mem_Write/Read a funkcjami HAL_I2C_Master_Transmit/Receive? Do tej pory używałem tych drugich wysyłając tablicę z adresem rejestru i przesyłaną daną.

Cześć! Wybacz długi czas odpowiedzi.

Aby odpowiedzieć na to pytanie warto przyjrzeć się parametrom wywołania tych funkcji.

HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout)

HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout)

Funkcja Master_Transmit przyjmuje jedynie adres urządzenia docelowego, wskaźnik na adres danych i rozmiar transmitowanej wiadomości.

Funkcja Mem_Write przyjmuje dodatkowo informację o docelowym adresie pamięci, do której ma zostać wpisana transmitowana wiadomość.

Oczywiście za pomocą funkcji Master_Transmit można osiągnąć to samo, umieszczając adres pamięci na początku tablicy danych do przesłania. Rozwiązanie z podaniem tej informacji jako parametr wywołania jest jednak bardziej przejrzyste, dlatego w tym artykule korzystamy właśnie z niego.

Dlaczego w takim razie w ogóle powstała funkcja Master_Transmit? Czasem zdarzają się urządzenia lub typy transmisji, które nie wymagają podawania adresu pamięci, do której mają trafić przesyłane dane (np. komunikacja I2C pomiędzy dwoma mikrokontrolerami). Wtedy po adresie odbiorcy możemy od razu transmitować dane właściwe.

Mam nadzieję że udało mi się wyklarować kwestię z powyższymi funkcjami 🙂

Zastanawia mnie natomiast np. brak odpowiedzi na temat poruszony przez kolegę woocom, bo to już są podstawy i w moim odczuciu też brakuje małego komentarza na temat HAL_I2C bez MEM.

Brak odpowiedzi był spowodowany moim chwilowym przebywaniem w dziczy bez dostępu do technologii. Bardzo za to przepraszam, bo wiem że kilkudniowe opóźnienie w odpowiedziach pod artykułem może być frustrujące.

Jest nawet info jak podłączyć elektrycznie (choć sprawa rezystorów podciągających jest wszędzie przy aplikacji układów opisywana), a brakuje w moim (i jak się okazuje nie tylko moim) odczuciu wspomnianego, bardziej rozbudowanego info o HAL - temacie tego kursu.

Nie piszę o tym, aby wywołać przepychanki, tylko sugeruję i proponuję, aby może następna część była jeszcze ciekawsza.

Niestety, jest wiele kwestii nad którymi chciałbym się rozwieść bardziej, lub w ogóle je poruszyć. Niestety o wielu rzeczach się zapomina, lub po prostu popełnia się błąd oczywistości, uznając je za powszechnie znane i rozumiane.

No i należy pamiętać, że artykuły powinny mieć skończoną długość =)

Dzięki wielkie za wszystkie uwagi!

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...